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 458 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake | 17882505 | 557 days ago | IN | 0 ETH | 0.00090173 | ||||
Unstake | 17436229 | 619 days ago | IN | 0 ETH | 0.00162913 | ||||
Unstake | 17159480 | 658 days ago | IN | 0 ETH | 0.00544875 | ||||
Unstake | 17004575 | 680 days ago | IN | 0 ETH | 0.00153824 | ||||
Unstake | 16818996 | 706 days ago | IN | 0 ETH | 0.00131539 | ||||
Unstake | 16646671 | 731 days ago | IN | 0 ETH | 0.00279621 | ||||
Unstake | 16633535 | 733 days ago | IN | 0 ETH | 0.00150451 | ||||
Unstake | 16569400 | 741 days ago | IN | 0 ETH | 0.00158799 | ||||
Unstake | 16553762 | 744 days ago | IN | 0 ETH | 0.00047562 | ||||
Unstake | 16553755 | 744 days ago | IN | 0 ETH | 0.00129041 | ||||
Unstake | 16423117 | 762 days ago | IN | 0 ETH | 0.00155924 | ||||
Unstake | 16411771 | 764 days ago | IN | 0 ETH | 0.0010279 | ||||
Unstake | 16407871 | 764 days ago | IN | 0 ETH | 0.00194648 | ||||
Unstake | 16396197 | 766 days ago | IN | 0 ETH | 0.00099634 | ||||
Unstake | 16363663 | 770 days ago | IN | 0 ETH | 0.00128811 | ||||
Unstake | 16298779 | 779 days ago | IN | 0 ETH | 0.00138852 | ||||
Unstake | 16297473 | 779 days ago | IN | 0 ETH | 0.0009525 | ||||
Unstake | 16172573 | 797 days ago | IN | 0 ETH | 0.0010183 | ||||
Unstake | 16106439 | 806 days ago | IN | 0 ETH | 0.00078962 | ||||
Unstake | 16094543 | 808 days ago | IN | 0 ETH | 0.00107439 | ||||
Unstake | 16071957 | 811 days ago | IN | 0 ETH | 0.0012729 | ||||
Unstake | 16064664 | 812 days ago | IN | 0 ETH | 0.00072799 | ||||
Unstake | 16045853 | 815 days ago | IN | 0 ETH | 0.00067016 | ||||
Unstake | 16042988 | 815 days ago | IN | 0 ETH | 0.0002712 | ||||
Unstake | 16042988 | 815 days ago | IN | 0 ETH | 0.00068792 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
AIC_Staking
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-06-02 */ // SPDX-License-Identifier: MIT /* ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌ ▐░█▀▀▀▀▀▀▀█░▌ ▀▀▀▀█░█▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░█▄▄▄▄▄▄▄█░▌ ▐░▌ ▐░▌ ▐░░░░░░░░░░░▌ ▐░▌ ▐░▌ ▐░█▀▀▀▀▀▀▀█░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▄▄▄▄█░█▄▄▄▄ ▐░█▄▄▄▄▄▄▄▄▄ ▐░▌ ▐░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ By Devko.dev#7286 */ // OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/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: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.1 (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); } } pragma solidity ^0.8.7; interface IAIC { function transferFrom(address from, address to, uint256 tokenId) external; function ownerOf(uint256 tokenId) external view returns (address owner); function balanceOf(address owner) external view returns (uint256 balance); } contract AIC_Staking is Ownable { using SafeMath for uint256; uint256 public currentSeasonStartTime; IAIC public AIC_Contract = IAIC(0xB78f1A96F6359Ef871f594Acb26900e02bFc8D00); struct token { uint256 stakeDate; address stakerAddress; } mapping(uint256 => token) public stakedTokens; constructor() { currentSeasonStartTime = block.timestamp; } modifier notContract() { require((!_isContract(msg.sender)) && (msg.sender == tx.origin), "Contracts not allowed"); _; } function _isContract(address addr) internal view returns (bool) { uint256 size; assembly { size := extcodesize(addr) } return size > 0; } function stake(uint256[] calldata tokenIds) external notContract { for (uint256 index = 0; index < tokenIds.length; index++) { if (AIC_Contract.ownerOf(tokenIds[index]) == msg.sender) { AIC_Contract.transferFrom( msg.sender, address(this), tokenIds[index] ); stakedTokens[tokenIds[index]].stakeDate = block.timestamp; stakedTokens[tokenIds[index]].stakerAddress = msg.sender; } } } function unstake(uint256[] calldata tokenIds) external notContract { for (uint256 index = 0; index < tokenIds.length; index++) { if (stakedTokens[tokenIds[index]].stakerAddress == msg.sender) { AIC_Contract.transferFrom( address(this), msg.sender, tokenIds[index] ); stakedTokens[tokenIds[index]].stakeDate = 0; stakedTokens[tokenIds[index]].stakerAddress = address(0); } } } function checkStakeTierOfToken(uint256 tokenId) external view returns (uint256 tierId, uint256 stakeDate, uint256 passedTime) { if (stakedTokens[tokenId].stakeDate >= currentSeasonStartTime && stakedTokens[tokenId].stakeDate != 0) { uint256 sPassedTime = block.timestamp - stakedTokens[tokenId].stakeDate; if (stakedTokens[tokenId].stakeDate + 30 days <= block.timestamp) { return (3, stakedTokens[tokenId].stakeDate, sPassedTime); } if (stakedTokens[tokenId].stakeDate + 15 days <= block.timestamp) { return (2, stakedTokens[tokenId].stakeDate, sPassedTime); } if (stakedTokens[tokenId].stakeDate + 5 days <= block.timestamp) { return (1, stakedTokens[tokenId].stakeDate, sPassedTime); } else { return (0, stakedTokens[tokenId].stakeDate, sPassedTime); } } else { if (stakedTokens[tokenId].stakeDate != 0 && block.timestamp > currentSeasonStartTime) { uint256 csPassedTime = block.timestamp - currentSeasonStartTime; if (csPassedTime >= 30 days) { return (3, currentSeasonStartTime, csPassedTime); } if (csPassedTime >= 15 days) { return (2, currentSeasonStartTime, csPassedTime); } if (csPassedTime >= 5 days) { return (1, currentSeasonStartTime, csPassedTime); } else { return (0, currentSeasonStartTime, csPassedTime); } } else { return (0, 0, 0); } } } function tokensOwnedBy(address owner) external view returns (uint256[] memory) { uint256[] memory tokensList = new uint256[](AIC_Contract.balanceOf(owner)); uint256 currentIndex; for (uint256 index = 1; index <= 314; index++) { if (AIC_Contract.ownerOf(index) == owner) { tokensList[currentIndex++] = uint256(index); } } return tokensList; } function tokensStakedBy(address owner) external view returns (bool[] memory) { bool[] memory tokensList = new bool[](314); for (uint256 tokenId = 1; tokenId <= 314; tokenId++) { if (stakedTokens[tokenId].stakerAddress == owner) { tokensList[tokenId - 1] = true; } } return tokensList; } function setNewSeason(uint256 seasonStartTime) external onlyOwner { currentSeasonStartTime = seasonStartTime; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":[],"name":"AIC_Contract","outputs":[{"internalType":"contract IAIC","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"checkStakeTierOfToken","outputs":[{"internalType":"uint256","name":"tierId","type":"uint256"},{"internalType":"uint256","name":"stakeDate","type":"uint256"},{"internalType":"uint256","name":"passedTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentSeasonStartTime","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"seasonStartTime","type":"uint256"}],"name":"setNewSeason","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakedTokens","outputs":[{"internalType":"uint256","name":"stakeDate","type":"uint256"},{"internalType":"address","name":"stakerAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"tokensOwnedBy","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"tokensStakedBy","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600280546001600160a01b03191673b78f1a96f6359ef871f594acb26900e02bfc8d0017905534801561003657600080fd5b5061004033610049565b42600155610099565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610e0f806100a86000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461015e578063a444319a1461016f578063c07885551461018f578063e449f341146101dc578063ea66aeb3146101ef578063f2fde38b1461020f57600080fd5b80630baddbbc146100b95780630fbf0a93146100ce5780631654548f146100e15780631ceea5eb146101115780633f43b1d31461013f578063715018a614610156575b600080fd5b6100cc6100c7366004610c53565b610222565b005b6100cc6100dc366004610bde565b61025a565b6002546100f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61012461011f366004610c53565b610492565b60408051938452602084019290925290820152606001610108565b61014860015481565b604051908152602001610108565b6100cc610664565b6000546001600160a01b03166100f4565b61018261017d366004610b9d565b61069a565b6040516101089190610c85565b6101bf61019d366004610c53565b600360205260009081526040902080546001909101546001600160a01b031682565b604080519283526001600160a01b03909116602083015201610108565b6100cc6101ea366004610bde565b61073c565b6102026101fd366004610b9d565b61090b565b6040516101089190610ccb565b6100cc61021d366004610b9d565b610ab2565b6000546001600160a01b031633146102555760405162461bcd60e51b815260040161024c90610d03565b60405180910390fd5b600155565b333b15801561026857503332145b6102ac5760405162461bcd60e51b815260206004820152601560248201527410dbdb9d1c9858dd1cc81b9bdd08185b1b1bddd959605a1b604482015260640161024c565b60005b8181101561048d5760025433906001600160a01b0316636352211e8585858181106102dc576102dc610d98565b905060200201356040518263ffffffff1660e01b815260040161030191815260200190565b60206040518083038186803b15801561031957600080fd5b505afa15801561032d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103519190610bc1565b6001600160a01b0316141561047b576002546001600160a01b03166323b872dd333086868681811061038557610385610d98565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156103dc57600080fd5b505af11580156103f0573d6000803e3d6000fd5b50505050426003600085858581811061040b5761040b610d98565b90506020020135815260200190815260200160002060000181905550336003600085858581811061043e5761043e610d98565b90506020020135815260200190815260200160002060010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8061048581610d67565b9150506102af565b505050565b600154600082815260036020526040812054909182918291118015906104c5575060008481526003602052604090205415155b156105c0576000848152600360205260408120546104e39042610d50565b60008681526003602052604090205490915042906105049062278d00610d38565b11610527576000858152600360208190526040909120549094509250905061065d565b6000858152600360205260409020544290610545906213c680610d38565b1161056657600085815260036020526040902054600294509250905061065d565b60008581526003602052604090205442906105849062069780610d38565b116105a557600085815260036020526040902054600194509250905061065d565b6000858152600360205260408120549094509250905061065d565b600084815260036020526040902054158015906105de575060015442115b15610653576000600154426105f39190610d50565b905062278d00811061060f57600154600394509250905061065d565b6213c680811061062957600154600294509250905061065d565b62069780811061064357600180549094509250905061065d565b600154600094509250905061065d565b5060009150819050805b9193909250565b6000546001600160a01b0316331461068e5760405162461bcd60e51b815260040161024c90610d03565b6106986000610b4d565b565b6040805161013a808252612760820190925260609160009190602082016127408036833701905050905060015b61013a8111610735576000818152600360205260409020600101546001600160a01b0385811691161415610723576001826107028284610d50565b8151811061071257610712610d98565b911515602092830291909101909101525b8061072d81610d67565b9150506106c7565b5092915050565b333b15801561074a57503332145b61078e5760405162461bcd60e51b815260206004820152601560248201527410dbdb9d1c9858dd1cc81b9bdd08185b1b1bddd959605a1b604482015260640161024c565b60005b8181101561048d5733600360008585858181106107b0576107b0610d98565b60209081029290920135835250810191909152604001600020600101546001600160a01b031614156108f9576002546001600160a01b03166323b872dd303386868681811061080157610801610d98565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b15801561085857600080fd5b505af115801561086c573d6000803e3d6000fd5b5050505060006003600085858581811061088857610888610d98565b905060200201358152602001908152602001600020600001819055506000600360008585858181106108bc576108bc610d98565b90506020020135815260200190815260200160002060010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8061090381610d67565b915050610791565b6002546040516370a0823160e01b81526001600160a01b0383811660048301526060926000929116906370a082319060240160206040518083038186803b15801561095557600080fd5b505afa158015610969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d9190610c6c565b67ffffffffffffffff8111156109a5576109a5610dae565b6040519080825280602002602001820160405280156109ce578160200160208202803683370190505b509050600060015b61013a8111610aa9576002546040516331a9108f60e11b8152600481018390526001600160a01b03878116921690636352211e9060240160206040518083038186803b158015610a2557600080fd5b505afa158015610a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5d9190610bc1565b6001600160a01b03161415610a9757808383610a7881610d67565b945081518110610a8a57610a8a610d98565b6020026020010181815250505b80610aa181610d67565b9150506109d6565b50909392505050565b6000546001600160a01b03163314610adc5760405162461bcd60e51b815260040161024c90610d03565b6001600160a01b038116610b415760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161024c565b610b4a81610b4d565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610baf57600080fd5b8135610bba81610dc4565b9392505050565b600060208284031215610bd357600080fd5b8151610bba81610dc4565b60008060208385031215610bf157600080fd5b823567ffffffffffffffff80821115610c0957600080fd5b818501915085601f830112610c1d57600080fd5b813581811115610c2c57600080fd5b8660208260051b8501011115610c4157600080fd5b60209290920196919550909350505050565b600060208284031215610c6557600080fd5b5035919050565b600060208284031215610c7e57600080fd5b5051919050565b6020808252825182820181905260009190848201906040850190845b81811015610cbf578351151583529284019291840191600101610ca1565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610cbf57835183529284019291840191600101610ce7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610d4b57610d4b610d82565b500190565b600082821015610d6257610d62610d82565b500390565b6000600019821415610d7b57610d7b610d82565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610b4a57600080fdfea26469706673582212207cdabb81ae71f8e2e3f7d94f11c3fb990c83ec6388b1c3e74d7d3f259b1661da64736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80638da5cb5b116100715780638da5cb5b1461015e578063a444319a1461016f578063c07885551461018f578063e449f341146101dc578063ea66aeb3146101ef578063f2fde38b1461020f57600080fd5b80630baddbbc146100b95780630fbf0a93146100ce5780631654548f146100e15780631ceea5eb146101115780633f43b1d31461013f578063715018a614610156575b600080fd5b6100cc6100c7366004610c53565b610222565b005b6100cc6100dc366004610bde565b61025a565b6002546100f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61012461011f366004610c53565b610492565b60408051938452602084019290925290820152606001610108565b61014860015481565b604051908152602001610108565b6100cc610664565b6000546001600160a01b03166100f4565b61018261017d366004610b9d565b61069a565b6040516101089190610c85565b6101bf61019d366004610c53565b600360205260009081526040902080546001909101546001600160a01b031682565b604080519283526001600160a01b03909116602083015201610108565b6100cc6101ea366004610bde565b61073c565b6102026101fd366004610b9d565b61090b565b6040516101089190610ccb565b6100cc61021d366004610b9d565b610ab2565b6000546001600160a01b031633146102555760405162461bcd60e51b815260040161024c90610d03565b60405180910390fd5b600155565b333b15801561026857503332145b6102ac5760405162461bcd60e51b815260206004820152601560248201527410dbdb9d1c9858dd1cc81b9bdd08185b1b1bddd959605a1b604482015260640161024c565b60005b8181101561048d5760025433906001600160a01b0316636352211e8585858181106102dc576102dc610d98565b905060200201356040518263ffffffff1660e01b815260040161030191815260200190565b60206040518083038186803b15801561031957600080fd5b505afa15801561032d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103519190610bc1565b6001600160a01b0316141561047b576002546001600160a01b03166323b872dd333086868681811061038557610385610d98565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156103dc57600080fd5b505af11580156103f0573d6000803e3d6000fd5b50505050426003600085858581811061040b5761040b610d98565b90506020020135815260200190815260200160002060000181905550336003600085858581811061043e5761043e610d98565b90506020020135815260200190815260200160002060010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8061048581610d67565b9150506102af565b505050565b600154600082815260036020526040812054909182918291118015906104c5575060008481526003602052604090205415155b156105c0576000848152600360205260408120546104e39042610d50565b60008681526003602052604090205490915042906105049062278d00610d38565b11610527576000858152600360208190526040909120549094509250905061065d565b6000858152600360205260409020544290610545906213c680610d38565b1161056657600085815260036020526040902054600294509250905061065d565b60008581526003602052604090205442906105849062069780610d38565b116105a557600085815260036020526040902054600194509250905061065d565b6000858152600360205260408120549094509250905061065d565b600084815260036020526040902054158015906105de575060015442115b15610653576000600154426105f39190610d50565b905062278d00811061060f57600154600394509250905061065d565b6213c680811061062957600154600294509250905061065d565b62069780811061064357600180549094509250905061065d565b600154600094509250905061065d565b5060009150819050805b9193909250565b6000546001600160a01b0316331461068e5760405162461bcd60e51b815260040161024c90610d03565b6106986000610b4d565b565b6040805161013a808252612760820190925260609160009190602082016127408036833701905050905060015b61013a8111610735576000818152600360205260409020600101546001600160a01b0385811691161415610723576001826107028284610d50565b8151811061071257610712610d98565b911515602092830291909101909101525b8061072d81610d67565b9150506106c7565b5092915050565b333b15801561074a57503332145b61078e5760405162461bcd60e51b815260206004820152601560248201527410dbdb9d1c9858dd1cc81b9bdd08185b1b1bddd959605a1b604482015260640161024c565b60005b8181101561048d5733600360008585858181106107b0576107b0610d98565b60209081029290920135835250810191909152604001600020600101546001600160a01b031614156108f9576002546001600160a01b03166323b872dd303386868681811061080157610801610d98565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b15801561085857600080fd5b505af115801561086c573d6000803e3d6000fd5b5050505060006003600085858581811061088857610888610d98565b905060200201358152602001908152602001600020600001819055506000600360008585858181106108bc576108bc610d98565b90506020020135815260200190815260200160002060010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8061090381610d67565b915050610791565b6002546040516370a0823160e01b81526001600160a01b0383811660048301526060926000929116906370a082319060240160206040518083038186803b15801561095557600080fd5b505afa158015610969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d9190610c6c565b67ffffffffffffffff8111156109a5576109a5610dae565b6040519080825280602002602001820160405280156109ce578160200160208202803683370190505b509050600060015b61013a8111610aa9576002546040516331a9108f60e11b8152600481018390526001600160a01b03878116921690636352211e9060240160206040518083038186803b158015610a2557600080fd5b505afa158015610a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5d9190610bc1565b6001600160a01b03161415610a9757808383610a7881610d67565b945081518110610a8a57610a8a610d98565b6020026020010181815250505b80610aa181610d67565b9150506109d6565b50909392505050565b6000546001600160a01b03163314610adc5760405162461bcd60e51b815260040161024c90610d03565b6001600160a01b038116610b415760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161024c565b610b4a81610b4d565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610baf57600080fd5b8135610bba81610dc4565b9392505050565b600060208284031215610bd357600080fd5b8151610bba81610dc4565b60008060208385031215610bf157600080fd5b823567ffffffffffffffff80821115610c0957600080fd5b818501915085601f830112610c1d57600080fd5b813581811115610c2c57600080fd5b8660208260051b8501011115610c4157600080fd5b60209290920196919550909350505050565b600060208284031215610c6557600080fd5b5035919050565b600060208284031215610c7e57600080fd5b5051919050565b6020808252825182820181905260009190848201906040850190845b81811015610cbf578351151583529284019291840191600101610ca1565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610cbf57835183529284019291840191600101610ce7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610d4b57610d4b610d82565b500190565b600082821015610d6257610d62610d82565b500390565b6000600019821415610d7b57610d7b610d82565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610b4a57600080fdfea26469706673582212207cdabb81ae71f8e2e3f7d94f11c3fb990c83ec6388b1c3e74d7d3f259b1661da64736f6c63430008070033
Deployed Bytecode Sourcemap
11976:4597:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16445:125;;;;;;:::i;:::-;;:::i;:::-;;12744:561;;;;;;:::i;:::-;;:::i;12092:75::-;;;;;-1:-1:-1;;;;;12092:75:0;;;;;;-1:-1:-1;;;;;1680:32:1;;;1662:51;;1650:2;1635:18;12092:75:0;;;;;;;;13880:1737;;;;;;:::i;:::-;;:::i;:::-;;;;5389:25:1;;;5445:2;5430:18;;5423:34;;;;5473:18;;;5466:34;5377:2;5362:18;13880:1737:0;5187:319:1;12048:37:0;;;;;;;;;4872:25:1;;;4860:2;4845:18;12048:37:0;4726:177:1;10834:103:0;;;:::i;10183:87::-;10229:7;10256:6;-1:-1:-1;;;;;10256:6:0;10183:87;;16067:370;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12261:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12261:45:0;;;;;;;5082:25:1;;;-1:-1:-1;;;;;5143:32:1;;;5138:2;5123:18;;5116:60;5055:18;12261:45:0;4908:274:1;13313:559:0;;;;;;:::i;:::-;;:::i;15625:434::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11092:238::-;;;;;;:::i;:::-;;:::i;16445:125::-;10229:7;10256:6;-1:-1:-1;;;;;10256:6:0;8966:10;10403:23;10395:68;;;;-1:-1:-1;;;10395:68:0;;;;;;;:::i;:::-;;;;;;;;;16522:22:::1;:40:::0;16445:125::o;12744:561::-;12450:10;12675:17;12720:8;;;12436:55;;-1:-1:-1;12467:10:0;12481:9;12467:23;12436:55;12428:89;;;;-1:-1:-1;;;12428:89:0;;4578:2:1;12428:89:0;;;4560:21:1;4617:2;4597:18;;;4590:30;-1:-1:-1;;;4636:18:1;;;4629:51;4697:18;;12428:89:0;4376:345:1;12428:89:0;12825:13:::1;12820:478;12844:23:::0;;::::1;12820:478;;;12897:12;::::0;12938:10:::1;::::0;-1:-1:-1;;;;;12897:12:0::1;:20;12918:8:::0;;12927:5;12918:15;;::::1;;;;;:::i;:::-;;;;;;;12897:37;;;;;;;;;;;;;4872:25:1::0;;4860:2;4845:18;;4726:177;12897:37:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12897:51:0::1;;12893:394;;;12969:12;::::0;-1:-1:-1;;;;;12969:12:0::1;:25;13017:10;13058:4;13086:8:::0;;13095:5;13086:15;;::::1;;;;;:::i;:::-;12969:151;::::0;-1:-1:-1;;;;;;12969:151:0::1;::::0;;;;;;-1:-1:-1;;;;;1982:15:1;;;12969:151:0::1;::::0;::::1;1964:34:1::0;2034:15;;;;2014:18;;;2007:43;-1:-1:-1;13086:15:0::1;::::0;;::::1;;;2066:18:1::0;;;2059:34;1899:18;;12969:151:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13181:15;13139:12;:29;13152:8;;13161:5;13152:15;;;;;;;:::i;:::-;;;;;;;13139:29;;;;;;;;;;;:39;;:57;;;;13261:10;13215:12;:29;13228:8;;13237:5;13228:15;;;;;;;:::i;:::-;;;;;;;13215:29;;;;;;;;;;;:43;;;:56;;;;;-1:-1:-1::0;;;;;13215:56:0::1;;;;;-1:-1:-1::0;;;;;13215:56:0::1;;;;;;12893:394;12869:7:::0;::::1;::::0;::::1;:::i;:::-;;;;12820:478;;;;12744:561:::0;;:::o;13880:1737::-;14056:22;;13951:14;14021:21;;;:12;:21;;;;;:31;13951:14;;;;;;-1:-1:-1;14021:57:0;;;:97;;-1:-1:-1;14082:21:0;;;;:12;:21;;;;;:31;:36;;14021:97;14017:1593;;;14135:19;14175:21;;;:12;:21;;;;;:31;14157:49;;:15;:49;:::i;:::-;14225:21;;;;:12;:21;;;;;:31;14135:71;;-1:-1:-1;14270:15:0;;14225:41;;14259:7;14225:41;:::i;:::-;:60;14221:157;;14317:21;;;;14314:1;14317:21;;;;;;;;:31;14314:1;;-1:-1:-1;14317:31:0;-1:-1:-1;14350:11:0;-1:-1:-1;14306:56:0;;14221:157;14396:21;;;;:12;:21;;;;;:31;14441:15;;14396:41;;14430:7;14396:41;:::i;:::-;:60;14392:157;;14488:21;;;;:12;:21;;;;;:31;14485:1;;-1:-1:-1;14488:31:0;-1:-1:-1;14521:11:0;-1:-1:-1;14477:56:0;;14392:157;14567:21;;;;:12;:21;;;;;:31;14611:15;;14567:40;;14601:6;14567:40;:::i;:::-;:59;14563:253;;14658:21;;;;:12;:21;;;;;:31;14655:1;;-1:-1:-1;14658:31:0;-1:-1:-1;14691:11:0;-1:-1:-1;14647:56:0;;14563:253;14752:1;14755:21;;;:12;:21;;;;;:31;14752:1;;-1:-1:-1;14755:31:0;-1:-1:-1;14788:11:0;-1:-1:-1;14744:56:0;;14017:1593;14852:21;;;;:12;:21;;;;;:31;:36;;;;:80;;;14910:22;;14892:15;:40;14852:80;14848:751;;;14953:20;14994:22;;14976:15;:40;;;;:::i;:::-;14953:63;;15055:7;15039:12;:23;15035:120;;15098:22;;15095:1;;-1:-1:-1;15098:22:0;-1:-1:-1;15122:12:0;-1:-1:-1;15087:48:0;;15035:120;15193:7;15177:12;:23;15173:120;;15236:22;;15233:1;;-1:-1:-1;15236:22:0;-1:-1:-1;15260:12:0;-1:-1:-1;15225:48:0;;15173:120;15331:6;15315:12;:22;15311:216;;15370:1;15373:22;;15370:1;;-1:-1:-1;15373:22:0;-1:-1:-1;15397:12:0;-1:-1:-1;15362:48:0;;15311:216;15470:22;;15467:1;;-1:-1:-1;15470:22:0;-1:-1:-1;15494:12:0;-1:-1:-1;15459:48:0;;14848:751;-1:-1:-1;15575:1:0;;-1:-1:-1;15575:1:0;;-1:-1:-1;15575:1:0;14848:751;13880:1737;;;;;:::o;10834:103::-;10229:7;10256:6;-1:-1:-1;;;;;10256:6:0;8966:10;10403:23;10395:68;;;;-1:-1:-1;;;10395:68:0;;;;;;;:::i;:::-;10899:30:::1;10926:1;10899:18;:30::i;:::-;10834:103::o:0;16067:370::-;16182:15;;;16193:3;16182:15;;;;;;;;;16129:13;;16155:24;;16182:15;;;;;;;;;;;-1:-1:-1;;16155:42:0;-1:-1:-1;16231:1:0;16208:194;16245:3;16234:7;:14;16208:194;;16280:21;;;;:12;:21;;;;;:35;;;-1:-1:-1;;;;;16280:44:0;;;:35;;:44;16276:115;;;16371:4;16345:10;16356:11;16371:4;16356:7;:11;:::i;:::-;16345:23;;;;;;;;:::i;:::-;:30;;;:23;;;;;;;;;;;:30;16276:115;16250:9;;;;:::i;:::-;;;;16208:194;;;-1:-1:-1;16419:10:0;16067:370;-1:-1:-1;;16067:370:0:o;13313:559::-;12450:10;12675:17;12720:8;;;12436:55;;-1:-1:-1;12467:10:0;12481:9;12467:23;12436:55;12428:89;;;;-1:-1:-1;;;12428:89:0;;4578:2:1;12428:89:0;;;4560:21:1;4617:2;4597:18;;;4590:30;-1:-1:-1;;;4636:18:1;;;4629:51;4697:18;;12428:89:0;4376:345:1;12428:89:0;13396:13:::1;13391:474;13415:23:::0;;::::1;13391:474;;;13515:10;13468:12;:29;13481:8:::0;;13490:5;13481:15;;::::1;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;13468:29:::0;;-1:-1:-1;13468:29:0;::::1;::::0;;;;;;-1:-1:-1;13468:29:0;:43:::1;;::::0;-1:-1:-1;;;;;13468:43:0::1;:57;13464:390;;;13550:12;::::0;-1:-1:-1;;;;;13550:12:0::1;:25;13606:4;13634:10;13667:8:::0;;13676:5;13667:15;;::::1;;;;;:::i;:::-;13550:151;::::0;-1:-1:-1;;;;;;13550:151:0::1;::::0;;;;;;-1:-1:-1;;;;;1982:15:1;;;13550:151:0::1;::::0;::::1;1964:34:1::0;2034:15;;;;2014:18;;;2007:43;-1:-1:-1;13667:15:0::1;::::0;;::::1;;;2066:18:1::0;;;2059:34;1899:18;;13550:151:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13762:1;13720:12;:29;13733:8;;13742:5;13733:15;;;;;;;:::i;:::-;;;;;;;13720:29;;;;;;;;;;;:39;;:43;;;;13836:1;13782:12;:29;13795:8;;13804:5;13795:15;;;;;;;:::i;:::-;;;;;;;13782:29;;;;;;;;;;;:43;;;:56;;;;;-1:-1:-1::0;;;;;13782:56:0::1;;;;;-1:-1:-1::0;;;;;13782:56:0::1;;;;;;13464:390;13440:7:::0;::::1;::::0;::::1;:::i;:::-;;;;13391:474;;15625:434:::0;15759:12;;:29;;-1:-1:-1;;;15759:29:0;;-1:-1:-1;;;;;1680:32:1;;;15759:29:0;;;1662:51:1;15686:16:0;;15715:27;;15759:12;;;:22;;1635:18:1;;15759:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15745:44;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15745:44:0;-1:-1:-1;15715:74:0;-1:-1:-1;15800:20:0;15852:1;15831:193;15864:3;15855:5;:12;15831:193;;15897:12;;:27;;-1:-1:-1;;;15897:27:0;;;;;4872:25:1;;;-1:-1:-1;;;;;15897:36:0;;;;:12;;:20;;4845:18:1;;15897:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15897:36:0;;15893:120;;;15991:5;15954:10;15965:14;;;;:::i;:::-;;;15954:26;;;;;;;;:::i;:::-;;;;;;:43;;;;;15893:120;15869:7;;;;:::i;:::-;;;;15831:193;;;-1:-1:-1;16041:10:0;;15625:434;-1:-1:-1;;;15625:434:0:o;11092:238::-;10229:7;10256:6;-1:-1:-1;;;;;10256:6:0;8966:10;10403:23;10395:68;;;;-1:-1:-1;;;10395:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11195:22:0;::::1;11173:110;;;::::0;-1:-1:-1;;;11173:110:0;;3810:2:1;11173:110:0::1;::::0;::::1;3792:21:1::0;3849:2;3829:18;;;3822:30;3888:34;3868:18;;;3861:62;-1:-1:-1;;;3939:18:1;;;3932:36;3985:19;;11173:110:0::1;3608:402:1::0;11173:110:0::1;11294:28;11313:8;11294:18;:28::i;:::-;11092:238:::0;:::o;11490:191::-;11564:16;11583:6;;-1:-1:-1;;;;;11600:17:0;;;-1:-1:-1;;;;;;11600:17:0;;;;;;11633:40;;11583:6;;;;;;;11633:40;;11564:16;11633:40;11553:128;11490:191;:::o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;:::-;250:5;14:247;-1:-1:-1;;;14:247:1:o;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;522:615::-;608:6;616;669:2;657:9;648:7;644:23;640:32;637:52;;;685:1;682;675:12;637:52;725:9;712:23;754:18;795:2;787:6;784:14;781:34;;;811:1;808;801:12;781:34;849:6;838:9;834:22;824:32;;894:7;887:4;883:2;879:13;875:27;865:55;;916:1;913;906:12;865:55;956:2;943:16;982:2;974:6;971:14;968:34;;;998:1;995;988:12;968:34;1051:7;1046:2;1036:6;1033:1;1029:14;1025:2;1021:23;1017:32;1014:45;1011:65;;;1072:1;1069;1062:12;1011:65;1103:2;1095:11;;;;;1125:6;;-1:-1:-1;522:615:1;;-1:-1:-1;;;;522:615:1:o;1142:180::-;1201:6;1254:2;1242:9;1233:7;1229:23;1225:32;1222:52;;;1270:1;1267;1260:12;1222:52;-1:-1:-1;1293:23:1;;1142:180;-1:-1:-1;1142:180:1:o;1327:184::-;1397:6;1450:2;1438:9;1429:7;1425:23;1421:32;1418:52;;;1466:1;1463;1456:12;1418:52;-1:-1:-1;1489:16:1;;1327:184;-1:-1:-1;1327:184:1:o;2104:642::-;2269:2;2321:21;;;2391:13;;2294:18;;;2413:22;;;2240:4;;2269:2;2492:15;;;;2466:2;2451:18;;;2240:4;2535:185;2549:6;2546:1;2543:13;2535:185;;;2624:13;;2617:21;2610:29;2598:42;;2695:15;;;;2660:12;;;;2571:1;2564:9;2535:185;;;-1:-1:-1;2737:3:1;;2104:642;-1:-1:-1;;;;;;2104:642:1:o;2751:632::-;2922:2;2974:21;;;3044:13;;2947:18;;;3066:22;;;2893:4;;2922:2;3145:15;;;;3119:2;3104:18;;;2893:4;3188:169;3202:6;3199:1;3196:13;3188:169;;;3263:13;;3251:26;;3332:15;;;;3297:12;;;;3224:1;3217:9;3188:169;;4015:356;4217:2;4199:21;;;4236:18;;;4229:30;4295:34;4290:2;4275:18;;4268:62;4362:2;4347:18;;4015:356::o;5511:128::-;5551:3;5582:1;5578:6;5575:1;5572:13;5569:39;;;5588:18;;:::i;:::-;-1:-1:-1;5624:9:1;;5511:128::o;5644:125::-;5684:4;5712:1;5709;5706:8;5703:34;;;5717:18;;:::i;:::-;-1:-1:-1;5754:9:1;;5644:125::o;5774:135::-;5813:3;-1:-1:-1;;5834:17:1;;5831:43;;;5854:18;;:::i;:::-;-1:-1:-1;5901:1:1;5890:13;;5774:135::o;5914:127::-;5975:10;5970:3;5966:20;5963:1;5956:31;6006:4;6003:1;5996:15;6030:4;6027:1;6020:15;6046:127;6107:10;6102:3;6098:20;6095:1;6088:31;6138:4;6135:1;6128:15;6162:4;6159:1;6152:15;6178:127;6239:10;6234:3;6230:20;6227:1;6220:31;6270:4;6267:1;6260:15;6294:4;6291:1;6284:15;6310:131;-1:-1:-1;;;;;6385:31:1;;6375:42;;6365:70;;6431:1;6428;6421:12
Swarm Source
ipfs://7cdabb81ae71f8e2e3f7d94f11c3fb990c83ec6388b1c3e74d7d3f259b1661da
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.