Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 86 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer My Toke... | 5268590 | 2522 days ago | IN | 0 ETH | 0.002224 | ||||
Transfer My Toke... | 5161795 | 2540 days ago | IN | 0 ETH | 0.002839 | ||||
Transfer My Toke... | 5161755 | 2540 days ago | IN | 0 ETH | 0.002839 | ||||
Transfer My Toke... | 5161730 | 2540 days ago | IN | 0 ETH | 0.002839 | ||||
Transfer My Toke... | 4938630 | 2578 days ago | IN | 0 ETH | 0.00069244 | ||||
Transfer My Toke... | 4898775 | 2585 days ago | IN | 0 ETH | 0.00276976 | ||||
Transfer My Toke... | 4898038 | 2585 days ago | IN | 0 ETH | 0.00145412 | ||||
Transfer My Toke... | 4897354 | 2585 days ago | IN | 0 ETH | 0.00623196 | ||||
Transfer My Toke... | 4893397 | 2586 days ago | IN | 0 ETH | 0.0027876 | ||||
Transfer My Toke... | 4892328 | 2586 days ago | IN | 0 ETH | 0.00159261 | ||||
Transfer My Toke... | 4891462 | 2586 days ago | IN | 0 ETH | 0.00207732 | ||||
Transfer My Toke... | 4891429 | 2586 days ago | IN | 0 ETH | 0.00207732 | ||||
Transfer My Toke... | 4887729 | 2587 days ago | IN | 0 ETH | 0.002839 | ||||
Transfer My Toke... | 4887709 | 2587 days ago | IN | 0 ETH | 0.00429312 | ||||
Transfer My Toke... | 4887350 | 2587 days ago | IN | 0 ETH | 0.00415464 | ||||
Transfer My Toke... | 4887286 | 2587 days ago | IN | 0 ETH | 0.0051933 | ||||
Transfer My Toke... | 4887242 | 2587 days ago | IN | 0 ETH | 0.00380842 | ||||
Transfer My Toke... | 4886833 | 2587 days ago | IN | 0 ETH | 0.00214656 | ||||
Transfer My Toke... | 4886781 | 2587 days ago | IN | 0 ETH | 0.002839 | ||||
Transfer My Toke... | 4886754 | 2587 days ago | IN | 0 ETH | 0.0034622 | ||||
Transfer My Toke... | 4886742 | 2587 days ago | IN | 0 ETH | 0.00415464 | ||||
Transfer My Toke... | 4886719 | 2587 days ago | IN | 0 ETH | 0.00276976 | ||||
Transfer My Toke... | 4886541 | 2587 days ago | IN | 0 ETH | 0.00415464 | ||||
Transfer My Toke... | 4886302 | 2587 days ago | IN | 0 ETH | 0.0023931 | ||||
Transfer My Toke... | 4886300 | 2587 days ago | IN | 0 ETH | 0.0015954 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
4384249 | 2671 days ago | 454.25677677 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x34f762DE...44637C636 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
PresalePool
Compiler Version
v0.4.16+commit.d7661dd9
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-09-26 */ pragma solidity ^0.4.15; // ERC20 Interface contract ERC20 { function transfer(address _to, uint _value) returns (bool success); function balanceOf(address _owner) constant returns (uint balance); } contract PresalePool { enum State { Open, Failed, Closed, Paid } State public state; address[] public admins; uint public minContribution; uint public maxContribution; uint public maxPoolTotal; address[] public participants; bool public whitelistAll; struct ParticipantState { uint contribution; uint remaining; bool whitelisted; bool exists; } mapping (address => ParticipantState) public balances; uint public poolTotal; address presaleAddress; bool refundable; uint gasFundTotal; ERC20 public token; event Deposit( address indexed _from, uint _value ); event Payout( address indexed _to, uint _value ); event Withdrawl( address indexed _to, uint _value ); modifier onlyAdmins() { require(isAdmin(msg.sender)); _; } modifier onState(State s) { require(state == s); _; } modifier stateAllowsConfiguration() { require(state == State.Open || state == State.Closed); _; } bool locked; modifier noReentrancy() { require(!locked); locked = true; _; locked = false; } function PresalePool(uint _minContribution, uint _maxContribution, uint _maxPoolTotal, address[] _admins) payable { state = State.Open; admins.push(msg.sender); setContributionSettings(_minContribution, _maxContribution, _maxPoolTotal); whitelistAll = true; for (uint i = 0; i < _admins.length; i++) { var admin = _admins[i]; if (!isAdmin(admin)) { admins.push(admin); } } deposit(); } function () payable { deposit(); } function close() public onlyAdmins onState(State.Open) { state = State.Closed; } function open() public onlyAdmins onState(State.Closed) { state = State.Open; } function fail() public onlyAdmins stateAllowsConfiguration { state = State.Failed; } function payToPresale(address _presaleAddress) public onlyAdmins onState(State.Closed) { state = State.Paid; presaleAddress = _presaleAddress; refundable = true; presaleAddress.transfer(poolTotal); } function refundPresale() payable public onState(State.Paid) { require(refundable && msg.value >= poolTotal); require(msg.sender == presaleAddress || isAdmin(msg.sender)); gasFundTotal = msg.value - poolTotal; state = State.Failed; } function setToken(address tokenAddress) public onlyAdmins { token = ERC20(tokenAddress); } function withdrawAll() public { uint total = balances[msg.sender].remaining; balances[msg.sender].remaining = 0; if (state == State.Open || state == State.Failed) { total += balances[msg.sender].contribution; if (gasFundTotal > 0) { uint gasRefund = (balances[msg.sender].contribution * gasFundTotal) / (poolTotal); gasFundTotal -= gasRefund; total += gasRefund; } poolTotal -= balances[msg.sender].contribution; balances[msg.sender].contribution = 0; } else { require(state == State.Paid); } msg.sender.transfer(total); Withdrawl(msg.sender, total); } function withdraw(uint amount) public onState(State.Open) { uint total = balances[msg.sender].remaining + balances[msg.sender].contribution; require(total >= amount); uint debit = min(balances[msg.sender].remaining, amount); balances[msg.sender].remaining -= debit; debit = amount - debit; balances[msg.sender].contribution -= debit; poolTotal -= debit; (balances[msg.sender].contribution, balances[msg.sender].remaining) = getContribution(msg.sender, 0); // must respect the minContribution limit require(balances[msg.sender].remaining == 0 || balances[msg.sender].contribution > 0); msg.sender.transfer(amount); Withdrawl(msg.sender, amount); } function transferMyTokens() public onState(State.Paid) noReentrancy { uint tokenBalance = token.balanceOf(address(this)); require(tokenBalance > 0); uint participantContribution = balances[msg.sender].contribution; uint participantShare = participantContribution * tokenBalance / poolTotal; poolTotal -= participantContribution; balances[msg.sender].contribution = 0; refundable = false; require(token.transfer(msg.sender, participantShare)); Payout(msg.sender, participantShare); } address[] public failures; function transferAllTokens() public onlyAdmins onState(State.Paid) noReentrancy returns (address[]) { uint tokenBalance = token.balanceOf(address(this)); require(tokenBalance > 0); delete failures; for (uint i = 0; i < participants.length; i++) { address participant = participants[i]; uint participantContribution = balances[participant].contribution; if (participantContribution > 0) { uint participantShare = participantContribution * tokenBalance / poolTotal; poolTotal -= participantContribution; balances[participant].contribution = 0; if (token.transfer(participant, participantShare)) { refundable = false; Payout(participant, participantShare); tokenBalance -= participantShare; if (tokenBalance == 0) { break; } } else { balances[participant].contribution = participantContribution; poolTotal += participantContribution; failures.push(participant); } } } return failures; } function modifyWhitelist(address[] toInclude, address[] toExclude) public onlyAdmins stateAllowsConfiguration { bool previous = whitelistAll; uint i; if (previous) { require(toExclude.length == 0); for (i = 0; i < participants.length; i++) { balances[participants[i]].whitelisted = false; } whitelistAll = false; } for (i = 0; i < toInclude.length; i++) { balances[toInclude[i]].whitelisted = true; } address excludedParticipant; uint contribution; if (previous) { for (i = 0; i < participants.length; i++) { excludedParticipant = participants[i]; if (!balances[excludedParticipant].whitelisted) { contribution = balances[excludedParticipant].contribution; balances[excludedParticipant].contribution = 0; balances[excludedParticipant].remaining += contribution; poolTotal -= contribution; } } } else { for (i = 0; i < toExclude.length; i++) { excludedParticipant = toExclude[i]; balances[excludedParticipant].whitelisted = false; contribution = balances[excludedParticipant].contribution; balances[excludedParticipant].contribution = 0; balances[excludedParticipant].remaining += contribution; poolTotal -= contribution; } } } function removeWhitelist() public onlyAdmins stateAllowsConfiguration { if (!whitelistAll) { whitelistAll = true; for (uint i = 0; i < participants.length; i++) { balances[participants[i]].whitelisted = true; } } } function setContributionSettings(uint _minContribution, uint _maxContribution, uint _maxPoolTotal) public onlyAdmins stateAllowsConfiguration { // we raised the minContribution threshold bool recompute = (minContribution < _minContribution); // we lowered the maxContribution threshold recompute = recompute || (maxContribution > _maxContribution); // we did not have a maxContribution threshold and now we do recompute = recompute || (maxContribution == 0 && _maxContribution > 0); // we want to make maxPoolTotal lower than the current pool total recompute = recompute || (poolTotal > _maxPoolTotal); minContribution = _minContribution; maxContribution = _maxContribution; maxPoolTotal = _maxPoolTotal; if (maxContribution > 0) { require(maxContribution >= minContribution); } if (maxPoolTotal > 0) { require(maxPoolTotal >= minContribution); require(maxPoolTotal >= maxContribution); } if (recompute) { poolTotal = 0; for (uint i = 0; i < participants.length; i++) { address participant = participants[i]; var balance = balances[participant]; (balance.contribution, balance.remaining) = getContribution(participant, 0); poolTotal += balance.contribution; } } } function getParticipantBalances() public returns(address[], uint[], uint[], bool[], bool[]) { uint[] memory contribution = new uint[](participants.length); uint[] memory remaining = new uint[](participants.length); bool[] memory whitelisted = new bool[](participants.length); bool[] memory exists = new bool[](participants.length); for (uint i = 0; i < participants.length; i++) { var balance = balances[participants[i]]; contribution[i] = balance.contribution; remaining[i] = balance.remaining; whitelisted[i] = balance.whitelisted; exists[i] = balance.exists; } return (participants, contribution, remaining, whitelisted, exists); } function deposit() internal onState(State.Open) { if (msg.value > 0) { require(included(msg.sender)); (balances[msg.sender].contribution, balances[msg.sender].remaining) = getContribution(msg.sender, msg.value); // must respect the maxContribution and maxPoolTotal limits require(balances[msg.sender].remaining == 0); balances[msg.sender].whitelisted = true; poolTotal += msg.value; if (!balances[msg.sender].exists) { balances[msg.sender].exists = true; participants.push(msg.sender); } Deposit(msg.sender, msg.value); } } function isAdmin(address addr) internal constant returns (bool) { for (uint i = 0; i < admins.length; i++) { if (admins[i] == addr) { return true; } } return false; } function included(address participant) internal constant returns (bool) { return whitelistAll || balances[participant].whitelisted || isAdmin(participant); } function getContribution(address participant, uint amount) internal constant returns (uint, uint) { var balance = balances[participant]; uint total = balance.remaining + balance.contribution + amount; uint contribution = total; if (!included(participant)) { return (0, total); } if (maxContribution > 0) { contribution = min(maxContribution, contribution); } if (maxPoolTotal > 0) { contribution = min(maxPoolTotal - poolTotal, contribution); } if (contribution < minContribution) { return (0, total); } return (contribution, total - contribution); } function min(uint a, uint b) internal pure returns (uint _min) { if (a < b) { return a; } return b; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"}],"name":"setToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"admins","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"removeWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_presaleAddress","type":"address"}],"name":"payToPresale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refundPresale","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"contribution","type":"uint256"},{"name":"remaining","type":"uint256"},{"name":"whitelisted","type":"bool"},{"name":"exists","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"participants","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getParticipantBalances","outputs":[{"name":"","type":"address[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"bool[]"},{"name":"","type":"bool[]"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"close","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"transferAllTokens","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"poolTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxContribution","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minContribution","type":"uint256"},{"name":"_maxContribution","type":"uint256"},{"name":"_maxPoolTotal","type":"uint256"}],"name":"setContributionSettings","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"fail","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minContribution","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"failures","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"toInclude","type":"address[]"},{"name":"toExclude","type":"address[]"}],"name":"modifyWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"transferMyTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxPoolTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"open","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_minContribution","type":"uint256"},{"name":"_maxContribution","type":"uint256"},{"name":"_maxPoolTotal","type":"uint256"},{"name":"_admins","type":"address[]"}],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Withdrawl","type":"event"}]
Deployed Bytecode
0x6060604052361561012d5763ffffffff60e060020a600035041663144fa6d7811461013957806314bfd6d01461015a57806317f708fb1461018c5780631fff2d8a146101a157806326bdd814146101c257806327e235e3146101cc5780632e1a7d4d1461021957806335c1d34914610231578063390a05a81461026357806343d726d6146103e35780634c96f0cc146103f85780635d54e6121461045f578063704d4db014610486578063853828b6146104ab5780638d3d6576146104c0578063a8083b74146104e5578063a9cc471814610503578063aaffadf314610518578063bf4d5af41461053d578063c19d93fb1461056f578063def86cbb146105a6578063f231647214610637578063f3cc24361461064c578063fc0c546a14610671578063fcfff16f146106a0575b5b6101366106b5565b5b005b341561014457600080fd5b610136600160a060020a0360043516610810565b005b341561016557600080fd5b610170600435610851565b604051600160a060020a03909116815260200160405180910390f35b341561019757600080fd5b610136610883565b005b34156101ac57600080fd5b610136600160a060020a0360043516610965565b005b610136610a21565b005b34156101d757600080fd5b6101eb600160a060020a0360043516610ab4565b6040519384526020840192909252151560408084019190915290151560608301526080909101905180910390f35b341561022457600080fd5b610136600435610ae1565b005b341561023c57600080fd5b610170600435610c62565b604051600160a060020a03909116815260200160405180910390f35b341561026e57600080fd5b610276610c94565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b838110156102c75780820151818401525b6020016102ae565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b838110156103075780820151818401525b6020016102ee565b50505050905001868103845289818151815260200191508051906020019060200280838360005b838110156103475780820151818401525b60200161032e565b50505050905001868103835288818151815260200191508051906020019060200280838360005b838110156103875780820151818401525b60200161036e565b50505050905001868103825287818151815260200191508051906020019060200280838360005b838110156103c75780820151818401525b6020016103ae565b505050509050019a505050505050505050505060405180910390f35b34156103ee57600080fd5b610136610ed0565b005b341561040357600080fd5b61040b610f22565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561044b5780820151818401525b602001610432565b505050509050019250505060405180910390f35b341561046a57600080fd5b61047261127a565b604051901515815260200160405180910390f35b341561049157600080fd5b610499611283565b60405190815260200160405180910390f35b34156104b657600080fd5b610136611289565b005b34156104cb57600080fd5b6104996113ff565b60405190815260200160405180910390f35b34156104f057600080fd5b610136600435602435604435611405565b005b341561050e57600080fd5b610136611585565b005b341561052357600080fd5b6104996115ee565b60405190815260200160405180910390f35b341561054857600080fd5b6101706004356115f4565b604051600160a060020a03909116815260200160405180910390f35b341561057a57600080fd5b610582611626565b6040518082600381111561059257fe5b60ff16815260200191505060405180910390f35b34156105b157600080fd5b61013660046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061162f95505050505050565b005b341561064257600080fd5b6101366118a0565b005b341561065757600080fd5b610499611aac565b60405190815260200160405180910390f35b341561067c57600080fd5b610170611ab2565b604051600160a060020a03909116815260200160405180910390f35b34156106ab57600080fd5b610136611ac1565b005b6000805b60005460ff1660038111156106ca57fe5b146106d457600080fd5b600034111561080b576106e633611b11565b15156106f157600080fd5b6106fb3334611b58565b600160a060020a033316600090815260076020526040902060018101829055919091551561072857600080fd5b600160a060020a0333166000908152600760205260409020600201805460ff19166001178155600880543401905554610100900460ff1615156107cd57600160a060020a0333166000908152600760205260409020600201805461ff001916610100179055600580546001810161079f8382611c8b565b916000526020600020900160005b8154600160a060020a033381166101009390930a92830292021916179055505b33600160a060020a03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3460405190815260200160405180910390a25b5b5b50565b61081933611bfe565b151561082457600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600180548290811061085f57fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b600061088e33611bfe565b151561089957600080fd5b60005b60005460ff1660038111156108ad57fe5b14806108ca575060025b60005460ff1660038111156108c857fe5b145b15156108d557600080fd5b60065460ff16151561080b57506006805460ff1916600117905560005b60055481101561080b5760016007600060058481548110151561091157fe5b906000526020600020900160005b90546101009190910a9004600160a060020a031681526020810191909152604001600020600201805460ff19169115159190911790555b6001016108f2565b5b5b5b5b50565b61096e33611bfe565b151561097957600080fd5b6002805b60005460ff16600381111561098e57fe5b1461099857600080fd5b600080546003919060ff19166001835b02179055506009805460a060020a60ff0219600160a060020a0380861673ffffffffffffffffffffffffffffffffffffffff19909316929092171660a060020a179182905560085491169080156108fc0290604051600060405180830381858888f193505050501515610a1a57600080fd5b5b5b505b50565b6003805b60005460ff166003811115610a3657fe5b14610a4057600080fd5b60095460a060020a900460ff168015610a5b57506008543410155b1515610a6657600080fd5b60095433600160a060020a0390811691161480610a875750610a8733611bfe565b5b1515610a9357600080fd5b6008543403600a55600080546001919060ff191682805b02179055505b5b50565b60076020526000908152604090208054600182015460029092015490919060ff8082169161010090041684565b60008080805b60005460ff166003811115610af857fe5b14610b0257600080fd5b600160a060020a0333166000908152600760205260409020805460019091015401925083831015610b3257600080fd5b600160a060020a033316600090815260076020526040902060010154610b589085611c71565b33600160a060020a038116600090815260076020526040812060018101805485900390558054938803938490039055600880548490039055919350610b9c91611b58565b600160a060020a033316600090815260076020526040902060018101829055919091551580610be15750600160a060020a033316600090815260076020526040812054115b1515610bec57600080fd5b600160a060020a03331684156108fc0285604051600060405180830381858888f193505050501515610c1d57600080fd5b33600160a060020a03167f65ac0d8bb8cbc0e989ebd02ddc5161d7c499f7c21792e43fcf170314fe6bcc3f8560405190815260200160405180910390a25b5b50505050565b600580548290811061085f57fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b610c9c611cb5565b610ca4611cb5565b610cac611cb5565b610cb4611cb5565b610cbc611cb5565b610cc4611cb5565b610ccc611cb5565b610cd4611cb5565b610cdc611cb5565b6005546000908190604051805910610cf15750595b908082528060200260200182016040525b50600554909650604051805910610d165750595b908082528060200260200182016040525b50600554909550604051805910610d3b5750595b908082528060200260200182016040525b50600554909450604051805910610d605750595b908082528060200260200182016040525b509250600091505b600554821015610e565760076000600584815481101515610d9657fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000208054909150868381518110610dd957fe5b602090810290910101526001810154858381518110610df457fe5b60209081029091010152600281015460ff16848381518110610e1257fe5b911515602092830290910190910152600281015460ff61010090910416838381518110610e3b57fe5b9115156020928302909101909101525b600190910190610d79565b60058686868684805480602002602001604051908101604052809291908181526020018280548015610eb157602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610e93575b505050505094509a509a509a509a509a505b5050505050509091929394565b610ed933611bfe565b1515610ee457600080fd5b6000805b60005460ff166003811115610ef957fe5b14610f0357600080fd5b600080546002919060ff1916600183610aaa565b02179055505b5b505b565b610f2a611cb5565b6000806000806000610f3b33611bfe565b1515610f4657600080fd5b6003805b60005460ff166003811115610f5b57fe5b14610f6557600080fd5b600b5460a060020a900460ff1615610f7c57600080fd5b600b805460a060020a60ff02191660a060020a1790819055600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b50505060405180519650506000861161101357600080fd5b61101f600c6000611ceb565b600094505b60055485101561120057600580548690811061103c57fe5b906000526020600020900160005b9054600160a060020a036101009290920a9004166000818152600760205260408120549195509093508311156111f35760085486840281151561108957fe5b600880548690039055600160a060020a03808716600090815260076020526040808220829055600b5494909304955092169163a9059cbb9187918691516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561110d57600080fd5b6102c65a03f1151561111e57600080fd5b5050506040518051905015611190576009805460a060020a60ff0219169055600160a060020a0384167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a68360405190815260200160405180910390a2948190039485151561118b57611200565b6111f3565b600160a060020a03841660009081526007602052604090208390556008805484019055600c8054600181016111c58382611c8b565b916000526020600020900160005b8154600160a060020a038089166101009390930a92830292021916179055505b5b5b600190940193611024565b600c80548060200260200160405190810160405280929190818152602001828054801561125657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611238575b505050505096505b600b805460a060020a60ff02191690555b5b505b505050505090565b60065460ff1681565b60085481565b600160a060020a033316600090815260076020526040812060010180549082905590805b60005460ff1660038111156112be57fe5b14806112db575060015b60005460ff1660038111156112d957fe5b145b1561136d57600160a060020a033316600090815260076020526040812054600a54930192111561134357600854600a54600160a060020a0333166000908152600760205260409020540281151561132e57fe5b600a8054929091049182900390559182019190505b600160a060020a03331660009081526007602052604081208054600880549190910390555561138b565b60035b60005460ff16600381111561138157fe5b1461138b57600080fd5b5b600160a060020a03331682156108fc0283604051600060405180830381858888f1935050505015156113bd57600080fd5b33600160a060020a03167f65ac0d8bb8cbc0e989ebd02ddc5161d7c499f7c21792e43fcf170314fe6bcc3f8360405190815260200160405180910390a25b5050565b60035481565b60008060008061141433611bfe565b151561141f57600080fd5b60005b60005460ff16600381111561143357fe5b1480611450575060025b60005460ff16600381111561144e57fe5b145b151561145b57600080fd5b86600254109350838061146f575085600354115b9350838061148857506003541580156114885750600086115b5b93508380611498575084600854115b600288905560038790556004869055935060008611156114c35760025460035410156114c357600080fd5b5b600060045411156114f15760025460045410156114e057600080fd5b60035460045410156114f157600080fd5b5b8315611578576000600881905592505b60055483101561157857600580548490811061151a57fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416600081815260076020526040812091935090915061155b908390611b58565b60018301558082556008805490910190555b600190920191611502565b5b5b5b5b50505050505050565b61158e33611bfe565b151561159957600080fd5b60005b60005460ff1660038111156115ad57fe5b14806115ca575060025b60005460ff1660038111156115c857fe5b145b15156115d557600080fd5b600080546001919060ff191682805b02179055505b5b5b565b60025481565b600c80548290811061085f57fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b60005460ff1681565b60008060008061163e33611bfe565b151561164957600080fd5b60005b60005460ff16600381111561165d57fe5b148061167a575060025b60005460ff16600381111561167857fe5b145b151561168557600080fd5b60065460ff169350831561171e5784511561169f57600080fd5b600092505b600554831015611713576000600760006005868154811015156116c357fe5b906000526020600020900160005b90546101009190910a9004600160a060020a031681526020810191909152604001600020600201805460ff19169115159190911790555b6001909201916116a4565b6006805460ff191690555b600092505b855183101561177f5760016007600088868151811061173e57fe5b90602001906020020151600160a060020a031681526020810191909152604001600020600201805460ff19169115159190911790555b600190920191611723565b831561182457600092505b60055483101561181f5760058054849081106117a257fe5b906000526020600020900160005b9054600160a060020a036101009290920a90041660008181526007602052604090206002015490925060ff1615156118135750600160a060020a038116600090815260076020526040812080549181556001018054820190556008805482900390555b5b60019092019161178a565b611894565b600092505b84518310156118945784838151811061183e57fe5b90602001906020020151600160a060020a038116600090815260076020526040812060028101805460ff19169055805491815560010180548201905560088054829003905590925090505b600190920191611829565b5b5b5b5b505050505050565b600080806003805b60005460ff1660038111156118b957fe5b146118c357600080fd5b600b5460a060020a900460ff16156118da57600080fd5b600b805460a060020a60ff02191660a060020a1790819055600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561194857600080fd5b6102c65a03f1151561195957600080fd5b50505060405180519450506000841161197157600080fd5b600160a060020a03331660009081526007602052604090205460085490935084840281151561199c57fe5b60088054869003905533600160a060020a038181166000908152600760205260408082208290556009805460a060020a60ff0219169055600b5495909404965093169263a9059cbb92869190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611a3057600080fd5b6102c65a03f11515611a4157600080fd5b505050604051805190501515611a5657600080fd5b33600160a060020a03167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a68360405190815260200160405180910390a25b600b805460a060020a60ff02191690555b5b50505050565b60045481565b600b54600160a060020a031681565b611aca33611bfe565b1515611ad557600080fd5b6002805b60005460ff166003811115611aea57fe5b14611af457600080fd5b60008054819060ff1916600182610aaa565b02179055505b5b505b565b60065460009060ff1680611b405750600160a060020a03821660009081526007602052604090206002015460ff165b80611b4f5750611b4f82611bfe565b5b90505b919050565b600160a060020a03821660009081526007602052604081208054600182015483929101840180611b8787611b11565b1515611b9b57600094509092508290611bf4565b60006003541115611bb557611bb260035482611c71565b90505b60006004541115611bd357611bd06008546004540382611c71565b90505b600254811015611beb57600094509092508290611bf4565b80818303945094505b5050509250929050565b6000805b600154811015611c665782600160a060020a0316600182815481101515611c2557fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a03161415611c5d5760019150611c6b565b5b600101611c02565b600091505b50919050565b600081831015611c82575081611c85565b50805b92915050565b815481835581811511611caf57600083815260209020611caf918101908301611d0d565b5b505050565b60206040519081016040526000815290565b60206040519081016040526000815290565b60206040519081016040526000815290565b508054600082559060005260206000209081019061080b9190611d0d565b5b50565b611d2b91905b80821115611d275760008155600101611d13565b5090565b905600a165627a7a72305820fa3372d264e6f716085c85bfa5952d5cf818fbea45d00ed1fa0a3f93e184d26d0029
Swarm Source
bzzr://fa3372d264e6f716085c85bfa5952d5cf818fbea45d00ed1fa0a3f93e184d26d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.