More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 44 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Release | 17010227 | 476 days ago | IN | 0 ETH | 0.00135131 | ||||
Release | 16987104 | 479 days ago | IN | 0 ETH | 0.00117984 | ||||
Release | 16903465 | 491 days ago | IN | 0 ETH | 0.00085947 | ||||
Release | 16893166 | 492 days ago | IN | 0 ETH | 0.00177642 | ||||
Release | 16655198 | 526 days ago | IN | 0 ETH | 0.00136957 | ||||
Release | 16591076 | 535 days ago | IN | 0 ETH | 0.00156209 | ||||
Release | 16538582 | 542 days ago | IN | 0 ETH | 0.00119146 | ||||
Release | 16470661 | 552 days ago | IN | 0 ETH | 0.00086424 | ||||
Release | 16409399 | 560 days ago | IN | 0 ETH | 0.00066387 | ||||
Release | 16361119 | 567 days ago | IN | 0 ETH | 0.00069511 | ||||
Release | 16297342 | 576 days ago | IN | 0 ETH | 0.00093697 | ||||
Release | 16289228 | 577 days ago | IN | 0 ETH | 0.00089418 | ||||
Release | 16137881 | 598 days ago | IN | 0 ETH | 0.00071167 | ||||
Release | 16061827 | 609 days ago | IN | 0 ETH | 0.00057386 | ||||
Release | 16053634 | 610 days ago | IN | 0 ETH | 0.00065456 | ||||
Release | 15919070 | 629 days ago | IN | 0 ETH | 0.00071335 | ||||
Release | 15919070 | 629 days ago | IN | 0 ETH | 0.00078776 | ||||
Release | 15919070 | 629 days ago | IN | 0 ETH | 0.00108243 | ||||
Release | 15896754 | 632 days ago | IN | 0 ETH | 0.00077898 | ||||
Release | 15745291 | 653 days ago | IN | 0 ETH | 0.00129362 | ||||
Release | 15581857 | 676 days ago | IN | 0 ETH | 0.00038983 | ||||
Release | 15548530 | 680 days ago | IN | 0 ETH | 0.0004674 | ||||
Release | 15383149 | 707 days ago | IN | 0 ETH | 0.00037487 | ||||
Release | 15335202 | 714 days ago | IN | 0 ETH | 0.00039713 | ||||
Release | 15251576 | 728 days ago | IN | 0 ETH | 0.0013891 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
MultiBeneficiaryLock
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-08 */ // SPDX-License-Identifier: MIT // File: contracts/Context.sol pragma solidity ^0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: contracts/Ownable.sol // OpenZeppelin Contracts v4.4.0 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: contracts/IERC20.sol pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: contracts/MultiBeneficiaryLock.sol pragma solidity ^0.8.0; /** * A gas optimized implementation of a vesting contract for tokens according to a predetermined vesting schedule * for multiple beneficiaries. Beneficiaries can choose how often they invoke release() to receive the unlocked * tokens. There are several steps to use this contract * - construction with token address, length of vesting period, and release interval * - init of the beneficiaries with their respective amounts * - launch of the contract when the launch date is known and after enough tokens are received. */ contract MultiBeneficiaryLock is Ownable { IERC20 private immutable token; uint32 private immutable period; uint32 private immutable interval; uint256 private start; uint256 private totalTokens; struct Balance { uint256 released; uint256 total; } mapping(address => Balance) private balance; modifier notLaunched { require(start == 0, "MBL01"); _; } modifier launched { require(start > 0, "MBL02"); _; } /** * Construct a MultiBeneficiary lock contract that has the specified vesting period in days * and a release interval in days when new tokens prorata become available. */ constructor(IERC20 tokenAddress, uint32 periodDays, uint32 intervalDays) { require(intervalDays <= periodDays, "MBL03"); token = tokenAddress; period = periodDays; interval = intervalDays; } /** * Initialize beneficiaries. Provide the list of beneficiaries for this lock contract and their respective * balances. Only the owner can call this function. * As this is a gas intensive method for large arrays, check for duplicate addresses is left out. It is the * responsibility of the owner to prevent duplicates which can be validated by calling checkInitBeneficiaries upfront. */ function initBeneficiaries(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner notLaunched { require(totalTokens == 0, "MBL04"); require(addresses.length == amounts.length, "MBL05"); uint256 total = 0; for (uint256 i=0; i < addresses.length; i++) { total = total + amounts[i]; balance[addresses[i]] = Balance(0, amounts[i]); } totalTokens = total; } /** * Check that the given list of beneficiaries is sane. Gasless check which can be called before initBeneficiaries. */ function checkInitBeneficiaries(address[] calldata addresses, uint256[] calldata amounts) external view onlyOwner notLaunched returns (uint256){ require(totalTokens == 0, "MBL04"); require(addresses.length == amounts.length, "MBL05"); uint256 total = 0; for (uint256 i=0; i < addresses.length; i++) { total = total + amounts[i]; require(amounts[i] > 0, "MBL06"); for (uint256 j = i + 1; j < addresses.length; j++) { require(addresses[i] != addresses[j], "MBL07"); } } return total; } /** * Return the minium amount of tokens that is required for the contract to be launched * only relevant after init. */ function tokenCountOnLaunch() external view returns (uint256) { return totalTokens; } /** * Return if all preconditions are met for the lock contract to launch: * not launched yet, initialized and token balance enough. */ function readyForLaunch() external view returns (bool) { return (start == 0) && (totalTokens > 0) && (token.balanceOf(address(this)) >= totalTokens); } /** * Launch the contract given a start block time as the basis for the vesting period. * when blocktime reaches startBlocktime, the first interval wait for release starts. * blocktime in seconds since epoch. */ function launch(uint256 startBlocktime) external notLaunched onlyOwner { require(startBlocktime > 0, "MBL08"); require(totalTokens > 0, "MBL09"); require(token.balanceOf(address(this)) >= totalTokens, "MBL10"); start = startBlocktime; } /** * @return the token being held. */ function erc20() external view returns (IERC20) { return token; } /** * @return number of tokens still locked up for a particular beneficiary */ function locked(address holder) external view returns (uint256){ return balance[holder].total - balance[holder].released - amountCanRelease(holder); } /** * @return the amount of tokens that have already been released for a particular beneficiary */ function released(address holder) external view returns (uint256){ return balance[holder].released; } /** * @return block.timestamp */ function blocktime() internal virtual view returns (uint256){ return block.timestamp; } /** * @return number of days since contract's launchdate * Only relevant when launched. */ function calculateDaysSinceStart() private view returns (uint256){ uint256 ts = blocktime(); if (ts < start) return 0; return (ts - start) / (1 days); } /** * @return the amount of tokens that can be released to the beneficiary at this time */ function amountCanRelease(address holder) public view returns (uint256){ // not launched if (start == 0) return 0; Balance memory beneficiaryBalance = balance[holder]; uint256 amount = beneficiaryBalance.total - beneficiaryBalance.released; if (amount == 0) return 0; uint256 daysSinceStart = calculateDaysSinceStart(); if (daysSinceStart > period) return amount; uint256 amountPerDay = beneficiaryBalance.total / period; uint256 daysStartToLastRelease = beneficiaryBalance.released / amountPerDay; // starttime to last release date's interval start date uint256 daysSinceLastRelease = daysSinceStart - daysStartToLastRelease; if (daysSinceLastRelease < interval) return 0; return (daysSinceLastRelease / interval * interval) * amountPerDay; } /** * Release all tokens that can be released for a particular beneficiary. Invoker pays the gas. * Anyone can invoke. */ function releaseFor(address holder) public launched { uint256 amountToRelease = amountCanRelease(holder); require(amountToRelease > 0); assert(balance[holder].total - balance[holder].released >= amountToRelease); balance[holder].released += amountToRelease; require(token.transfer(holder, amountToRelease), "MBL11"); } /** * Release all tokens that can be released for msg.sender. */ function release() external { releaseFor(msg.sender); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IERC20","name":"tokenAddress","type":"address"},{"internalType":"uint32","name":"periodDays","type":"uint32"},{"internalType":"uint32","name":"intervalDays","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"amountCanRelease","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"checkInitBeneficiaries","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"erc20","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"initBeneficiaries","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"startBlocktime","type":"uint256"}],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"locked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"readyForLaunch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"releaseFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenCountOnLaunch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e060405234801561001057600080fd5b5060405161110538038061110583398101604081905261002f9161010b565b610038336100a2565b8163ffffffff168163ffffffff1611156100805760405162461bcd60e51b81526020600482015260056024820152644d424c303360d81b604482015260640160405180910390fd5b6001600160a01b0390921660805263ffffffff90811660a0521660c05261015c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b805163ffffffff8116811461010657600080fd5b919050565b60008060006060848603121561012057600080fd5b83516001600160a01b038116811461013757600080fd5b9250610145602085016100f2565b9150610153604085016100f2565b90509250925092565b60805160a05160c051610f576101ae600039600081816106d9015261071b015260008181610647015261067f01526000818161014b0152818161086f0152818161095b0152610afb0152610f576000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806386d1a69f1161008c578063a0e3cc1a11610066578063a0e3cc1a146101d8578063cbf9fe5f146101f0578063ec0904f714610203578063f2fde38b1461021657600080fd5b806386d1a69f146101965780638da5cb5b1461019e5780639852595c146101af57600080fd5b806355801baa116100c857806355801baa1461012e578063715018a614610141578063785e9e861461014957806385b12c7c1461018357600080fd5b806316043ded146100ef57806318f26cc014610106578063554be6a61461011b575b600080fd5b6002545b6040519081526020015b60405180910390f35b610119610114366004610d10565b610229565b005b6100f3610129366004610d10565b6103b9565b6100f361013c366004610d7c565b6105d2565b610119610765565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016100fd565b610119610191366004610dac565b61079b565b61011961091d565b6000546001600160a01b031661016b565b6100f36101bd366004610d7c565b6001600160a01b031660009081526003602052604090205490565b6101e0610926565b60405190151581526020016100fd565b6100f36101fe366004610d7c565b6109d6565b610119610211366004610d7c565b610a1b565b610119610224366004610d7c565b610ba0565b6000546001600160a01b0316331461025c5760405162461bcd60e51b815260040161025390610dc5565b60405180910390fd5b6001541561027c5760405162461bcd60e51b815260040161025390610dfa565b600254156102b45760405162461bcd60e51b81526020600482015260056024820152641350930c0d60da1b6044820152606401610253565b8281146102eb5760405162461bcd60e51b81526020600482015260056024820152644d424c303560d81b6044820152606401610253565b6000805b848110156103af5783838281811061030957610309610e19565b905060200201358261031b9190610e45565b915060405180604001604052806000815260200185858481811061034157610341610e19565b905060200201358152506003600088888581811061036157610361610e19565b90506020020160208101906103769190610d7c565b6001600160a01b0316815260208082019290925260400160002082518155910151600190910155806103a781610e5d565b9150506102ef565b5060025550505050565b600080546001600160a01b031633146103e45760405162461bcd60e51b815260040161025390610dc5565b600154156104045760405162461bcd60e51b815260040161025390610dfa565b6002541561043c5760405162461bcd60e51b81526020600482015260056024820152641350930c0d60da1b6044820152606401610253565b8382146104735760405162461bcd60e51b81526020600482015260056024820152644d424c303560d81b6044820152606401610253565b6000805b858110156105c85784848281811061049157610491610e19565b90506020020135826104a39190610e45565b915060008585838181106104b9576104b9610e19565b90506020020135116104f55760405162461bcd60e51b815260206004820152600560248201526426a126181b60d91b6044820152606401610253565b6000610502826001610e45565b90505b868110156105b55787878281811061051f5761051f610e19565b90506020020160208101906105349190610d7c565b6001600160a01b031688888481811061054f5761054f610e19565b90506020020160208101906105649190610d7c565b6001600160a01b031614156105a35760405162461bcd60e51b81526020600482015260056024820152644d424c303760d81b6044820152606401610253565b806105ad81610e5d565b915050610505565b50806105c081610e5d565b915050610477565b5095945050505050565b6000600154600014156105e757506000919050565b6001600160a01b0382166000908152600360209081526040808320815180830190925280548083526001909101549282018390529092916106289190610e78565b905080610639575060009392505050565b6000610643610c3b565b90507f000000000000000000000000000000000000000000000000000000000000000063ffffffff1681111561067b57509392505050565b60007f000000000000000000000000000000000000000000000000000000000000000063ffffffff1684602001516106b39190610e8f565b905060008185600001516106c79190610e8f565b905060006106d58285610e78565b90507f000000000000000000000000000000000000000000000000000000000000000063ffffffff1681101561071357506000979650505050505050565b8263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166107458184610e8f565b61074f9190610eb1565b6107599190610eb1565b98975050505050505050565b6000546001600160a01b0316331461078f5760405162461bcd60e51b815260040161025390610dc5565b6107996000610c74565b565b600154156107bb5760405162461bcd60e51b815260040161025390610dfa565b6000546001600160a01b031633146107e55760405162461bcd60e51b815260040161025390610dc5565b6000811161081d5760405162461bcd60e51b815260206004820152600560248201526409a849860760db1b6044820152606401610253565b6000600254116108575760405162461bcd60e51b81526020600482015260056024820152644d424c303960d81b6044820152606401610253565b6002546040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156108be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e29190610ed0565b10156109185760405162461bcd60e51b815260206004820152600560248201526404d424c31360dc1b6044820152606401610253565b600155565b61079933610a1b565b6000600154600014801561093c57506000600254115b80156109d157506002546040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce9190610ed0565b10155b905090565b60006109e1826105d2565b6001600160a01b03831660009081526003602052604090208054600190910154610a0b9190610e78565b610a159190610e78565b92915050565b600060015411610a555760405162461bcd60e51b815260206004820152600560248201526426a126181960d91b6044820152606401610253565b6000610a60826105d2565b905060008111610a6f57600080fd5b6001600160a01b038216600090815260036020526040902080546001909101548291610a9a91610e78565b1015610aa857610aa8610ee9565b6001600160a01b03821660009081526003602052604081208054839290610ad0908490610e45565b909155505060405163a9059cbb60e01b81526001600160a01b038381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015610b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b689190610eff565b610b9c5760405162461bcd60e51b81526020600482015260056024820152644d424c313160d81b6044820152606401610253565b5050565b6000546001600160a01b03163314610bca5760405162461bcd60e51b815260040161025390610dc5565b6001600160a01b038116610c2f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610253565b610c3881610c74565b50565b6001546000904290811015610c5257600091505090565b6201518060015482610c649190610e78565b610c6e9190610e8f565b91505090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f840112610cd657600080fd5b50813567ffffffffffffffff811115610cee57600080fd5b6020830191508360208260051b8501011115610d0957600080fd5b9250929050565b60008060008060408587031215610d2657600080fd5b843567ffffffffffffffff80821115610d3e57600080fd5b610d4a88838901610cc4565b90965094506020870135915080821115610d6357600080fd5b50610d7087828801610cc4565b95989497509550505050565b600060208284031215610d8e57600080fd5b81356001600160a01b0381168114610da557600080fd5b9392505050565b600060208284031215610dbe57600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600590820152644d424c303160d81b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115610e5857610e58610e2f565b500190565b6000600019821415610e7157610e71610e2f565b5060010190565b600082821015610e8a57610e8a610e2f565b500390565b600082610eac57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610ecb57610ecb610e2f565b500290565b600060208284031215610ee257600080fd5b5051919050565b634e487b7160e01b600052600160045260246000fd5b600060208284031215610f1157600080fd5b81518015158114610da557600080fdfea2646970667358221220791416686733f7488d4e86cec376d9d4f0f0bc523977b1a4f292b2ca6780c27764736f6c634300080a003300000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f00000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000001
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806386d1a69f1161008c578063a0e3cc1a11610066578063a0e3cc1a146101d8578063cbf9fe5f146101f0578063ec0904f714610203578063f2fde38b1461021657600080fd5b806386d1a69f146101965780638da5cb5b1461019e5780639852595c146101af57600080fd5b806355801baa116100c857806355801baa1461012e578063715018a614610141578063785e9e861461014957806385b12c7c1461018357600080fd5b806316043ded146100ef57806318f26cc014610106578063554be6a61461011b575b600080fd5b6002545b6040519081526020015b60405180910390f35b610119610114366004610d10565b610229565b005b6100f3610129366004610d10565b6103b9565b6100f361013c366004610d7c565b6105d2565b610119610765565b7f00000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f5b6040516001600160a01b0390911681526020016100fd565b610119610191366004610dac565b61079b565b61011961091d565b6000546001600160a01b031661016b565b6100f36101bd366004610d7c565b6001600160a01b031660009081526003602052604090205490565b6101e0610926565b60405190151581526020016100fd565b6100f36101fe366004610d7c565b6109d6565b610119610211366004610d7c565b610a1b565b610119610224366004610d7c565b610ba0565b6000546001600160a01b0316331461025c5760405162461bcd60e51b815260040161025390610dc5565b60405180910390fd5b6001541561027c5760405162461bcd60e51b815260040161025390610dfa565b600254156102b45760405162461bcd60e51b81526020600482015260056024820152641350930c0d60da1b6044820152606401610253565b8281146102eb5760405162461bcd60e51b81526020600482015260056024820152644d424c303560d81b6044820152606401610253565b6000805b848110156103af5783838281811061030957610309610e19565b905060200201358261031b9190610e45565b915060405180604001604052806000815260200185858481811061034157610341610e19565b905060200201358152506003600088888581811061036157610361610e19565b90506020020160208101906103769190610d7c565b6001600160a01b0316815260208082019290925260400160002082518155910151600190910155806103a781610e5d565b9150506102ef565b5060025550505050565b600080546001600160a01b031633146103e45760405162461bcd60e51b815260040161025390610dc5565b600154156104045760405162461bcd60e51b815260040161025390610dfa565b6002541561043c5760405162461bcd60e51b81526020600482015260056024820152641350930c0d60da1b6044820152606401610253565b8382146104735760405162461bcd60e51b81526020600482015260056024820152644d424c303560d81b6044820152606401610253565b6000805b858110156105c85784848281811061049157610491610e19565b90506020020135826104a39190610e45565b915060008585838181106104b9576104b9610e19565b90506020020135116104f55760405162461bcd60e51b815260206004820152600560248201526426a126181b60d91b6044820152606401610253565b6000610502826001610e45565b90505b868110156105b55787878281811061051f5761051f610e19565b90506020020160208101906105349190610d7c565b6001600160a01b031688888481811061054f5761054f610e19565b90506020020160208101906105649190610d7c565b6001600160a01b031614156105a35760405162461bcd60e51b81526020600482015260056024820152644d424c303760d81b6044820152606401610253565b806105ad81610e5d565b915050610505565b50806105c081610e5d565b915050610477565b5095945050505050565b6000600154600014156105e757506000919050565b6001600160a01b0382166000908152600360209081526040808320815180830190925280548083526001909101549282018390529092916106289190610e78565b905080610639575060009392505050565b6000610643610c3b565b90507f000000000000000000000000000000000000000000000000000000000000016863ffffffff1681111561067b57509392505050565b60007f000000000000000000000000000000000000000000000000000000000000016863ffffffff1684602001516106b39190610e8f565b905060008185600001516106c79190610e8f565b905060006106d58285610e78565b90507f000000000000000000000000000000000000000000000000000000000000000163ffffffff1681101561071357506000979650505050505050565b8263ffffffff7f0000000000000000000000000000000000000000000000000000000000000001166107458184610e8f565b61074f9190610eb1565b6107599190610eb1565b98975050505050505050565b6000546001600160a01b0316331461078f5760405162461bcd60e51b815260040161025390610dc5565b6107996000610c74565b565b600154156107bb5760405162461bcd60e51b815260040161025390610dfa565b6000546001600160a01b031633146107e55760405162461bcd60e51b815260040161025390610dc5565b6000811161081d5760405162461bcd60e51b815260206004820152600560248201526409a849860760db1b6044820152606401610253565b6000600254116108575760405162461bcd60e51b81526020600482015260056024820152644d424c303960d81b6044820152606401610253565b6002546040516370a0823160e01b81523060048201527f00000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f6001600160a01b0316906370a0823190602401602060405180830381865afa1580156108be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e29190610ed0565b10156109185760405162461bcd60e51b815260206004820152600560248201526404d424c31360dc1b6044820152606401610253565b600155565b61079933610a1b565b6000600154600014801561093c57506000600254115b80156109d157506002546040516370a0823160e01b81523060048201527f00000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f6001600160a01b0316906370a0823190602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce9190610ed0565b10155b905090565b60006109e1826105d2565b6001600160a01b03831660009081526003602052604090208054600190910154610a0b9190610e78565b610a159190610e78565b92915050565b600060015411610a555760405162461bcd60e51b815260206004820152600560248201526426a126181960d91b6044820152606401610253565b6000610a60826105d2565b905060008111610a6f57600080fd5b6001600160a01b038216600090815260036020526040902080546001909101548291610a9a91610e78565b1015610aa857610aa8610ee9565b6001600160a01b03821660009081526003602052604081208054839290610ad0908490610e45565b909155505060405163a9059cbb60e01b81526001600160a01b038381166004830152602482018390527f00000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f169063a9059cbb906044016020604051808303816000875af1158015610b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b689190610eff565b610b9c5760405162461bcd60e51b81526020600482015260056024820152644d424c313160d81b6044820152606401610253565b5050565b6000546001600160a01b03163314610bca5760405162461bcd60e51b815260040161025390610dc5565b6001600160a01b038116610c2f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610253565b610c3881610c74565b50565b6001546000904290811015610c5257600091505090565b6201518060015482610c649190610e78565b610c6e9190610e8f565b91505090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f840112610cd657600080fd5b50813567ffffffffffffffff811115610cee57600080fd5b6020830191508360208260051b8501011115610d0957600080fd5b9250929050565b60008060008060408587031215610d2657600080fd5b843567ffffffffffffffff80821115610d3e57600080fd5b610d4a88838901610cc4565b90965094506020870135915080821115610d6357600080fd5b50610d7087828801610cc4565b95989497509550505050565b600060208284031215610d8e57600080fd5b81356001600160a01b0381168114610da557600080fd5b9392505050565b600060208284031215610dbe57600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600590820152644d424c303160d81b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115610e5857610e58610e2f565b500190565b6000600019821415610e7157610e71610e2f565b5060010190565b600082821015610e8a57610e8a610e2f565b500390565b600082610eac57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610ecb57610ecb610e2f565b500290565b600060208284031215610ee257600080fd5b5051919050565b634e487b7160e01b600052600160045260246000fd5b600060208284031215610f1157600080fd5b81518015158114610da557600080fdfea2646970667358221220791416686733f7488d4e86cec376d9d4f0f0bc523977b1a4f292b2ca6780c27764736f6c634300080a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f00000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000001
-----Decoded View---------------
Arg [0] : tokenAddress (address): 0x37E83a94c6B1Bdb816B59aC71dd02CF154d8111F
Arg [1] : periodDays (uint32): 360
Arg [2] : intervalDays (uint32): 1
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000037e83a94c6b1bdb816b59ac71dd02cf154d8111f
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000168
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000001
Deployed Bytecode Sourcemap
6781:6511:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9554:99;9634:11;;9554:99;;;160:25:1;;;148:2;133:18;9554:99:0;;;;;;;;8175:468;;;;;;:::i;:::-;;:::i;:::-;;8789:613;;;;;;:::i;:::-;;:::i;11742:865::-;;;;;;:::i;:::-;;:::i;2537:103::-;;;:::i;10575:79::-;10641:5;10575:79;;;-1:-1:-1;;;;;1815:32:1;;;1797:51;;1785:2;1770:18;10575:79:0;1637:217:1;10234:277:0;;;;;;:::i;:::-;;:::i;13218:69::-;;;:::i;1886:87::-;1932:7;1959:6;-1:-1:-1;;;;;1959:6:0;1886:87;;11046:115;;;;;;:::i;:::-;-1:-1:-1;;;;;11129:15:0;11103:7;11129:15;;;:7;:15;;;;;:24;;11046:115;9820:165;;;:::i;:::-;;;2417:14:1;;2410:22;2392:41;;2380:2;2365:18;9820:165:0;2252:187:1;10758:164:0;;;;;;:::i;:::-;;:::i;12760:368::-;;;;;;:::i;:::-;;:::i;2795:201::-;;;;;;:::i;:::-;;:::i;8175:468::-;1932:7;1959:6;-1:-1:-1;;;;;1959:6:0;715:10;2106:23;2098:68;;;;-1:-1:-1;;;2098:68:0;;;;;;;:::i;:::-;;;;;;;;;7184:5:::1;::::0;:10;7176:28:::1;;;;-1:-1:-1::0;;;7176:28:0::1;;;;;;;:::i;:::-;8319:11:::2;::::0;:16;8311:34:::2;;;::::0;-1:-1:-1;;;8311:34:0;;3340:2:1;8311:34:0::2;::::0;::::2;3322:21:1::0;3379:1;3359:18;;;3352:29;-1:-1:-1;;;3397:18:1;;;3390:35;3442:18;;8311:34:0::2;3138:328:1::0;8311:34:0::2;8364::::0;;::::2;8356:52;;;::::0;-1:-1:-1;;;8356:52:0;;3673:2:1;8356:52:0::2;::::0;::::2;3655:21:1::0;3712:1;3692:18;;;3685:29;-1:-1:-1;;;3730:18:1;;;3723:35;3775:18;;8356:52:0::2;3471:328:1::0;8356:52:0::2;8419:13;8452:9:::0;8447:159:::2;8465:20:::0;;::::2;8447:159;;;8523:7;;8531:1;8523:10;;;;;;;:::i;:::-;;;;;;;8515:5;:18;;;;:::i;:::-;8507:26;;8572:22;;;;;;;;8580:1;8572:22;;;;8583:7;;8591:1;8583:10;;;;;;;:::i;:::-;;;;;;;8572:22;;::::0;8548:7:::2;:21;8556:9;;8566:1;8556:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8548:21:0::2;::::0;;::::2;::::0;;::::2;::::0;;;;;;-1:-1:-1;8548:21:0;:46;;;;;::::2;::::0;::::2;::::0;;::::2;::::0;8487:3;::::2;::::0;::::2;:::i;:::-;;;;8447:159;;;-1:-1:-1::0;8616:11:0::2;:19:::0;-1:-1:-1;;;;8175:468:0:o;8789:613::-;8924:7;1959:6;;-1:-1:-1;;;;;1959:6:0;715:10;2106:23;2098:68;;;;-1:-1:-1;;;2098:68:0;;;;;;;:::i;:::-;7184:5:::1;::::0;:10;7176:28:::1;;;;-1:-1:-1::0;;;7176:28:0::1;;;;;;;:::i;:::-;8951:11:::2;::::0;:16;8943:34:::2;;;::::0;-1:-1:-1;;;8943:34:0;;3340:2:1;8943:34:0::2;::::0;::::2;3322:21:1::0;3379:1;3359:18;;;3352:29;-1:-1:-1;;;3397:18:1;;;3390:35;3442:18;;8943:34:0::2;3138:328:1::0;8943:34:0::2;8996::::0;;::::2;8988:52;;;::::0;-1:-1:-1;;;8988:52:0;;3673:2:1;8988:52:0::2;::::0;::::2;3655:21:1::0;3712:1;3692:18;;;3685:29;-1:-1:-1;;;3730:18:1;;;3723:35;3775:18;;8988:52:0::2;3471:328:1::0;8988:52:0::2;9053:13;9086:9:::0;9081:291:::2;9099:20:::0;;::::2;9081:291;;;9157:7;;9165:1;9157:10;;;;;;;:::i;:::-;;;;;;;9149:5;:18;;;;:::i;:::-;9141:26;;9203:1;9190:7;;9198:1;9190:10;;;;;;;:::i;:::-;;;;;;;:14;9182:32;;;::::0;-1:-1:-1;;;9182:32:0;;4543:2:1;9182:32:0::2;::::0;::::2;4525:21:1::0;4582:1;4562:18;;;4555:29;-1:-1:-1;;;4600:18:1;;;4593:35;4645:18;;9182:32:0::2;4341:328:1::0;9182:32:0::2;9234:9;9246:5;:1:::0;9250::::2;9246:5;:::i;:::-;9234:17;;9229:132;9253:20:::0;;::::2;9229:132;;;9323:9;;9333:1;9323:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9307:28:0::2;:9;;9317:1;9307:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9307:28:0::2;;;9299:46;;;::::0;-1:-1:-1;;;9299:46:0;;4876:2:1;9299:46:0::2;::::0;::::2;4858:21:1::0;4915:1;4895:18;;;4888:29;-1:-1:-1;;;4933:18:1;;;4926:35;4978:18;;9299:46:0::2;4674:328:1::0;9299:46:0::2;9275:3:::0;::::2;::::0;::::2;:::i;:::-;;;;9229:132;;;-1:-1:-1::0;9121:3:0;::::2;::::0;::::2;:::i;:::-;;;;9081:291;;;-1:-1:-1::0;9389:5:0;8789:613;-1:-1:-1;;;;;8789:613:0:o;11742:865::-;11805:7;11853:5;;11862:1;11853:10;11849:24;;;-1:-1:-1;11872:1:0;;11742:865;-1:-1:-1;11742:865:0:o;11849:24::-;-1:-1:-1;;;;;11920:15:0;;11884:33;11920:15;;;:7;:15;;;;;;;;11884:51;;;;;;;;;;;;;;;;;;;;;;;;;;:33;11963:54;;11884:51;11963:54;:::i;:::-;11946:71;-1:-1:-1;12032:11:0;12028:25;;-1:-1:-1;12052:1:0;;11742:865;-1:-1:-1;;;11742:865:0:o;12028:25::-;12064:22;12089:25;:23;:25::i;:::-;12064:50;;12146:6;12129:23;;:14;:23;12125:42;;;-1:-1:-1;12161:6:0;11742:865;-1:-1:-1;;;11742:865:0:o;12125:42::-;12178:20;12228:6;12201:33;;:18;:24;;;:33;;;;:::i;:::-;12178:56;;12245:30;12308:12;12278:18;:27;;;:42;;;;:::i;:::-;12245:75;-1:-1:-1;12396:28:0;12427:39;12245:75;12427:14;:39;:::i;:::-;12396:70;;12504:8;12481:31;;:20;:31;12477:45;;;-1:-1:-1;12521:1:0;;11742:865;-1:-1:-1;;;;;;;11742:865:0:o;12477:45::-;12587:12;12541:42;12575:8;12541:42;:31;:42;:20;:31;:::i;:::-;:42;;;;:::i;:::-;12540:59;;;;:::i;:::-;12533:66;11742:865;-1:-1:-1;;;;;;;;11742:865:0:o;2537:103::-;1932:7;1959:6;-1:-1:-1;;;;;1959:6:0;715:10;2106:23;2098:68;;;;-1:-1:-1;;;2098:68:0;;;;;;;:::i;:::-;2602:30:::1;2629:1;2602:18;:30::i;:::-;2537:103::o:0;10234:277::-;7184:5;;:10;7176:28;;;;-1:-1:-1;;;7176:28:0;;;;;;;:::i;:::-;1932:7;1959:6;-1:-1:-1;;;;;1959:6:0;715:10;2106:23:::1;2098:68;;;;-1:-1:-1::0;;;2098:68:0::1;;;;;;;:::i;:::-;10341:1:::2;10324:14;:18;10316:36;;;::::0;-1:-1:-1;;;10316:36:0;;5734:2:1;10316:36:0::2;::::0;::::2;5716:21:1::0;5773:1;5753:18;;;5746:29;-1:-1:-1;;;5791:18:1;;;5784:35;5836:18;;10316:36:0::2;5532:328:1::0;10316:36:0::2;10385:1;10371:11;;:15;10363:33;;;::::0;-1:-1:-1;;;10363:33:0;;6067:2:1;10363:33:0::2;::::0;::::2;6049:21:1::0;6106:1;6086:18;;;6079:29;-1:-1:-1;;;6124:18:1;;;6117:35;6169:18;;10363:33:0::2;5865:328:1::0;10363:33:0::2;10449:11;::::0;10415:30:::2;::::0;-1:-1:-1;;;10415:30:0;;10439:4:::2;10415:30;::::0;::::2;1797:51:1::0;10415:5:0::2;-1:-1:-1::0;;;;;10415:15:0::2;::::0;::::2;::::0;1770:18:1;;10415:30:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;10407:63;;;::::0;-1:-1:-1;;;10407:63:0;;6589:2:1;10407:63:0::2;::::0;::::2;6571:21:1::0;6628:1;6608:18;;;6601:29;-1:-1:-1;;;6646:18:1;;;6639:35;6691:18;;10407:63:0::2;6387:328:1::0;10407:63:0::2;10481:5;:22:::0;10234:277::o;13218:69::-;13257:22;13268:10;13257;:22::i;9820:165::-;9869:4;9894:5;;9903:1;9894:10;9893:33;;;;;9924:1;9910:11;;:15;9893:33;:84;;;;-1:-1:-1;9965:11:0;;9931:30;;-1:-1:-1;;;9931:30:0;;9955:4;9931:30;;;1797:51:1;9931:5:0;-1:-1:-1;;;;;9931:15:0;;;;1770:18:1;;9931:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;9893:84;9886:91;;9820:165;:::o;10758:164::-;10813:7;10890:24;10907:6;10890:16;:24::i;:::-;-1:-1:-1;;;;;10863:15:0;;;;;;:7;:15;;;;;:24;;10839:21;;;;;:48;;10863:24;10839:48;:::i;:::-;:75;;;;:::i;:::-;10832:82;10758:164;-1:-1:-1;;10758:164:0:o;12760:368::-;7275:1;7267:5;;:9;7259:27;;;;-1:-1:-1;;;7259:27:0;;6922:2:1;7259:27:0;;;6904:21:1;6961:1;6941:18;;;6934:29;-1:-1:-1;;;6979:18:1;;;6972:35;7024:18;;7259:27:0;6720:328:1;7259:27:0;12823:23:::1;12849:24;12866:6;12849:16;:24::i;:::-;12823:50;;12910:1;12892:15;:19;12884:28;;;::::0;::::1;;-1:-1:-1::0;;;;;12954:15:0;::::1;;::::0;;;:7:::1;:15;::::0;;;;:24;;12930:21:::1;::::0;;::::1;::::0;12982:15;;12930:48:::1;::::0;::::1;:::i;:::-;:67;;12923:75;;;;:::i;:::-;-1:-1:-1::0;;;;;13009:15:0;::::1;;::::0;;;:7:::1;:15;::::0;;;;:43;;13037:15;;13009;:43:::1;::::0;13037:15;;13009:43:::1;:::i;:::-;::::0;;;-1:-1:-1;;13071:39:0::1;::::0;-1:-1:-1;;;13071:39:0;;-1:-1:-1;;;;;7377:32:1;;;13071:39:0::1;::::0;::::1;7359:51:1::0;7426:18;;;7419:34;;;13071:5:0::1;:14;::::0;::::1;::::0;7332:18:1;;13071:39:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13063:57;;;::::0;-1:-1:-1;;;13063:57:0;;7948:2:1;13063:57:0::1;::::0;::::1;7930:21:1::0;7987:1;7967:18;;;7960:29;-1:-1:-1;;;8005:18:1;;;7998:35;8050:18;;13063:57:0::1;7746:328:1::0;13063:57:0::1;12812:316;12760:368:::0;:::o;2795:201::-;1932:7;1959:6;-1:-1:-1;;;;;1959:6:0;715:10;2106:23;2098:68;;;;-1:-1:-1;;;2098:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2884:22:0;::::1;2876:73;;;::::0;-1:-1:-1;;;2876:73:0;;8281:2:1;2876:73:0::1;::::0;::::1;8263:21:1::0;8320:2;8300:18;;;8293:30;8359:34;8339:18;;;8332:62;-1:-1:-1;;;8410:18:1;;;8403:36;8456:19;;2876:73:0::1;8079:402:1::0;2876:73:0::1;2960:28;2979:8;2960:18;:28::i;:::-;2795:201:::0;:::o;11442:184::-;11562:5;;11499:7;;11297:15;;11557:10;;11553:24;;;11576:1;11569:8;;;11442:184;:::o;11553:24::-;11611:6;11601:5;;11596:2;:10;;;;:::i;:::-;11595:23;;;;:::i;:::-;11588:30;;;11442:184;:::o;3156:191::-;3230:16;3249:6;;-1:-1:-1;;;;;3266:17:0;;;-1:-1:-1;;;;;;3266:17:0;;;;;;3299:40;;3249:6;;;;;;;3299:40;;3230:16;3299:40;3219:128;3156:191;:::o;196:367:1:-;259:8;269:6;323:3;316:4;308:6;304:17;300:27;290:55;;341:1;338;331:12;290:55;-1:-1:-1;364:20:1;;407:18;396:30;;393:50;;;439:1;436;429:12;393:50;476:4;468:6;464:17;452:29;;536:3;529:4;519:6;516:1;512:14;504:6;500:27;496:38;493:47;490:67;;;553:1;550;543:12;490:67;196:367;;;;;:::o;568:773::-;690:6;698;706;714;767:2;755:9;746:7;742:23;738:32;735:52;;;783:1;780;773:12;735:52;823:9;810:23;852:18;893:2;885:6;882:14;879:34;;;909:1;906;899:12;879:34;948:70;1010:7;1001:6;990:9;986:22;948:70;:::i;:::-;1037:8;;-1:-1:-1;922:96:1;-1:-1:-1;1125:2:1;1110:18;;1097:32;;-1:-1:-1;1141:16:1;;;1138:36;;;1170:1;1167;1160:12;1138:36;;1209:72;1273:7;1262:8;1251:9;1247:24;1209:72;:::i;:::-;568:773;;;;-1:-1:-1;1300:8:1;-1:-1:-1;;;;568:773:1:o;1346:286::-;1405:6;1458:2;1446:9;1437:7;1433:23;1429:32;1426:52;;;1474:1;1471;1464:12;1426:52;1500:23;;-1:-1:-1;;;;;1552:31:1;;1542:42;;1532:70;;1598:1;1595;1588:12;1532:70;1621:5;1346:286;-1:-1:-1;;;1346:286:1:o;1859:180::-;1918:6;1971:2;1959:9;1950:7;1946:23;1942:32;1939:52;;;1987:1;1984;1977:12;1939:52;-1:-1:-1;2010:23:1;;1859:180;-1:-1:-1;1859:180:1:o;2444:356::-;2646:2;2628:21;;;2665:18;;;2658:30;2724:34;2719:2;2704:18;;2697:62;2791:2;2776:18;;2444:356::o;2805:328::-;3007:2;2989:21;;;3046:1;3026:18;;;3019:29;-1:-1:-1;;;3079:2:1;3064:18;;3057:35;3124:2;3109:18;;2805:328::o;3804:127::-;3865:10;3860:3;3856:20;3853:1;3846:31;3896:4;3893:1;3886:15;3920:4;3917:1;3910:15;3936:127;3997:10;3992:3;3988:20;3985:1;3978:31;4028:4;4025:1;4018:15;4052:4;4049:1;4042:15;4068:128;4108:3;4139:1;4135:6;4132:1;4129:13;4126:39;;;4145:18;;:::i;:::-;-1:-1:-1;4181:9:1;;4068:128::o;4201:135::-;4240:3;-1:-1:-1;;4261:17:1;;4258:43;;;4281:18;;:::i;:::-;-1:-1:-1;4328:1:1;4317:13;;4201:135::o;5007:125::-;5047:4;5075:1;5072;5069:8;5066:34;;;5080:18;;:::i;:::-;-1:-1:-1;5117:9:1;;5007:125::o;5137:217::-;5177:1;5203;5193:132;;5247:10;5242:3;5238:20;5235:1;5228:31;5282:4;5279:1;5272:15;5310:4;5307:1;5300:15;5193:132;-1:-1:-1;5339:9:1;;5137:217::o;5359:168::-;5399:7;5465:1;5461;5457:6;5453:14;5450:1;5447:21;5442:1;5435:9;5428:17;5424:45;5421:71;;;5472:18;;:::i;:::-;-1:-1:-1;5512:9:1;;5359:168::o;6198:184::-;6268:6;6321:2;6309:9;6300:7;6296:23;6292:32;6289:52;;;6337:1;6334;6327:12;6289:52;-1:-1:-1;6360:16:1;;6198:184;-1:-1:-1;6198:184:1:o;7053:127::-;7114:10;7109:3;7105:20;7102:1;7095:31;7145:4;7142:1;7135:15;7169:4;7166:1;7159:15;7464:277;7531:6;7584:2;7572:9;7563:7;7559:23;7555:32;7552:52;;;7600:1;7597;7590:12;7552:52;7632:9;7626:16;7685:5;7678:13;7671:21;7664:5;7661:32;7651:60;;7707:1;7704;7697:12
Swarm Source
ipfs://791416686733f7488d4e86cec376d9d4f0f0bc523977b1a4f292b2ca6780c277
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.