More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Distribute Payme... | 17147901 | 632 days ago | IN | 0 ETH | 0.00278677 | ||||
Withdraw Payment | 13761295 | 1139 days ago | IN | 0 ETH | 0.00822723 | ||||
Distribute Payme... | 13761292 | 1139 days ago | IN | 0 ETH | 0.0083952 | ||||
Start Vesting | 11089387 | 1553 days ago | IN | 0 ETH | 0.00233413 | ||||
Add Parameters | 10997760 | 1567 days ago | IN | 0 ETH | 0.01032475 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TimeLock
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-05 */ /** *Submitted for verification at Etherscan.io on 2020-10-05 */ //SPDX-License-Identifier: UNLICENSED pragma solidity ^0.6.0; interface IERC20 { function transfer(address to, uint tokens) external returns (bool success); function transferFrom(address from, address to, uint tokens) external returns (bool success); function balanceOf(address tokenOwner) external view returns (uint balance); function approve(address spender, uint tokens) external returns (bool success); function allowance(address tokenOwner, address spender) external view returns (uint remaining); function totalSupply() external view returns (uint); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } library SafeMath { function add(uint a, uint b) internal pure returns (uint c) { c = a + b; require(c >= a); } function sub(uint a, uint b) internal pure returns (uint c) { require(b <= a); c = a - b; } function mul(uint a, uint b) internal pure returns (uint c) { c = a * b; require(a == 0 || c / a == b); } function div(uint a, uint b) internal pure returns (uint c) { require(b > 0); c = a / b; } } contract TimeLock { using SafeMath for uint; uint8 private nextSubtract; uint8 private nextScheduleId; bool public initialized; bool private configured; address[] private beneficiaries; // uint[] private scheduleList; // mapping(uint8 => uint) private schedules; mapping(address => mapping(address => uint)) private balances; mapping(address => uint) private percentages; // event NewVesting(address newVestingContract, uint indexed timeCreated); event Distributed(address token, address executor, uint round); event Withdrawn(address token, address beneficiary, uint amount); event EtherWithdrawn(address _addr, uint _value); modifier whenNotInitialized() { require(initialized == false, "Vesting has already been initialized"); _; } modifier whenInitialized() { require(initialized == true, "Vesting has not been initialized"); _; } modifier onlyBeneficiary() { bool isApproved = false; for(uint i = 0; i < beneficiaries.length; i++) { if (beneficiaries[i] == msg.sender) { isApproved = true; } } require(isApproved == true, "Only a beneficiary can do this"); _; } function addParameters(address[] calldata _beneficiary, uint[] calldata _percentages, uint[] calldata _schedules) external whenNotInitialized { require(_beneficiary.length == _percentages.length, 'Beneficiary and percentage arrays must have the same length'); require(configured == false, 'Parameters have already been added'); uint totalPercentages; for(uint i = 0; i < _beneficiary.length; i++) { beneficiaries.push(_beneficiary[i]); percentages[_beneficiary[i]] = _percentages[i]; totalPercentages = totalPercentages.add(_percentages[i]); } require(totalPercentages == 100, 'Percentages must sum up to 100'); for(uint8 i = 0; i < _schedules.length; i++) { scheduleList.push(_schedules[i]); } configured = true; } function startVesting() external whenNotInitialized onlyBeneficiary { for(uint8 i = 0; i < scheduleList.length; i++) { schedules[i] = now + scheduleList[i]; } initialized = true; } function nextScheduleTime() external view whenInitialized returns(uint secondsLeft){ uint time = schedules[nextScheduleId]; uint nextTime = time - now; if (time < now) { revert ('distribute payment for previous round'); } else { return nextTime; } } function endingTime() external view whenInitialized returns(uint secondsLeft){ uint allTime = scheduleList.length; uint time = schedules[uint8(allTime) - 1]; return time - now; } function getSchedules() external view whenInitialized returns(uint[] memory schedule){ return scheduleList; } function currentSchedule() external view whenInitialized returns(uint schedule){ return scheduleList[nextScheduleId]; } function getBalance(address userAddress, address tokenAddress) external view whenInitialized returns(uint){ return balances[userAddress][tokenAddress]; } function getBeneficiaries() external view returns(address[] memory beneficiary) { require(configured == true, 'Need to add beneficiaries first'); return beneficiaries; } function percentageOf(address _beneficiary) external view returns(uint){ return percentages[_beneficiary]; } function _calculatePayment(address _beneficiary, address token, uint totalBalances) internal view returns(uint){ uint balance = IERC20(token).balanceOf(address(this)); require(balance > 0, 'Empty pool'); return percentages[_beneficiary].mul(balance.sub(totalBalances)).div((scheduleList.length.sub(nextSubtract)).mul(100)); } function distributePayment(address token) external whenInitialized { require(now >= schedules[nextScheduleId], 'Realease time not reached'); uint totalBalances; for(uint i = 0; i < beneficiaries.length; i++) { totalBalances = totalBalances.add(balances[beneficiaries[i]][token]); } for(uint i = 0; i < beneficiaries.length; i++){ uint payment = _calculatePayment(beneficiaries[i], token, totalBalances); balances[beneficiaries[i]][token] = balances[beneficiaries[i]][token].add(payment); } nextScheduleId++; nextSubtract++; emit Distributed(token, msg.sender, nextScheduleId); } function withdrawPayment(address token) external whenInitialized onlyBeneficiary returns (bool success) { require(balances[msg.sender][token] > 0, 'No balance to withdraw'); uint256 amount = balances[msg.sender][token]; balances[msg.sender][token] = 0; IERC20(token).transfer(msg.sender, amount); emit Withdrawn(token, msg.sender, amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"uint256","name":"round","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"EtherWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newVestingContract","type":"address"},{"indexed":true,"internalType":"uint256","name":"timeCreated","type":"uint256"}],"name":"NewVesting","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[{"internalType":"address[]","name":"_beneficiary","type":"address[]"},{"internalType":"uint256[]","name":"_percentages","type":"uint256[]"},{"internalType":"uint256[]","name":"_schedules","type":"uint256[]"}],"name":"addParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentSchedule","outputs":[{"internalType":"uint256","name":"schedule","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"distributePayment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endingTime","outputs":[{"internalType":"uint256","name":"secondsLeft","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBeneficiaries","outputs":[{"internalType":"address[]","name":"beneficiary","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSchedules","outputs":[{"internalType":"uint256[]","name":"schedule","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextScheduleTime","outputs":[{"internalType":"uint256","name":"secondsLeft","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"percentageOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startVesting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawPayment","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50611205806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80639ae3a334116100715780639ae3a3341461017d5780639ec9bfbf146101a5578063a88ea616146101cb578063d4c0a86f146101d3578063d4fac45d146102e7578063deb36e3214610315576100b4565b8063158ef93e146100b95780633dd05a99146100d55780636c47a6c31461012d5780638ac28d5a146101475780638c3980b01461016d578063913b722c14610175575b600080fd5b6100c161031d565b604080519115158252519081900360200190f35b6100dd61032c565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610119578181015183820152602001610101565b505050509050019250505060405180910390f35b6101356103d6565b60408051918252519081900360200190f35b6100c16004803603602081101561015d57600080fd5b50356001600160a01b0316610447565b610135610697565b6100dd61074c565b6101a36004803603602081101561019357600080fd5b50356001600160a01b0316610811565b005b610135600480360360208110156101bb57600080fd5b50356001600160a01b0316610aa5565b610135610ac0565b6101a3600480360360608110156101e957600080fd5b81019060208101813564010000000081111561020457600080fd5b82018360208201111561021657600080fd5b8035906020019184602083028401116401000000008311171561023857600080fd5b91939092909160208101903564010000000081111561025657600080fd5b82018360208201111561026857600080fd5b8035906020019184602083028401116401000000008311171561028a57600080fd5b9193909290916020810190356401000000008111156102a857600080fd5b8201836020820111156102ba57600080fd5b803590602001918460208302840111640100000000831117156102dc57600080fd5b509092509050610b3b565b610135600480360360408110156102fd57600080fd5b506001600160a01b0381358116916020013516610da2565b6101a3610e21565b60005462010000900460ff1681565b60005460609062010000900460ff16151560011461037f576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b60028054806020026020016040519081016040528092919081815260200182805480156103cb57602002820191906000526020600020905b8154815260200190600101908083116103b7575b505050505090505b90565b6000805462010000900460ff161515600114610427576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b506002546000190160ff1660009081526003602052604090205442900390565b6000805462010000900460ff161515600114610498576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b6000805b6001548110156104e557336001600160a01b0316600182815481106104bd57fe5b6000918252602090912001546001600160a01b031614156104dd57600191505b60010161049c565b5060018115151461053d576040805162461bcd60e51b815260206004820152601e60248201527f4f6e6c7920612062656e65666963696172792063616e20646f20746869730000604482015290519081900360640190fd5b3360009081526004602090815260408083206001600160a01b03871684529091529020546105ab576040805162461bcd60e51b81526020600482015260166024820152754e6f2062616c616e636520746f20776974686472617760501b604482015290519081900360640190fd5b3360008181526004602081815260408084206001600160a01b038916808652908352818520805490869055825163a9059cbb60e01b815294850196909652602484018690529051909363a9059cbb936044808201949392918390030190829087803b15801561061957600080fd5b505af115801561062d573d6000803e3d6000fd5b505050506040513d602081101561064357600080fd5b5050604080516001600160a01b038616815233602082015280820183905290517fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9181900360600190a15060019392505050565b6000805462010000900460ff1615156001146106e8576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b60008054610100900460ff1681526003602052604090205442808203908210156107435760405162461bcd60e51b815260040180806020018281038252602581526020018061110a6025913960400191505060405180910390fd5b91506103d39050565b6000546060906301000000900460ff1615156001146107b2576040805162461bcd60e51b815260206004820152601f60248201527f4e65656420746f206164642062656e6566696369617269657320666972737400604482015290519081900360640190fd5b60018054806020026020016040519081016040528092919081815260200182805480156103cb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107ea575050505050905090565b60005462010000900460ff161515600114610861576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b60008054610100900460ff168152600360205260409020544210156108cd576040805162461bcd60e51b815260206004820152601960248201527f5265616c656173652074696d65206e6f74207265616368656400000000000000604482015290519081900360640190fd5b6000805b60015481101561093b5761093160046000600184815481106108ef57fe5b60009182526020808320909101546001600160a01b0390811684528382019490945260409283018220938816825292909252902054839063ffffffff610f6f16565b91506001016108d1565b5060005b600154811015610a1e5760006109776001838154811061095b57fe5b6000918252602090912001546001600160a01b03168585610f7f565b90506109cf81600460006001868154811061098e57fe5b60009182526020808320909101546001600160a01b0390811684528382019490945260409283018220938a168252929092529020549063ffffffff610f6f16565b60046000600185815481106109e057fe5b60009182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092529020555060010161093f565b506000805460ff1961ff0019821660016101009384900460ff908116820181168502929092179283169282160181169190911792839055604080516001600160a01b038716815233602082015292909304168183015290517fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542916060908290030190a15050565b6001600160a01b031660009081526005602052604090205490565b6000805462010000900460ff161515600114610b11576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b600054600280549091610100900460ff16908110610b2b57fe5b9060005260206000200154905090565b60005462010000900460ff1615610b835760405162461bcd60e51b81526004018080602001828103825260248152602001806111ac6024913960400191505060405180910390fd5b848314610bc15760405162461bcd60e51b815260040180806020018281038252603b815260200180611171603b913960400191505060405180910390fd5b6000546301000000900460ff1615610c0a5760405162461bcd60e51b815260040180806020018281038252602281526020018061114f6022913960400191505060405180910390fd5b6000805b86811015610ce6576001888883818110610c2457fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b039590920293909301359390931692909217905550858582818110610c6c57fe5b90506020020135600560008a8a85818110610c8357fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002081905550610cdc868683818110610cc657fe5b9050602002013583610f6f90919063ffffffff16565b9150600101610c0e565b5080606414610d3c576040805162461bcd60e51b815260206004820152601e60248201527f50657263656e7461676573206d7573742073756d20757020746f203130300000604482015290519081900360640190fd5b60005b60ff8116831115610d8557600284848360ff16818110610d5b57fe5b83546001808201865560009586526020958690209290950293909301359201919091555001610d3f565b50506000805463ff00000019166301000000179055505050505050565b6000805462010000900460ff161515600114610df3576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b506001600160a01b038083166000908152600460209081526040808320938516835292905220545b92915050565b60005462010000900460ff1615610e695760405162461bcd60e51b81526004018080602001828103825260248152602001806111ac6024913960400191505060405180910390fd5b6000805b600154811015610eb657336001600160a01b031660018281548110610e8e57fe5b6000918252602090912001546001600160a01b03161415610eae57600191505b600101610e6d565b50600181151514610f0e576040805162461bcd60e51b815260206004820152601e60248201527f4f6e6c7920612062656e65666963696172792063616e20646f20746869730000604482015290519081900360640190fd5b60005b60025460ff82161015610f5a5760028160ff1681548110610f2e57fe5b600091825260208083209091015460ff8416835260039091526040909120429091019055600101610f11565b50506000805462ff0000191662010000179055565b81810182811015610e1b57600080fd5b604080516370a0823160e01b8152306004820152905160009182916001600160a01b038616916370a08231916024808301926020929190829003018186803b158015610fca57600080fd5b505afa158015610fde573d6000803e3d6000fd5b505050506040513d6020811015610ff457600080fd5b5051905080611037576040805162461bcd60e51b815260206004820152600a602482015269115b5c1d1e481c1bdbdb60b21b604482015290519081900360640190fd5b6000546002546110ab916110679160649161105b919060ff1663ffffffff6110b416565b9063ffffffff6110c916565b61109f61107a848763ffffffff6110b416565b6001600160a01b0389166000908152600560205260409020549063ffffffff6110c916565b9063ffffffff6110ea16565b95945050505050565b6000828211156110c357600080fd5b50900390565b8181028215806110e15750818382816110de57fe5b04145b610e1b57600080fd5b60008082116110f857600080fd5b81838161110157fe5b04939250505056fe64697374726962757465207061796d656e7420666f722070726576696f757320726f756e6456657374696e6720686173206e6f74206265656e20696e697469616c697a6564506172616d6574657273206861766520616c7265616479206265656e20616464656442656e656669636961727920616e642070657263656e7461676520617272617973206d7573742068617665207468652073616d65206c656e67746856657374696e672068617320616c7265616479206265656e20696e697469616c697a6564a26469706673582212208e7df8333c370a1410a6c7bae822d98b5d8cbc3451dd6f85a9ffd22b3b32586264736f6c63430006060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80639ae3a334116100715780639ae3a3341461017d5780639ec9bfbf146101a5578063a88ea616146101cb578063d4c0a86f146101d3578063d4fac45d146102e7578063deb36e3214610315576100b4565b8063158ef93e146100b95780633dd05a99146100d55780636c47a6c31461012d5780638ac28d5a146101475780638c3980b01461016d578063913b722c14610175575b600080fd5b6100c161031d565b604080519115158252519081900360200190f35b6100dd61032c565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610119578181015183820152602001610101565b505050509050019250505060405180910390f35b6101356103d6565b60408051918252519081900360200190f35b6100c16004803603602081101561015d57600080fd5b50356001600160a01b0316610447565b610135610697565b6100dd61074c565b6101a36004803603602081101561019357600080fd5b50356001600160a01b0316610811565b005b610135600480360360208110156101bb57600080fd5b50356001600160a01b0316610aa5565b610135610ac0565b6101a3600480360360608110156101e957600080fd5b81019060208101813564010000000081111561020457600080fd5b82018360208201111561021657600080fd5b8035906020019184602083028401116401000000008311171561023857600080fd5b91939092909160208101903564010000000081111561025657600080fd5b82018360208201111561026857600080fd5b8035906020019184602083028401116401000000008311171561028a57600080fd5b9193909290916020810190356401000000008111156102a857600080fd5b8201836020820111156102ba57600080fd5b803590602001918460208302840111640100000000831117156102dc57600080fd5b509092509050610b3b565b610135600480360360408110156102fd57600080fd5b506001600160a01b0381358116916020013516610da2565b6101a3610e21565b60005462010000900460ff1681565b60005460609062010000900460ff16151560011461037f576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b60028054806020026020016040519081016040528092919081815260200182805480156103cb57602002820191906000526020600020905b8154815260200190600101908083116103b7575b505050505090505b90565b6000805462010000900460ff161515600114610427576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b506002546000190160ff1660009081526003602052604090205442900390565b6000805462010000900460ff161515600114610498576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b6000805b6001548110156104e557336001600160a01b0316600182815481106104bd57fe5b6000918252602090912001546001600160a01b031614156104dd57600191505b60010161049c565b5060018115151461053d576040805162461bcd60e51b815260206004820152601e60248201527f4f6e6c7920612062656e65666963696172792063616e20646f20746869730000604482015290519081900360640190fd5b3360009081526004602090815260408083206001600160a01b03871684529091529020546105ab576040805162461bcd60e51b81526020600482015260166024820152754e6f2062616c616e636520746f20776974686472617760501b604482015290519081900360640190fd5b3360008181526004602081815260408084206001600160a01b038916808652908352818520805490869055825163a9059cbb60e01b815294850196909652602484018690529051909363a9059cbb936044808201949392918390030190829087803b15801561061957600080fd5b505af115801561062d573d6000803e3d6000fd5b505050506040513d602081101561064357600080fd5b5050604080516001600160a01b038616815233602082015280820183905290517fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb9181900360600190a15060019392505050565b6000805462010000900460ff1615156001146106e8576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b60008054610100900460ff1681526003602052604090205442808203908210156107435760405162461bcd60e51b815260040180806020018281038252602581526020018061110a6025913960400191505060405180910390fd5b91506103d39050565b6000546060906301000000900460ff1615156001146107b2576040805162461bcd60e51b815260206004820152601f60248201527f4e65656420746f206164642062656e6566696369617269657320666972737400604482015290519081900360640190fd5b60018054806020026020016040519081016040528092919081815260200182805480156103cb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107ea575050505050905090565b60005462010000900460ff161515600114610861576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b60008054610100900460ff168152600360205260409020544210156108cd576040805162461bcd60e51b815260206004820152601960248201527f5265616c656173652074696d65206e6f74207265616368656400000000000000604482015290519081900360640190fd5b6000805b60015481101561093b5761093160046000600184815481106108ef57fe5b60009182526020808320909101546001600160a01b0390811684528382019490945260409283018220938816825292909252902054839063ffffffff610f6f16565b91506001016108d1565b5060005b600154811015610a1e5760006109776001838154811061095b57fe5b6000918252602090912001546001600160a01b03168585610f7f565b90506109cf81600460006001868154811061098e57fe5b60009182526020808320909101546001600160a01b0390811684528382019490945260409283018220938a168252929092529020549063ffffffff610f6f16565b60046000600185815481106109e057fe5b60009182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092529020555060010161093f565b506000805460ff1961ff0019821660016101009384900460ff908116820181168502929092179283169282160181169190911792839055604080516001600160a01b038716815233602082015292909304168183015290517fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542916060908290030190a15050565b6001600160a01b031660009081526005602052604090205490565b6000805462010000900460ff161515600114610b11576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b600054600280549091610100900460ff16908110610b2b57fe5b9060005260206000200154905090565b60005462010000900460ff1615610b835760405162461bcd60e51b81526004018080602001828103825260248152602001806111ac6024913960400191505060405180910390fd5b848314610bc15760405162461bcd60e51b815260040180806020018281038252603b815260200180611171603b913960400191505060405180910390fd5b6000546301000000900460ff1615610c0a5760405162461bcd60e51b815260040180806020018281038252602281526020018061114f6022913960400191505060405180910390fd5b6000805b86811015610ce6576001888883818110610c2457fe5b835460018101855560009485526020948590200180546001600160a01b0319166001600160a01b039590920293909301359390931692909217905550858582818110610c6c57fe5b90506020020135600560008a8a85818110610c8357fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002081905550610cdc868683818110610cc657fe5b9050602002013583610f6f90919063ffffffff16565b9150600101610c0e565b5080606414610d3c576040805162461bcd60e51b815260206004820152601e60248201527f50657263656e7461676573206d7573742073756d20757020746f203130300000604482015290519081900360640190fd5b60005b60ff8116831115610d8557600284848360ff16818110610d5b57fe5b83546001808201865560009586526020958690209290950293909301359201919091555001610d3f565b50506000805463ff00000019166301000000179055505050505050565b6000805462010000900460ff161515600114610df3576040805162461bcd60e51b8152602060048201819052602482015260008051602061112f833981519152604482015290519081900360640190fd5b506001600160a01b038083166000908152600460209081526040808320938516835292905220545b92915050565b60005462010000900460ff1615610e695760405162461bcd60e51b81526004018080602001828103825260248152602001806111ac6024913960400191505060405180910390fd5b6000805b600154811015610eb657336001600160a01b031660018281548110610e8e57fe5b6000918252602090912001546001600160a01b03161415610eae57600191505b600101610e6d565b50600181151514610f0e576040805162461bcd60e51b815260206004820152601e60248201527f4f6e6c7920612062656e65666963696172792063616e20646f20746869730000604482015290519081900360640190fd5b60005b60025460ff82161015610f5a5760028160ff1681548110610f2e57fe5b600091825260208083209091015460ff8416835260039091526040909120429091019055600101610f11565b50506000805462ff0000191662010000179055565b81810182811015610e1b57600080fd5b604080516370a0823160e01b8152306004820152905160009182916001600160a01b038616916370a08231916024808301926020929190829003018186803b158015610fca57600080fd5b505afa158015610fde573d6000803e3d6000fd5b505050506040513d6020811015610ff457600080fd5b5051905080611037576040805162461bcd60e51b815260206004820152600a602482015269115b5c1d1e481c1bdbdb60b21b604482015290519081900360640190fd5b6000546002546110ab916110679160649161105b919060ff1663ffffffff6110b416565b9063ffffffff6110c916565b61109f61107a848763ffffffff6110b416565b6001600160a01b0389166000908152600560205260409020549063ffffffff6110c916565b9063ffffffff6110ea16565b95945050505050565b6000828211156110c357600080fd5b50900390565b8181028215806110e15750818382816110de57fe5b04145b610e1b57600080fd5b60008082116110f857600080fd5b81838161110157fe5b04939250505056fe64697374726962757465207061796d656e7420666f722070726576696f757320726f756e6456657374696e6720686173206e6f74206265656e20696e697469616c697a6564506172616d6574657273206861766520616c7265616479206265656e20616464656442656e656669636961727920616e642070657263656e7461676520617272617973206d7573742068617665207468652073616d65206c656e67746856657374696e672068617320616c7265616479206265656e20696e697469616c697a6564a26469706673582212208e7df8333c370a1410a6c7bae822d98b5d8cbc3451dd6f85a9ffd22b3b32586264736f6c63430006060033
Deployed Bytecode Sourcemap
1357:5338:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1357:5338:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1482:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;4359:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4359:123:0;;;;;;;;;;;;;;;;;4131:220;;;:::i;:::-;;;;;;;;;;;;;;;;6238:454;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6238:454:0;-1:-1:-1;;;;;6238:454:0;;:::i;3794:325::-;;;:::i;4818:192::-;;;:::i;5521:705::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5521:705:0;-1:-1:-1;;;;;5521:705:0;;:::i;:::-;;5022:122;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5022:122:0;-1:-1:-1;;;;;5022:122:0;;:::i;4494:133::-;;;:::i;2689:853::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2689:853:0;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;2689:853:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2689:853:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2689:853:0;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;2689:853:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2689:853:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2689:853:0;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;2689:853:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;2689:853:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;2689:853:0;;-1:-1:-1;2689:853:0;-1:-1:-1;2689:853:0;:::i;4639:167::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;4639:167:0;;;;;;;;;;:::i;3554:228::-;;;:::i;1482:23::-;;;;;;;;;:::o;4359:123::-;2265:11;;4421:22;;2265:11;;;;;:19;;2280:4;2265:19;2257:64;;;;;-1:-1:-1;;;2257:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2257:64:0;;;;;;;;;;;;;;;4462:12:::1;4455:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2332:1;4359:123:::0;:::o;4131:220::-;4191:16;2265:11;;;;;;;:19;;2280:4;2265:19;2257:64;;;;;-1:-1:-1;;;2257:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2257:64:0;;;;;;;;;;;;;;;-1:-1:-1;4234:12:0::1;:19:::0;-1:-1:-1;;4286:18:0;4276:29:::1;;4219:12;4276:29:::0;;;:9:::1;:29;::::0;;;;;4330:3:::1;4323:10:::0;::::1;::::0;4131:220::o;6238:454::-;6328:12;2265:11;;;;;;;:19;;2280:4;2265:19;2257:64;;;;;-1:-1:-1;;;2257:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2257:64:0;;;;;;;;;;;;;;;2391:15:::1;::::0;2425:161:::1;2445:13;:20:::0;2441:24;::::1;2425:161;;;2511:10;-1:-1:-1::0;;;;;2491:30:0::1;:13;2505:1;2491:16;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;2491:16:0::1;:30;2487:88;;;2555:4;2542:17;;2487:88;2467:3;;2425:161;;;-1:-1:-1::0;2618:4:0::1;2604:18:::0;::::1;;;2596:61;;;::::0;;-1:-1:-1;;;2596:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6370:10:::2;6391:1;6361:20:::0;;;:8:::2;:20;::::0;;;;;;;-1:-1:-1;;;;;6361:27:0;::::2;::::0;;;;;;;;6353:66:::2;;;::::0;;-1:-1:-1;;;6353:66:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;6353:66:0;;;;;;;;;;;;;::::2;;6467:10;6441:14;6458:20:::0;;;:8:::2;:20;::::0;;;;;;;-1:-1:-1;;;;;6458:27:0;::::2;::::0;;;;;;;;;;;6506:31;;;;6558:42;;-1:-1:-1;;;6558:42:0;;;;::::2;::::0;;;;;;;;;;;;6458:27;;6558:22:::2;::::0;:42;;;;;6458:20;6558:42;;;;;;;;;6458:27;6558:42;::::2;;2:2:-1::0;::::2;;;27:1;24::::0;17:12:::2;2:2;6558:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;6558:42:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::2;4:2;-1:-1:::0;;6626:36:0::2;::::0;;-1:-1:-1;;;;;6626:36:0;::::2;::::0;;6643:10:::2;6558:42;6626:36:::0;::::2;::::0;;;;;;;;;::::2;::::0;;;;;;;::::2;-1:-1:-1::0;6680:4:0::2;::::0;6238:454;-1:-1:-1;;;6238:454:0:o;3794:325::-;3860:16;2265:11;;;;;;;:19;;2280:4;2265:19;2257:64;;;;;-1:-1:-1;;;2257:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2257:64:0;;;;;;;;;;;;;;;3888:9:::1;3910:14:::0;;::::1;::::0;::::1;;;3900:25:::0;;:9:::1;:25;::::0;;;;;3959:3:::1;3952:10:::0;;::::1;::::0;3977;::::1;3973:139;;;4004:48;;-1:-1:-1::0;;;4004:48:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3973:139;4092:8:::0;-1:-1:-1;4085:15:0::1;::::0;-1:-1:-1;4085:15:0::1;4818:192:::0;4917:10;;4868:28;;4917:10;;;;;:18;;4931:4;4917:18;4909:62;;;;;-1:-1:-1;;;4909:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4989:13;4982:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4982:20:0;;;;;;;;;;;;;;;;;;;;;;4818:192;:::o;5521:705::-;2265:11;;;;;;;:19;;2280:4;2265:19;2257:64;;;;;-1:-1:-1;;;2257:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2257:64:0;;;;;;;;;;;;;;;5614:25:::1;5624:14:::0;;::::1;::::0;::::1;;;5614:25:::0;;:9:::1;:25;::::0;;;;;5607:3:::1;:32;;5599:70;;;::::0;;-1:-1:-1;;;5599:70:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;5680:18;::::0;5709:142:::1;5729:13;:20:::0;5725:24;::::1;5709:142;;;5787:52;5805:8;:26;5814:13;5828:1;5814:16;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;5814:16:0;;::::1;5805:26:::0;;;;::::1;::::0;;;;;;;;;;:33;;::::1;::::0;;;;;;;;;5787:13;;:52:::1;:17;:52;:::i;:::-;5771:68:::0;-1:-1:-1;5751:3:0::1;;5709:142;;;-1:-1:-1::0;5866:6:0::1;5862:242;5882:13;:20:::0;5878:24;::::1;5862:242;;;5923:12;5938:57;5956:13;5970:1;5956:16;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;5956:16:0::1;5974:5:::0;5981:13;5938:17:::1;:57::i;:::-;5923:72;;6046:46;6084:7;6046:8;:26;6055:13;6069:1;6055:16;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;6055:16:0;;::::1;6046:26:::0;;;;::::1;::::0;;;;;;;;;;:33;;::::1;::::0;;;;;;;;;;:46:::1;:37;:46;:::i;:::-;6010:8;:26;6019:13;6033:1;6019:16;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;6019:16:0;;::::1;6010:26:::0;;;;::::1;::::0;;;;;;;;;;:33;;::::1;::::0;;;;;;;;:82;-1:-1:-1;6019:16:0;5904:3:::1;5862:242;;;-1:-1:-1::0;6114:14:0::1;:16:::0;;-1:-1:-1;;;;6114:16:0;::::1;:14;:16;::::0;;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;6142:14:::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;6172:46:::1;::::0;;-1:-1:-1;;;;;6172:46:0;::::1;::::0;;6191:10:::1;6172:46;::::0;::::1;::::0;6203:14;;;::::1;;6172:46:::0;;;;;;::::1;::::0;;;;;;;;::::1;2332:1;5521:705:::0;:::o;5022:122::-;-1:-1:-1;;;;;5111:25:0;5088:4;5111:25;;;:11;:25;;;;;;;5022:122::o;4494:133::-;4559:13;2265:11;;;;;;;:19;;2280:4;2265:19;2257:64;;;;;-1:-1:-1;;;2257:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2257:64:0;;;;;;;;;;;;;;;4604:14:::1;::::0;4591:12:::1;:28:::0;;:12;;4604:14:::1;::::0;::::1;;;::::0;4591:28;::::1;;;;;;;;;;;;;4584:35;;4494:133:::0;:::o;2689:853::-;2126:11;;;;;;;:20;2118:69;;;;-1:-1:-1;;;2118:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2850:42;;::::1;2842:114;;;;-1:-1:-1::0;;;2842:114:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2975:10;::::0;;;::::1;;;:19;2967:66;;;;-1:-1:-1::0;;;2967:66:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3044:21;::::0;3076:240:::1;3092:23:::0;;::::1;3076:240;;;3137:13;3156:12;;3169:1;3156:15;;;;;;;27:10:-1::0;;39:1:::1;23:18:::0;::::1;45:23:::0;;-1:-1;3137:35:0;;;3156:15:::1;3137:35:::0;;;;::::1;::::0;;-1:-1:-1;;;;;;3137:35:0::1;-1:-1:-1::0;;;;;3156:15:0;;;::::1;::::0;;;::::1;;::::0;;;::::1;3137:35:::0;;;::::1;::::0;;-1:-1:-1;3218:12:0;;3231:1;3218:15;;::::1;;;;;;;;;;;3187:11;:28;3199:12;;3212:1;3199:15;;;;;;;;;;;;;-1:-1:-1::0;;;;;3199:15:0::1;-1:-1:-1::0;;;;;3187:28:0::1;-1:-1:-1::0;;;;;3187:28:0::1;;;;;;;;;;;;:46;;;;3267:37;3288:12;;3301:1;3288:15;;;;;;;;;;;;;3267:16;:20;;:37;;;;:::i;:::-;3248:56:::0;-1:-1:-1;3117:3:0::1;;3076:240;;;;3334:16;3354:3;3334:23;3326:66;;;::::0;;-1:-1:-1;;;3326:66:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;3407:7;3403:104;3420:21;::::0;::::1;::::0;-1:-1:-1;3403:104:0::1;;;3463:12;3481:10;;3492:1;3481:13;;;;;;;;;27:10:-1::0;;39:1:::1;23:18:::0;;::::1;45:23:::0;;-1:-1;3463:32:0;;;3481:13:::1;3463:32:::0;;;;3481:13;;;::::1;::::0;;;::::1;;3463:32:::0;::::1;::::0;;;;-1:-1:-1;3443:3:0::1;3403:104;;;-1:-1:-1::0;;3517:10:0::1;:17:::0;;-1:-1:-1;;3517:17:0::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;2689:853:0:o;4639:167::-;4740:4;2265:11;;;;;;;:19;;2280:4;2265:19;2257:64;;;;;-1:-1:-1;;;2257:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2257:64:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4763:21:0;;::::1;;::::0;;;:8:::1;:21;::::0;;;;;;;:35;;::::1;::::0;;;;;;;2332:1:::1;4639:167:::0;;;;:::o;3554:228::-;2126:11;;;;;;;:20;2118:69;;;;-1:-1:-1;;;2118:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2391:15:::1;::::0;2425:161:::1;2445:13;:20:::0;2441:24;::::1;2425:161;;;2511:10;-1:-1:-1::0;;;;;2491:30:0::1;:13;2505:1;2491:16;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;2491:16:0::1;:30;2487:88;;;2555:4;2542:17;;2487:88;2467:3;;2425:161;;;-1:-1:-1::0;2618:4:0::1;2604:18:::0;::::1;;;2596:61;;;::::0;;-1:-1:-1;;;2596:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;3638:7:::2;3634:111;3655:12;:19:::0;3651:23:::2;::::0;::::2;;3634:111;;;3717:12;3730:1;3717:15;;;;;;;;;;;::::0;;;::::2;::::0;;;;;::::2;::::0;3696:12:::2;::::0;::::2;::::0;;:9:::2;:12:::0;;;;;;;3711:3:::2;:21:::0;;::::2;3696:36:::0;;3676:3:::2;;3634:111;;;-1:-1:-1::0;;3756:11:0::2;:18:::0;;-1:-1:-1;;3756:18:0::2;::::0;::::2;::::0;;3554:228::o;857:114::-;932:5;;;956:6;;;;948:15;;12:1:-1;9;2:12;5156:357:0;5293:38;;;-1:-1:-1;;;5293:38:0;;5325:4;5293:38;;;;;;5262:4;;;;-1:-1:-1;;;;;5293:23:0;;;;;:38;;;;;;;;;;;;;;:23;:38;;;2:2:-1;;;;27:1;24;17:12;2:2;5293:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5293:38:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5293:38:0;;-1:-1:-1;5350:11:0;5342:34;;;;;-1:-1:-1;;;5342:34:0;;;;;;;;;;;;-1:-1:-1;;;5342:34:0;;;;;;;;;;;;;;;5481:12;;5457;:19;5394:111;;5456:48;;5500:3;;5457:37;;:19;5481:12;;5457:37;:23;:37;:::i;:::-;5456:43;:48;:43;:48;:::i;:::-;5394:57;5424:26;:7;5436:13;5424:26;:11;:26;:::i;:::-;-1:-1:-1;;;;;5394:25:0;;;;;;:11;:25;;;;;;;:57;:29;:57;:::i;:::-;:61;:111;:61;:111;:::i;:::-;5387:118;5156:357;-1:-1:-1;;;;;5156:357:0:o;979:114::-;1031:6;1063:1;1058;:6;;1050:15;;12:1:-1;9;2:12;1050:15:0;-1:-1:-1;1080:5:0;;;979:114::o;1101:128::-;1176:5;;;1200:6;;;:20;;;1219:1;1214;1210;:5;;;;;;:10;1200:20;1192:29;;12:1:-1;9;2:12;1237:113:0;1289:6;1320:1;1316;:5;1308:14;;12:1:-1;9;2:12;1308:14:0;1341:1;1337;:5;;;;;;;1237:113;-1:-1:-1;;;1237:113:0:o
Swarm Source
ipfs://8e7df8333c370a1410a6c7bae822d98b5d8cbc3451dd6f85a9ffd22b3b325862
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.004907 | 28,401,989.772 | $139,371.4 |
Loading...
Loading
[ 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.