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 1,620 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Release | 18568635 | 520 days ago | IN | 0 ETH | 0.00226483 | ||||
Release | 18561477 | 521 days ago | IN | 0 ETH | 0.00292912 | ||||
Release | 18554328 | 522 days ago | IN | 0 ETH | 0.002087 | ||||
Release | 18547183 | 523 days ago | IN | 0 ETH | 0.00214758 | ||||
Release | 18540040 | 524 days ago | IN | 0 ETH | 0.00267926 | ||||
Release | 18532881 | 525 days ago | IN | 0 ETH | 0.00272644 | ||||
Release | 18525731 | 526 days ago | IN | 0 ETH | 0.00207147 | ||||
Release | 18518570 | 527 days ago | IN | 0 ETH | 0.00217462 | ||||
Release | 18511441 | 528 days ago | IN | 0 ETH | 0.00281471 | ||||
Release | 18504306 | 529 days ago | IN | 0 ETH | 0.00173508 | ||||
Release | 18497172 | 530 days ago | IN | 0 ETH | 0.00153637 | ||||
Release | 18490032 | 531 days ago | IN | 0 ETH | 0.00152313 | ||||
Release | 18482901 | 532 days ago | IN | 0 ETH | 0.00189731 | ||||
Release | 18475751 | 533 days ago | IN | 0 ETH | 0.001468 | ||||
Release | 18468607 | 534 days ago | IN | 0 ETH | 0.00187267 | ||||
Release | 18461471 | 535 days ago | IN | 0 ETH | 0.00142849 | ||||
Release | 18454335 | 536 days ago | IN | 0 ETH | 0.001555 | ||||
Release | 18447194 | 537 days ago | IN | 0 ETH | 0.00137341 | ||||
Release | 18440037 | 538 days ago | IN | 0 ETH | 0.00192834 | ||||
Release | 18432888 | 539 days ago | IN | 0 ETH | 0.00217694 | ||||
Release | 18425751 | 540 days ago | IN | 0 ETH | 0.00173065 | ||||
Release | 18418615 | 541 days ago | IN | 0 ETH | 0.0016072 | ||||
Release | 18411476 | 542 days ago | IN | 0 ETH | 0.00122384 | ||||
Release | 18404335 | 543 days ago | IN | 0 ETH | 0.00109897 | ||||
Release | 18397178 | 544 days ago | IN | 0 ETH | 0.00115264 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TokenContinuousDistribution
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-11-20 */ pragma solidity ^0.4.13; library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (_a == 0) { return 0; } c = _a * _b; assert(c / _a == _b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 _a, uint256 _b) internal pure returns (uint256) { // assert(_b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = _a / _b; // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold return _a / _b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { assert(_b <= _a); return _a - _b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) { c = _a + _b; assert(c >= _a); return c; } } contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to relinquish control of the contract. * @notice Renouncing to ownership will leave the contract without an owner. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address _who) public view returns (uint256); function transfer(address _to, uint256 _value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } contract ERC20 is ERC20Basic { function allowance(address _owner, address _spender) public view returns (uint256); function transferFrom(address _from, address _to, uint256 _value) public returns (bool); function approve(address _spender, uint256 _value) public returns (bool); event Approval( address indexed owner, address indexed spender, uint256 value ); } library SafeERC20 { function safeTransfer( ERC20Basic _token, address _to, uint256 _value ) internal { require(_token.transfer(_to, _value)); } function safeTransferFrom( ERC20 _token, address _from, address _to, uint256 _value ) internal { require(_token.transferFrom(_from, _to, _value)); } function safeApprove( ERC20 _token, address _spender, uint256 _value ) internal { require(_token.approve(_spender, _value)); } } contract TokenContinuousDistribution is Ownable { using SafeMath for uint256; using SafeERC20 for ERC20Basic; event Released(ERC20Basic token, uint256 amount); // beneficiary of tokens after they are released address public beneficiary; uint256 public cliff; uint256 public start; uint256 public endTime; // 1 day = 86400 seconds uint256 public secondsIn1Unit = 86400; // 365 days * 5 = 1825 time units uint256 public numberOfUnits = 1825; // 86400 * 1825 uint256 public duration = 157680000; //1st interval gets 5/15*total balance allowed, 2nd gets 4/15*TBA, 3rd gets 3*TBA, 4th gets 2*TBA, 5th gets 1*TBA uint256 numberOfPhases = 5; // 15=5+4+3+2+1 uint256 slice = 15; mapping(address => uint256) public released; /** * @dev Creates a continuous distribution contract that distributes its balance of any ERC20 token to the * _beneficiary, gradually in a linear fashion until _start + _duration, * where _duration is the result of secondsIn1Unit*numberOfUnits * By then all of the balance will have distributed. * @param _beneficiary address of the beneficiary to whom distributed tokens are transferred * @param _start the time (as Unix time) at which point continuous distribution starts * @param _cliff duration in seconds of the cliff in which tokens will begin to continuous-distribute */ constructor( address _beneficiary, uint256 _start, uint256 _cliff ) public { require(_beneficiary != address(0), "Beneficiary address should NOT be null."); require(_cliff <= duration, "Cliff should be less than or equal to duration (i.e. secondsIn1Unit.mul(numberOfUnits))."); require((numberOfUnits % 5) == 0, "numberOfUnits should be a multiple of 5"); beneficiary = _beneficiary; cliff = _start.add(_cliff); start = _start; endTime = _start.add(duration); } /** * @notice Transfers distributed tokens to beneficiary. * @param token ERC20 token which is being distributed */ function release(ERC20Basic token) public { uint256 unreleased = releasableAmount(token); require(unreleased > 0, "Unreleased amount should be larger than 0."); released[token] = released[token].add(unreleased); token.safeTransfer(beneficiary, unreleased); emit Released(token, unreleased); } /** * @dev Calculates the amount that has already distributed but hasn't been released yet. * @param token ERC20 token which is being distributed */ function releasableAmount(ERC20Basic token) public view returns (uint256) { return distributedAmount(token).sub(released[token]); } /** * @dev Calculates the amount that has already distributed. * @param token ERC20 token which is being distributed */ function distributedAmount(ERC20Basic token) public view returns (uint256) { uint256 blockTimestamp = block.timestamp; return distributedAmountWithBlockTimestamp(token, blockTimestamp); } function distributedAmountWithBlockTimestamp(ERC20Basic token, uint256 blockTimestamp) public view returns (uint256) { uint256 currentBalance = token.balanceOf(this); uint256 totalBalance = currentBalance.add(released[token]); if (blockTimestamp < cliff) { return 0; } else if (blockTimestamp >= endTime) { return totalBalance; } else { uint256 unitsPassed = blockTimestamp.sub(start).div(secondsIn1Unit); // number of time unit passed, remember unit is usually 'day' uint256 unitsIn1Phase = numberOfUnits.div(numberOfPhases); // remember unit is usually 'day' uint256 unitsInThisPhase; uint256 weight; if (unitsPassed < unitsIn1Phase) { weight = 5; unitsInThisPhase = unitsPassed; // delay division to last step to keep precision return unitsInThisPhase.mul(totalBalance).mul(weight).div(slice).div(unitsIn1Phase); } else if (unitsPassed < unitsIn1Phase.mul(2)) { weight = 4; unitsInThisPhase = unitsPassed.sub(unitsIn1Phase); // "5" because we have everything in the previous phase // and note div(slice) is moved to the end, (x+y).div(slice) => x.div(slice).add(y.div(slice)) return totalBalance.mul(5).add(unitsInThisPhase.mul(totalBalance).mul(weight).div(unitsIn1Phase)).div(slice); } else if (unitsPassed < unitsIn1Phase.mul(3)) { weight = 3; unitsInThisPhase = unitsPassed.sub(unitsIn1Phase.mul(2)); // "9" because we have everything in the previous phase = 5+4 // and note div(slice) is moved to the end, (x+y).div(slice) => x.div(slice).add(y.div(slice)) return totalBalance.mul(9).add(unitsInThisPhase.mul(totalBalance).mul(weight).div(unitsIn1Phase)).div(slice); } else if (unitsPassed < unitsIn1Phase.mul(4)) { weight = 2; unitsInThisPhase = unitsPassed.sub(unitsIn1Phase.mul(3)); // "12" because we have everything in the previous phase = 5+4+3 // and note div(slice) is moved to the end, (x+y).div(slice) => x.div(slice).add(y.div(slice)) return totalBalance.mul(12).add(unitsInThisPhase.mul(totalBalance).mul(weight).div(unitsIn1Phase)).div(slice); } else if (unitsPassed < unitsIn1Phase.mul(5)) { weight = 1; unitsInThisPhase = unitsPassed.sub(unitsIn1Phase.mul(4)); // "14" because we have everything in the previous phase = 5+4+3+2 // and note div(slice) is moved to the end, (x+y).div(slice) => x.div(slice).add(y.div(slice)) return totalBalance.mul(14).add(unitsInThisPhase.mul(totalBalance).mul(weight).div(unitsIn1Phase)).div(slice); } require(blockTimestamp < endTime, "Block timestamp is expected to have not reached distribution endTime if the code even falls in here."); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"token","type":"address"}],"name":"distributedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"duration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cliff","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"token","type":"address"}],"name":"releasableAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfUnits","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"released","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"token","type":"address"},{"name":"blockTimestamp","type":"uint256"}],"name":"distributedAmountWithBlockTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"secondsIn1Unit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_start","type":"uint256"},{"name":"_cliff","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Released","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60806040526201518060055561072160065563096601806007556005600855600f60095534801561002f57600080fd5b50604051606080610d6583398101604090815281516020830151919092015160008054600160a060020a03191633179055600160a060020a03831615156100fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f42656e656669636961727920616464726573732073686f756c64204e4f54206260448201527f65206e756c6c2e00000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6007548111156101ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f436c6966662073686f756c64206265206c657373207468616e206f722065717560448201527f616c20746f206475726174696f6e2028692e652e207365636f6e6473496e315560648201527f6e69742e6d756c286e756d6265724f66556e69747329292e0000000000000000608482015290519081900360a40190fd5b600654600590061561025357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f6e756d6265724f66556e6974732073686f756c642062652061206d756c74697060448201527f6c65206f66203500000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60018054600160a060020a031916600160a060020a03851617905561028582826401000000006102b481026108fc1704565b60025560038290556007546102a89083906401000000006108fc6102b482021704565b600455506102c7915050565b818101828110156102c157fe5b92915050565b610a8f806102d66000396000f3006080604052600436106100c15763ffffffff60e060020a60003504166304ff760f81146100c65780630fb5a6b4146100f957806313d033c01461010e5780631726cbc81461012357806319165587146101445780633197cbb61461016757806338af3eed1461017c5780634fdf8b3c146101ad578063715018a6146101c25780638da5cb5b146101d75780639852595c146101ec5780639a70fae61461020d578063b945a0d414610231578063be9a655514610246578063f2fde38b1461025b575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a036004351661027c565b60408051918252519081900360200190f35b34801561010557600080fd5b506100e7610290565b34801561011a57600080fd5b506100e7610296565b34801561012f57600080fd5b506100e7600160a060020a036004351661029c565b34801561015057600080fd5b50610165600160a060020a03600435166102d4565b005b34801561017357600080fd5b506100e7610419565b34801561018857600080fd5b5061019161041f565b60408051600160a060020a039092168252519081900360200190f35b3480156101b957600080fd5b506100e761042e565b3480156101ce57600080fd5b50610165610434565b3480156101e357600080fd5b506101916104a0565b3480156101f857600080fd5b506100e7600160a060020a03600435166104af565b34801561021957600080fd5b506100e7600160a060020a03600435166024356104c1565b34801561023d57600080fd5b506100e76108bb565b34801561025257600080fd5b506100e76108c1565b34801561026757600080fd5b50610165600160a060020a03600435166108c7565b60004261028983826104c1565b9392505050565b60075481565b60025481565b600160a060020a0381166000908152600a60205260408120546102ce906102c28461027c565b9063ffffffff6108ea16565b92915050565b60006102df8261029c565b90506000811161037657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f556e72656c656173656420616d6f756e742073686f756c64206265206c61726760448201527f6572207468616e20302e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382166000908152600a602052604090205461039f908263ffffffff6108fc16565b600160a060020a038084166000818152600a60205260409020929092556001546103d19291168363ffffffff61090916565b60408051600160a060020a03841681526020810183905281517fb21fb52d5749b80f3182f8c6992236b5e5576681880914484d7f4c9b062e619e929181900390910190a15050565b60045481565b600154600160a060020a031681565b60065481565b600054600160a060020a0316331461044b57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600a6020526000908152604090205481565b600080600080600080600088600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561052757600080fd5b505af115801561053b573d6000803e3d6000fd5b505050506040513d602081101561055157600080fd5b5051600160a060020a038a166000908152600a602052604090205490965061058090879063ffffffff6108fc16565b945060025488101561059557600096506108af565b60045488106105a6578496506108af565b6105cd6005546105c16003548b6108ea90919063ffffffff16565b9063ffffffff6109a816565b93506105e66008546006546109a890919063ffffffff16565b92508284101561062b5760059050839150610624836105c16009546105c1856106188b896109bd90919063ffffffff16565b9063ffffffff6109bd16565b96506108af565b61063c83600263ffffffff6109bd16565b84101561069657506004610656848463ffffffff6108ea16565b600954909250610624906105c1610679868286610618898d63ffffffff6109bd16565b61068a89600563ffffffff6109bd16565b9063ffffffff6108fc16565b6106a783600363ffffffff6109bd16565b841015610706575060036106d26106c584600263ffffffff6109bd16565b859063ffffffff6108ea16565b600954909250610624906105c16106f5868286610618898d63ffffffff6109bd16565b61068a89600963ffffffff6109bd16565b61071783600463ffffffff6109bd16565b841015610769575060026107356106c584600363ffffffff6109bd16565b600954909250610624906105c1610758868286610618898d63ffffffff6109bd16565b61068a89600c63ffffffff6109bd16565b61077a83600563ffffffff6109bd16565b8410156107cc575060016107986106c584600463ffffffff6109bd16565b600954909250610624906105c16107bb868286610618898d63ffffffff6109bd16565b61068a89600e63ffffffff6109bd16565b60045488106108af57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526064602482018190527f426c6f636b2074696d657374616d7020697320657870656374656420746f206860448301527f617665206e6f74207265616368656420646973747269627574696f6e20656e64908201527f54696d652069662074686520636f6465206576656e2066616c6c7320696e206860848201527f6572652e0000000000000000000000000000000000000000000000000000000060a482015290519081900360c40190fd5b50505050505092915050565b60055481565b60035481565b600054600160a060020a031633146108de57600080fd5b6108e7816109e6565b50565b6000828211156108f657fe5b50900390565b818101828110156102ce57fe5b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561096c57600080fd5b505af1158015610980573d6000803e3d6000fd5b505050506040513d602081101561099657600080fd5b505115156109a357600080fd5b505050565b600081838115156109b557fe5b049392505050565b60008215156109ce575060006102ce565b508181028183828115156109de57fe5b04146102ce57fe5b600160a060020a03811615156109fb57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582031968b0814de964028a5d4ea5732f16afc3fec2114258ab7143c0094695ae09b002900000000000000000000000020a0bee429d6907e556205ef9d48ab6fe6a55531000000000000000000000000000000000000000000000000000000005bebd600000000000000000000000000000000000000000000000000000000000000003c
Deployed Bytecode
0x6080604052600436106100c15763ffffffff60e060020a60003504166304ff760f81146100c65780630fb5a6b4146100f957806313d033c01461010e5780631726cbc81461012357806319165587146101445780633197cbb61461016757806338af3eed1461017c5780634fdf8b3c146101ad578063715018a6146101c25780638da5cb5b146101d75780639852595c146101ec5780639a70fae61461020d578063b945a0d414610231578063be9a655514610246578063f2fde38b1461025b575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a036004351661027c565b60408051918252519081900360200190f35b34801561010557600080fd5b506100e7610290565b34801561011a57600080fd5b506100e7610296565b34801561012f57600080fd5b506100e7600160a060020a036004351661029c565b34801561015057600080fd5b50610165600160a060020a03600435166102d4565b005b34801561017357600080fd5b506100e7610419565b34801561018857600080fd5b5061019161041f565b60408051600160a060020a039092168252519081900360200190f35b3480156101b957600080fd5b506100e761042e565b3480156101ce57600080fd5b50610165610434565b3480156101e357600080fd5b506101916104a0565b3480156101f857600080fd5b506100e7600160a060020a03600435166104af565b34801561021957600080fd5b506100e7600160a060020a03600435166024356104c1565b34801561023d57600080fd5b506100e76108bb565b34801561025257600080fd5b506100e76108c1565b34801561026757600080fd5b50610165600160a060020a03600435166108c7565b60004261028983826104c1565b9392505050565b60075481565b60025481565b600160a060020a0381166000908152600a60205260408120546102ce906102c28461027c565b9063ffffffff6108ea16565b92915050565b60006102df8261029c565b90506000811161037657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f556e72656c656173656420616d6f756e742073686f756c64206265206c61726760448201527f6572207468616e20302e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382166000908152600a602052604090205461039f908263ffffffff6108fc16565b600160a060020a038084166000818152600a60205260409020929092556001546103d19291168363ffffffff61090916565b60408051600160a060020a03841681526020810183905281517fb21fb52d5749b80f3182f8c6992236b5e5576681880914484d7f4c9b062e619e929181900390910190a15050565b60045481565b600154600160a060020a031681565b60065481565b600054600160a060020a0316331461044b57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600a6020526000908152604090205481565b600080600080600080600088600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561052757600080fd5b505af115801561053b573d6000803e3d6000fd5b505050506040513d602081101561055157600080fd5b5051600160a060020a038a166000908152600a602052604090205490965061058090879063ffffffff6108fc16565b945060025488101561059557600096506108af565b60045488106105a6578496506108af565b6105cd6005546105c16003548b6108ea90919063ffffffff16565b9063ffffffff6109a816565b93506105e66008546006546109a890919063ffffffff16565b92508284101561062b5760059050839150610624836105c16009546105c1856106188b896109bd90919063ffffffff16565b9063ffffffff6109bd16565b96506108af565b61063c83600263ffffffff6109bd16565b84101561069657506004610656848463ffffffff6108ea16565b600954909250610624906105c1610679868286610618898d63ffffffff6109bd16565b61068a89600563ffffffff6109bd16565b9063ffffffff6108fc16565b6106a783600363ffffffff6109bd16565b841015610706575060036106d26106c584600263ffffffff6109bd16565b859063ffffffff6108ea16565b600954909250610624906105c16106f5868286610618898d63ffffffff6109bd16565b61068a89600963ffffffff6109bd16565b61071783600463ffffffff6109bd16565b841015610769575060026107356106c584600363ffffffff6109bd16565b600954909250610624906105c1610758868286610618898d63ffffffff6109bd16565b61068a89600c63ffffffff6109bd16565b61077a83600563ffffffff6109bd16565b8410156107cc575060016107986106c584600463ffffffff6109bd16565b600954909250610624906105c16107bb868286610618898d63ffffffff6109bd16565b61068a89600e63ffffffff6109bd16565b60045488106108af57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526064602482018190527f426c6f636b2074696d657374616d7020697320657870656374656420746f206860448301527f617665206e6f74207265616368656420646973747269627574696f6e20656e64908201527f54696d652069662074686520636f6465206576656e2066616c6c7320696e206860848201527f6572652e0000000000000000000000000000000000000000000000000000000060a482015290519081900360c40190fd5b50505050505092915050565b60055481565b60035481565b600054600160a060020a031633146108de57600080fd5b6108e7816109e6565b50565b6000828211156108f657fe5b50900390565b818101828110156102ce57fe5b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561096c57600080fd5b505af1158015610980573d6000803e3d6000fd5b505050506040513d602081101561099657600080fd5b505115156109a357600080fd5b505050565b600081838115156109b557fe5b049392505050565b60008215156109ce575060006102ce565b508181028183828115156109de57fe5b04146102ce57fe5b600160a060020a03811615156109fb57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582031968b0814de964028a5d4ea5732f16afc3fec2114258ab7143c0094695ae09b0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000020a0bee429d6907e556205ef9d48ab6fe6a55531000000000000000000000000000000000000000000000000000000005bebd600000000000000000000000000000000000000000000000000000000000000003c
-----Decoded View---------------
Arg [0] : _beneficiary (address): 0x20a0BEe429d6907e556205ef9d48Ab6fE6a55531
Arg [1] : _start (uint256): 1542182400
Arg [2] : _cliff (uint256): 60
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000020a0bee429d6907e556205ef9d48ab6fe6a55531
Arg [1] : 000000000000000000000000000000000000000000000000000000005bebd600
Arg [2] : 000000000000000000000000000000000000000000000000000000000000003c
Swarm Source
bzzr://31968b0814de964028a5d4ea5732f16afc3fec2114258ab7143c0094695ae09b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
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.