More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 128 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake | 19739128 | 280 days ago | IN | 0 ETH | 0.00646561 | ||||
Unstake | 19554136 | 306 days ago | IN | 0 ETH | 0.00953848 | ||||
Unstake | 19517237 | 311 days ago | IN | 0 ETH | 0.00600137 | ||||
Unstake | 19506813 | 312 days ago | IN | 0 ETH | 0.00770957 | ||||
Unstake | 19500955 | 313 days ago | IN | 0 ETH | 0.00186022 | ||||
Unstake | 19497571 | 314 days ago | IN | 0 ETH | 0.00535951 | ||||
Unstake | 19486071 | 315 days ago | IN | 0 ETH | 0.00773024 | ||||
Unstake | 19477295 | 317 days ago | IN | 0 ETH | 0.00780996 | ||||
Unstake | 19470277 | 318 days ago | IN | 0 ETH | 0.00289258 | ||||
Unstake | 19465397 | 318 days ago | IN | 0 ETH | 0.00075642 | ||||
Unstake | 19465391 | 318 days ago | IN | 0 ETH | 0.00071143 | ||||
Unstake | 19463169 | 319 days ago | IN | 0 ETH | 0.00493178 | ||||
Unstake | 19457375 | 319 days ago | IN | 0 ETH | 0.00077289 | ||||
Unstake | 19457373 | 319 days ago | IN | 0 ETH | 0.00222621 | ||||
Unstake | 19451067 | 320 days ago | IN | 0 ETH | 0.01153042 | ||||
Unstake | 19438052 | 322 days ago | IN | 0 ETH | 0.00302336 | ||||
Unstake | 19432579 | 323 days ago | IN | 0 ETH | 0.00392429 | ||||
Unstake | 19424424 | 324 days ago | IN | 0 ETH | 0.01883904 | ||||
Unstake | 19419113 | 325 days ago | IN | 0 ETH | 0.0069946 | ||||
Unstake | 19418978 | 325 days ago | IN | 0 ETH | 0.00939963 | ||||
Unstake | 19418283 | 325 days ago | IN | 0 ETH | 0.00602222 | ||||
Unstake | 19418116 | 325 days ago | IN | 0 ETH | 0.00366365 | ||||
Unstake | 19418067 | 325 days ago | IN | 0 ETH | 0.00108024 | ||||
Unstake | 19417439 | 325 days ago | IN | 0 ETH | 0.00642541 | ||||
Unstake | 19416020 | 325 days ago | IN | 0 ETH | 0.00527281 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
DigitsPadStaking
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-05 */ // SPDX-License-Identifier: GPL-3.0 // File: @openzeppelin/contracts/utils/Strings.sol /// @title DigitsPad Staking /// @author André Costa @ DigitsBrands // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.0 (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.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: raribots.sol // File: @openzeppelin/contracts/utils/Strings.sol pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; function transferToStakingPool( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } contract DigitsPadStaking is Ownable { struct StakeInfo { uint[] tokens; //list of all the tokens that are staked] uint256 endTime; //unix timestamp of end of staking } //get information for each token mapping(address => StakeInfo) private addressToStaked; //see if a token is staked or not mapping(uint => bool) private stakedTokens; IERC721 public DigitsPad; constructor() { DigitsPad = IERC721(0xC1d549d1C7862358FcaB90B2D8F71C55E2D2c866); } //set ERC721Enumerable function setDigitsPad(address newInterface) public onlyOwner { DigitsPad = IERC721(newInterface); } //stake specific tokenIds and for specific timeperiods function stake(uint[] calldata tokenIds) external { for (uint i = 0; i < tokenIds.length; i++) { require(msg.sender == DigitsPad.ownerOf(tokenIds[i]), "Sender must be owner"); require(!stakedTokens[tokenIds[i]], "Token is already Staked!"); //require(address(this) == DigitsPad.getApproved(tokenIds[i])); _deposit(tokenIds[i]); } addressToStaked[msg.sender].endTime = block.timestamp + 365 days; } function _deposit(uint tokenId) internal { addressToStaked[msg.sender].tokens.push(tokenId); //set the info for the stake stakedTokens[tokenId] = true; //transfer NFT to contract DigitsPad.transferFrom(msg.sender, address(this), tokenId); } //unstake all nfts somebody has function unstake() public { require(block.timestamp >= addressToStaked[msg.sender].endTime, "Staking Period is not over yet!"); _unstake(msg.sender); } //emergency unstake nft for a set of addresses function emergencyUnstake(address[] calldata unstakers) external onlyOwner { for (uint i; i < unstakers.length; i++) { _unstake(unstakers[i]); } } function _unstake(address unstaker) internal { for (uint i; i < addressToStaked[unstaker].tokens.length; i++) { stakedTokens[addressToStaked[unstaker].tokens[i]] = false; DigitsPad.transferFrom(address(this), msg.sender, addressToStaked[unstaker].tokens[i]); } addressToStaked[unstaker].endTime = 0; delete addressToStaked[unstaker].tokens; } //get the info for a staked token function getStakedInfo(address staker) external view returns(StakeInfo memory) { return addressToStaked[staker]; } //Returns if the `tokenId` has been staked and therefore blocking transfers. function isStaked(uint tokenId) public view returns (bool) { return stakedTokens[tokenId]; } }
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":"DigitsPad","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"unstakers","type":"address[]"}],"name":"emergencyUnstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"getStakedInfo","outputs":[{"components":[{"internalType":"uint256[]","name":"tokens","type":"uint256[]"},{"internalType":"uint256","name":"endTime","type":"uint256"}],"internalType":"struct DigitsPadStaking.StakeInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"isStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"address","name":"newInterface","type":"address"}],"name":"setDigitsPad","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061002d61002261008760201b60201c565b61008f60201b60201c565b73c1d549d1c7862358fcab90b2d8f71c55e2d2c866600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610153565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611612806101626000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a6146101335780638da5cb5b1461013d578063baa51f861461015b578063e0c04b3e1461018b578063f2fde38b146101a75761009e565b80630fbf0a93146100a357806317c8221f146100bf5780632def6620146100dd5780632ec21993146100e7578063434dcc1714610103575b600080fd5b6100bd60048036038101906100b89190610e14565b6101c3565b005b6100c761040c565b6040516100d49190610ee0565b60405180910390f35b6100e5610432565b005b61010160048036038101906100fc9190610f39565b6104c2565b005b61011d60048036038101906101189190610f39565b610582565b60405161012a919061106b565b60405180910390f35b61013b61063d565b005b6101456106c5565b604051610152919061109c565b60405180910390f35b610175600480360381019061017091906110e3565b6106ee565b604051610182919061112b565b60405180910390f35b6101a560048036038101906101a0919061119c565b610718565b005b6101c160048036038101906101bc9190610f39565b6107ea565b005b60005b828290508110156103b157600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e848484818110610222576102216111e9565b5b905060200201356040518263ffffffff1660e01b81526004016102459190611227565b60206040518083038186803b15801561025d57600080fd5b505afa158015610271573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102959190611257565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f9906112e1565b60405180910390fd5b60026000848484818110610319576103186111e9565b5b90506020020135815260200190815260200160002060009054906101000a900460ff161561037c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103739061134d565b60405180910390fd5b61039e838383818110610392576103916111e9565b5b905060200201356108e2565b80806103a99061139c565b9150506101c6565b506301e13380426103c291906113e5565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101544210156104b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ae90611487565b60405180910390fd5b6104c033610a0b565b565b6104ca610c81565b73ffffffffffffffffffffffffffffffffffffffff166104e86106c5565b73ffffffffffffffffffffffffffffffffffffffff161461053e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610535906114f3565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61058a610d4d565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561062357602002820191906000526020600020905b81548152602001906001019080831161060f575b505050505081526020016001820154815250509050919050565b610645610c81565b73ffffffffffffffffffffffffffffffffffffffff166106636106c5565b73ffffffffffffffffffffffffffffffffffffffff16146106b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b0906114f3565b60405180910390fd5b6106c36000610c89565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006002600083815260200190815260200160002060009054906101000a900460ff169050919050565b610720610c81565b73ffffffffffffffffffffffffffffffffffffffff1661073e6106c5565b73ffffffffffffffffffffffffffffffffffffffff1614610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078b906114f3565b60405180910390fd5b60005b828290508110156107e5576107d28383838181106107b8576107b76111e9565b5b90506020020160208101906107cd9190610f39565b610a0b565b80806107dd9061139c565b915050610797565b505050565b6107f2610c81565b73ffffffffffffffffffffffffffffffffffffffff166108106106c5565b73ffffffffffffffffffffffffffffffffffffffff1614610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d906114f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90611585565b60405180910390fd5b6108df81610c89565b50565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181908060018154018082558091505060019003906000526020600020016000909190919091505560016002600083815260200190815260200160002060006101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016109d6939291906115a5565b600060405180830381600087803b1580156109f057600080fd5b505af1158015610a04573d6000803e3d6000fd5b5050505050565b60005b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610be757600060026000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110610ab557610ab46111e9565b5b9060005260206000200154815260200190815260200160002060006101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3033600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018581548110610b7957610b786111e9565b5b90600052602060002001546040518463ffffffff1660e01b8152600401610ba2939291906115a5565b600060405180830381600087803b158015610bbc57600080fd5b505af1158015610bd0573d6000803e3d6000fd5b505050508080610bdf9061139c565b915050610a0e565b506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000610c7e9190610d67565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b604051806040016040528060608152602001600081525090565b5080546000825590600052602060002090810190610d859190610d88565b50565b5b80821115610da1576000816000905550600101610d89565b5090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610dd457610dd3610daf565b5b8235905067ffffffffffffffff811115610df157610df0610db4565b5b602083019150836020820283011115610e0d57610e0c610db9565b5b9250929050565b60008060208385031215610e2b57610e2a610da5565b5b600083013567ffffffffffffffff811115610e4957610e48610daa565b5b610e5585828601610dbe565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610ea6610ea1610e9c84610e61565b610e81565b610e61565b9050919050565b6000610eb882610e8b565b9050919050565b6000610eca82610ead565b9050919050565b610eda81610ebf565b82525050565b6000602082019050610ef56000830184610ed1565b92915050565b6000610f0682610e61565b9050919050565b610f1681610efb565b8114610f2157600080fd5b50565b600081359050610f3381610f0d565b92915050565b600060208284031215610f4f57610f4e610da5565b5b6000610f5d84828501610f24565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b610fa581610f92565b82525050565b6000610fb78383610f9c565b60208301905092915050565b6000602082019050919050565b6000610fdb82610f66565b610fe58185610f71565b9350610ff083610f82565b8060005b838110156110215781516110088882610fab565b975061101383610fc3565b925050600181019050610ff4565b5085935050505092915050565b6000604083016000830151848203600086015261104b8282610fd0565b91505060208301516110606020860182610f9c565b508091505092915050565b60006020820190508181036000830152611085818461102e565b905092915050565b61109681610efb565b82525050565b60006020820190506110b1600083018461108d565b92915050565b6110c081610f92565b81146110cb57600080fd5b50565b6000813590506110dd816110b7565b92915050565b6000602082840312156110f9576110f8610da5565b5b6000611107848285016110ce565b91505092915050565b60008115159050919050565b61112581611110565b82525050565b6000602082019050611140600083018461111c565b92915050565b60008083601f84011261115c5761115b610daf565b5b8235905067ffffffffffffffff81111561117957611178610db4565b5b60208301915083602082028301111561119557611194610db9565b5b9250929050565b600080602083850312156111b3576111b2610da5565b5b600083013567ffffffffffffffff8111156111d1576111d0610daa565b5b6111dd85828601611146565b92509250509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b61122181610f92565b82525050565b600060208201905061123c6000830184611218565b92915050565b60008151905061125181610f0d565b92915050565b60006020828403121561126d5761126c610da5565b5b600061127b84828501611242565b91505092915050565b600082825260208201905092915050565b7f53656e646572206d757374206265206f776e6572000000000000000000000000600082015250565b60006112cb601483611284565b91506112d682611295565b602082019050919050565b600060208201905081810360008301526112fa816112be565b9050919050565b7f546f6b656e20697320616c7265616479205374616b6564210000000000000000600082015250565b6000611337601883611284565b915061134282611301565b602082019050919050565b600060208201905081810360008301526113668161132a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113a782610f92565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156113da576113d961136d565b5b600182019050919050565b60006113f082610f92565b91506113fb83610f92565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114305761142f61136d565b5b828201905092915050565b7f5374616b696e6720506572696f64206973206e6f74206f766572207965742100600082015250565b6000611471601f83611284565b915061147c8261143b565b602082019050919050565b600060208201905081810360008301526114a081611464565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006114dd602083611284565b91506114e8826114a7565b602082019050919050565b6000602082019050818103600083015261150c816114d0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061156f602683611284565b915061157a82611513565b604082019050919050565b6000602082019050818103600083015261159e81611562565b9050919050565b60006060820190506115ba600083018661108d565b6115c7602083018561108d565b6115d46040830184611218565b94935050505056fea26469706673582212206bdb77ed1ecec1e0886efe2778abe0d885ea0adab416c4013e3a4ca7a36af3d964736f6c63430008090033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a6146101335780638da5cb5b1461013d578063baa51f861461015b578063e0c04b3e1461018b578063f2fde38b146101a75761009e565b80630fbf0a93146100a357806317c8221f146100bf5780632def6620146100dd5780632ec21993146100e7578063434dcc1714610103575b600080fd5b6100bd60048036038101906100b89190610e14565b6101c3565b005b6100c761040c565b6040516100d49190610ee0565b60405180910390f35b6100e5610432565b005b61010160048036038101906100fc9190610f39565b6104c2565b005b61011d60048036038101906101189190610f39565b610582565b60405161012a919061106b565b60405180910390f35b61013b61063d565b005b6101456106c5565b604051610152919061109c565b60405180910390f35b610175600480360381019061017091906110e3565b6106ee565b604051610182919061112b565b60405180910390f35b6101a560048036038101906101a0919061119c565b610718565b005b6101c160048036038101906101bc9190610f39565b6107ea565b005b60005b828290508110156103b157600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e848484818110610222576102216111e9565b5b905060200201356040518263ffffffff1660e01b81526004016102459190611227565b60206040518083038186803b15801561025d57600080fd5b505afa158015610271573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102959190611257565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f9906112e1565b60405180910390fd5b60026000848484818110610319576103186111e9565b5b90506020020135815260200190815260200160002060009054906101000a900460ff161561037c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103739061134d565b60405180910390fd5b61039e838383818110610392576103916111e9565b5b905060200201356108e2565b80806103a99061139c565b9150506101c6565b506301e13380426103c291906113e5565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101544210156104b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ae90611487565b60405180910390fd5b6104c033610a0b565b565b6104ca610c81565b73ffffffffffffffffffffffffffffffffffffffff166104e86106c5565b73ffffffffffffffffffffffffffffffffffffffff161461053e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610535906114f3565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61058a610d4d565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561062357602002820191906000526020600020905b81548152602001906001019080831161060f575b505050505081526020016001820154815250509050919050565b610645610c81565b73ffffffffffffffffffffffffffffffffffffffff166106636106c5565b73ffffffffffffffffffffffffffffffffffffffff16146106b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b0906114f3565b60405180910390fd5b6106c36000610c89565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006002600083815260200190815260200160002060009054906101000a900460ff169050919050565b610720610c81565b73ffffffffffffffffffffffffffffffffffffffff1661073e6106c5565b73ffffffffffffffffffffffffffffffffffffffff1614610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078b906114f3565b60405180910390fd5b60005b828290508110156107e5576107d28383838181106107b8576107b76111e9565b5b90506020020160208101906107cd9190610f39565b610a0b565b80806107dd9061139c565b915050610797565b505050565b6107f2610c81565b73ffffffffffffffffffffffffffffffffffffffff166108106106c5565b73ffffffffffffffffffffffffffffffffffffffff1614610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d906114f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90611585565b60405180910390fd5b6108df81610c89565b50565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181908060018154018082558091505060019003906000526020600020016000909190919091505560016002600083815260200190815260200160002060006101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016109d6939291906115a5565b600060405180830381600087803b1580156109f057600080fd5b505af1158015610a04573d6000803e3d6000fd5b5050505050565b60005b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610be757600060026000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110610ab557610ab46111e9565b5b9060005260206000200154815260200190815260200160002060006101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3033600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018581548110610b7957610b786111e9565b5b90600052602060002001546040518463ffffffff1660e01b8152600401610ba2939291906115a5565b600060405180830381600087803b158015610bbc57600080fd5b505af1158015610bd0573d6000803e3d6000fd5b505050508080610bdf9061139c565b915050610a0e565b506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000610c7e9190610d67565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b604051806040016040528060608152602001600081525090565b5080546000825590600052602060002090810190610d859190610d88565b50565b5b80821115610da1576000816000905550600101610d89565b5090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610dd457610dd3610daf565b5b8235905067ffffffffffffffff811115610df157610df0610db4565b5b602083019150836020820283011115610e0d57610e0c610db9565b5b9250929050565b60008060208385031215610e2b57610e2a610da5565b5b600083013567ffffffffffffffff811115610e4957610e48610daa565b5b610e5585828601610dbe565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610ea6610ea1610e9c84610e61565b610e81565b610e61565b9050919050565b6000610eb882610e8b565b9050919050565b6000610eca82610ead565b9050919050565b610eda81610ebf565b82525050565b6000602082019050610ef56000830184610ed1565b92915050565b6000610f0682610e61565b9050919050565b610f1681610efb565b8114610f2157600080fd5b50565b600081359050610f3381610f0d565b92915050565b600060208284031215610f4f57610f4e610da5565b5b6000610f5d84828501610f24565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b610fa581610f92565b82525050565b6000610fb78383610f9c565b60208301905092915050565b6000602082019050919050565b6000610fdb82610f66565b610fe58185610f71565b9350610ff083610f82565b8060005b838110156110215781516110088882610fab565b975061101383610fc3565b925050600181019050610ff4565b5085935050505092915050565b6000604083016000830151848203600086015261104b8282610fd0565b91505060208301516110606020860182610f9c565b508091505092915050565b60006020820190508181036000830152611085818461102e565b905092915050565b61109681610efb565b82525050565b60006020820190506110b1600083018461108d565b92915050565b6110c081610f92565b81146110cb57600080fd5b50565b6000813590506110dd816110b7565b92915050565b6000602082840312156110f9576110f8610da5565b5b6000611107848285016110ce565b91505092915050565b60008115159050919050565b61112581611110565b82525050565b6000602082019050611140600083018461111c565b92915050565b60008083601f84011261115c5761115b610daf565b5b8235905067ffffffffffffffff81111561117957611178610db4565b5b60208301915083602082028301111561119557611194610db9565b5b9250929050565b600080602083850312156111b3576111b2610da5565b5b600083013567ffffffffffffffff8111156111d1576111d0610daa565b5b6111dd85828601611146565b92509250509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b61122181610f92565b82525050565b600060208201905061123c6000830184611218565b92915050565b60008151905061125181610f0d565b92915050565b60006020828403121561126d5761126c610da5565b5b600061127b84828501611242565b91505092915050565b600082825260208201905092915050565b7f53656e646572206d757374206265206f776e6572000000000000000000000000600082015250565b60006112cb601483611284565b91506112d682611295565b602082019050919050565b600060208201905081810360008301526112fa816112be565b9050919050565b7f546f6b656e20697320616c7265616479205374616b6564210000000000000000600082015250565b6000611337601883611284565b915061134282611301565b602082019050919050565b600060208201905081810360008301526113668161132a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113a782610f92565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156113da576113d961136d565b5b600182019050919050565b60006113f082610f92565b91506113fb83610f92565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114305761142f61136d565b5b828201905092915050565b7f5374616b696e6720506572696f64206973206e6f74206f766572207965742100600082015250565b6000611471601f83611284565b915061147c8261143b565b602082019050919050565b600060208201905081810360008301526114a081611464565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006114dd602083611284565b91506114e8826114a7565b602082019050919050565b6000602082019050818103600083015261150c816114d0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061156f602683611284565b915061157a82611513565b604082019050919050565b6000602082019050818103600083015261159e81611562565b9050919050565b60006060820190506115ba600083018661108d565b6115c7602083018561108d565b6115d46040830184611218565b94935050505056fea26469706673582212206bdb77ed1ecec1e0886efe2778abe0d885ea0adab416c4013e3a4ca7a36af3d964736f6c63430008090033
Deployed Bytecode Sourcemap
9291:2826:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10041:507;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9695:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10893:184;;;:::i;:::-;;9860:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11786:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2770:103;;;:::i;:::-;;2119:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12008:106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11137:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3028:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10041:507;10109:6;10104:352;10125:8;;:15;;10121:1;:19;10104:352;;;10184:9;;;;;;;;;;;:17;;;10202:8;;10211:1;10202:11;;;;;;;:::i;:::-;;;;;;;;10184:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10170:44;;:10;:44;;;10162:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;10263:12;:25;10276:8;;10285:1;10276:11;;;;;;;:::i;:::-;;;;;;;;10263:25;;;;;;;;;;;;;;;;;;;;;10262:26;10254:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10423:21;10432:8;;10441:1;10432:11;;;;;;;:::i;:::-;;;;;;;;10423:8;:21::i;:::-;10142:3;;;;;:::i;:::-;;;;10104:352;;;;10522:8;10504:15;:26;;;;:::i;:::-;10466:15;:27;10482:10;10466:27;;;;;;;;;;;;;;;:35;;:64;;;;10041:507;;:::o;9695:24::-;;;;;;;;;;;;;:::o;10893:184::-;10957:15;:27;10973:10;10957:27;;;;;;;;;;;;;;;:35;;;10938:15;:54;;10930:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;11039:20;11048:10;11039:8;:20::i;:::-;10893:184::o;9860:113::-;2350:12;:10;:12::i;:::-;2339:23;;:7;:5;:7::i;:::-;:23;;;2331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9952:12:::1;9932:9;;:33;;;;;;;;;;;;;;;;;;9860:113:::0;:::o;11786:128::-;11847:16;;:::i;:::-;11883:15;:23;11899:6;11883:23;;;;;;;;;;;;;;;11876:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11786:128;;;:::o;2770:103::-;2350:12;:10;:12::i;:::-;2339:23;;:7;:5;:7::i;:::-;:23;;;2331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2835:30:::1;2862:1;2835:18;:30::i;:::-;2770:103::o:0;2119:87::-;2165:7;2192:6;;;;;;;;;;;2185:13;;2119:87;:::o;12008:106::-;12061:4;12085:12;:21;12098:7;12085:21;;;;;;;;;;;;;;;;;;;;;12078:28;;12008:106;;;:::o;11137:182::-;2350:12;:10;:12::i;:::-;2339:23;;:7;:5;:7::i;:::-;:23;;;2331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11228:6:::1;11223:89;11240:9;;:16;;11236:1;:20;11223:89;;;11278:22;11287:9;;11297:1;11287:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11278:8;:22::i;:::-;11258:3;;;;;:::i;:::-;;;;11223:89;;;;11137:182:::0;;:::o;3028:201::-;2350:12;:10;:12::i;:::-;2339:23;;:7;:5;:7::i;:::-;:23;;;2331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3137:1:::1;3117:22;;:8;:22;;;;3109:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3193:28;3212:8;3193:18;:28::i;:::-;3028:201:::0;:::o;10556:292::-;10608:15;:27;10624:10;10608:27;;;;;;;;;;;;;;;:34;;10648:7;10608:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10729:4;10705:12;:21;10718:7;10705:21;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10782:9;;;;;;;;;;;:22;;;10805:10;10825:4;10832:7;10782:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10556:292;:::o;11327:412::-;11388:6;11383:248;11400:15;:25;11416:8;11400:25;;;;;;;;;;;;;;;:32;;:39;;;;11396:1;:43;11383:248;;;11513:5;11461:12;:49;11474:15;:25;11490:8;11474:25;;;;;;;;;;;;;;;:32;;11507:1;11474:35;;;;;;;;:::i;:::-;;;;;;;;;;11461:49;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;11533:9;;;;;;;;;;;:22;;;11564:4;11571:10;11583:15;:25;11599:8;11583:25;;;;;;;;;;;;;;;:32;;11616:1;11583:35;;;;;;;;:::i;:::-;;;;;;;;;;11533:86;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11441:3;;;;;:::i;:::-;;;;11383:248;;;;11679:1;11643:15;:25;11659:8;11643:25;;;;;;;;;;;;;;;:33;;:37;;;;11698:15;:25;11714:8;11698:25;;;;;;;;;;;;;;;:32;;;11691:39;;;;:::i;:::-;11327:412;:::o;843:98::-;896:7;923:10;916:17;;843:98;:::o;3389:191::-;3463:16;3482:6;;;;;;;;;;;3463:25;;3508:8;3499:6;;:17;;;;;;;;;;;;;;;;;;3563:8;3532:40;;3553:8;3532:40;;;;;;;;;;;;3452:128;3389:191;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;720:568;793:8;803:6;853:3;846:4;838:6;834:17;830:27;820:122;;861:79;;:::i;:::-;820:122;974:6;961:20;951:30;;1004:18;996:6;993:30;990:117;;;1026:79;;:::i;:::-;990:117;1140:4;1132:6;1128:17;1116:29;;1194:3;1186:4;1178:6;1174:17;1164:8;1160:32;1157:41;1154:128;;;1201:79;;:::i;:::-;1154:128;720:568;;;;;:::o;1294:559::-;1380:6;1388;1437:2;1425:9;1416:7;1412:23;1408:32;1405:119;;;1443:79;;:::i;:::-;1405:119;1591:1;1580:9;1576:17;1563:31;1621:18;1613:6;1610:30;1607:117;;;1643:79;;:::i;:::-;1607:117;1756:80;1828:7;1819:6;1808:9;1804:22;1756:80;:::i;:::-;1738:98;;;;1534:312;1294:559;;;;;:::o;1859:126::-;1896:7;1936:42;1929:5;1925:54;1914:65;;1859:126;;;:::o;1991:60::-;2019:3;2040:5;2033:12;;1991:60;;;:::o;2057:142::-;2107:9;2140:53;2158:34;2167:24;2185:5;2167:24;:::i;:::-;2158:34;:::i;:::-;2140:53;:::i;:::-;2127:66;;2057:142;;;:::o;2205:126::-;2255:9;2288:37;2319:5;2288:37;:::i;:::-;2275:50;;2205:126;;;:::o;2337:141::-;2402:9;2435:37;2466:5;2435:37;:::i;:::-;2422:50;;2337:141;;;:::o;2484:161::-;2586:52;2632:5;2586:52;:::i;:::-;2581:3;2574:65;2484:161;;:::o;2651:252::-;2759:4;2797:2;2786:9;2782:18;2774:26;;2810:86;2893:1;2882:9;2878:17;2869:6;2810:86;:::i;:::-;2651:252;;;;:::o;2909:96::-;2946:7;2975:24;2993:5;2975:24;:::i;:::-;2964:35;;2909:96;;;:::o;3011:122::-;3084:24;3102:5;3084:24;:::i;:::-;3077:5;3074:35;3064:63;;3123:1;3120;3113:12;3064:63;3011:122;:::o;3139:139::-;3185:5;3223:6;3210:20;3201:29;;3239:33;3266:5;3239:33;:::i;:::-;3139:139;;;;:::o;3284:329::-;3343:6;3392:2;3380:9;3371:7;3367:23;3363:32;3360:119;;;3398:79;;:::i;:::-;3360:119;3518:1;3543:53;3588:7;3579:6;3568:9;3564:22;3543:53;:::i;:::-;3533:63;;3489:117;3284:329;;;;:::o;3619:114::-;3686:6;3720:5;3714:12;3704:22;;3619:114;;;:::o;3739:174::-;3828:11;3862:6;3857:3;3850:19;3902:4;3897:3;3893:14;3878:29;;3739:174;;;;:::o;3919:132::-;3986:4;4009:3;4001:11;;4039:4;4034:3;4030:14;4022:22;;3919:132;;;:::o;4057:77::-;4094:7;4123:5;4112:16;;4057:77;;;:::o;4140:108::-;4217:24;4235:5;4217:24;:::i;:::-;4212:3;4205:37;4140:108;;:::o;4254:179::-;4323:10;4344:46;4386:3;4378:6;4344:46;:::i;:::-;4422:4;4417:3;4413:14;4399:28;;4254:179;;;;:::o;4439:113::-;4509:4;4541;4536:3;4532:14;4524:22;;4439:113;;;:::o;4588:712::-;4697:3;4726:54;4774:5;4726:54;:::i;:::-;4796:76;4865:6;4860:3;4796:76;:::i;:::-;4789:83;;4896:56;4946:5;4896:56;:::i;:::-;4975:7;5006:1;4991:284;5016:6;5013:1;5010:13;4991:284;;;5092:6;5086:13;5119:63;5178:3;5163:13;5119:63;:::i;:::-;5112:70;;5205:60;5258:6;5205:60;:::i;:::-;5195:70;;5051:224;5038:1;5035;5031:9;5026:14;;4991:284;;;4995:14;5291:3;5284:10;;4702:598;;;4588:712;;;;:::o;5384:643::-;5505:3;5541:4;5536:3;5532:14;5630:4;5623:5;5619:16;5613:23;5683:3;5677:4;5673:14;5666:4;5661:3;5657:14;5650:38;5709:103;5807:4;5793:12;5709:103;:::i;:::-;5701:111;;5556:267;5908:4;5901:5;5897:16;5891:23;5927:63;5984:4;5979:3;5975:14;5961:12;5927:63;:::i;:::-;5833:167;6017:4;6010:11;;5510:517;5384:643;;;;:::o;6033:377::-;6178:4;6216:2;6205:9;6201:18;6193:26;;6265:9;6259:4;6255:20;6251:1;6240:9;6236:17;6229:47;6293:110;6398:4;6389:6;6293:110;:::i;:::-;6285:118;;6033:377;;;;:::o;6416:118::-;6503:24;6521:5;6503:24;:::i;:::-;6498:3;6491:37;6416:118;;:::o;6540:222::-;6633:4;6671:2;6660:9;6656:18;6648:26;;6684:71;6752:1;6741:9;6737:17;6728:6;6684:71;:::i;:::-;6540:222;;;;:::o;6768:122::-;6841:24;6859:5;6841:24;:::i;:::-;6834:5;6831:35;6821:63;;6880:1;6877;6870:12;6821:63;6768:122;:::o;6896:139::-;6942:5;6980:6;6967:20;6958:29;;6996:33;7023:5;6996:33;:::i;:::-;6896:139;;;;:::o;7041:329::-;7100:6;7149:2;7137:9;7128:7;7124:23;7120:32;7117:119;;;7155:79;;:::i;:::-;7117:119;7275:1;7300:53;7345:7;7336:6;7325:9;7321:22;7300:53;:::i;:::-;7290:63;;7246:117;7041:329;;;;:::o;7376:90::-;7410:7;7453:5;7446:13;7439:21;7428:32;;7376:90;;;:::o;7472:109::-;7553:21;7568:5;7553:21;:::i;:::-;7548:3;7541:34;7472:109;;:::o;7587:210::-;7674:4;7712:2;7701:9;7697:18;7689:26;;7725:65;7787:1;7776:9;7772:17;7763:6;7725:65;:::i;:::-;7587:210;;;;:::o;7820:568::-;7893:8;7903:6;7953:3;7946:4;7938:6;7934:17;7930:27;7920:122;;7961:79;;:::i;:::-;7920:122;8074:6;8061:20;8051:30;;8104:18;8096:6;8093:30;8090:117;;;8126:79;;:::i;:::-;8090:117;8240:4;8232:6;8228:17;8216:29;;8294:3;8286:4;8278:6;8274:17;8264:8;8260:32;8257:41;8254:128;;;8301:79;;:::i;:::-;8254:128;7820:568;;;;;:::o;8394:559::-;8480:6;8488;8537:2;8525:9;8516:7;8512:23;8508:32;8505:119;;;8543:79;;:::i;:::-;8505:119;8691:1;8680:9;8676:17;8663:31;8721:18;8713:6;8710:30;8707:117;;;8743:79;;:::i;:::-;8707:117;8856:80;8928:7;8919:6;8908:9;8904:22;8856:80;:::i;:::-;8838:98;;;;8634:312;8394:559;;;;;:::o;8959:180::-;9007:77;9004:1;8997:88;9104:4;9101:1;9094:15;9128:4;9125:1;9118:15;9145:118;9232:24;9250:5;9232:24;:::i;:::-;9227:3;9220:37;9145:118;;:::o;9269:222::-;9362:4;9400:2;9389:9;9385:18;9377:26;;9413:71;9481:1;9470:9;9466:17;9457:6;9413:71;:::i;:::-;9269:222;;;;:::o;9497:143::-;9554:5;9585:6;9579:13;9570:22;;9601:33;9628:5;9601:33;:::i;:::-;9497:143;;;;:::o;9646:351::-;9716:6;9765:2;9753:9;9744:7;9740:23;9736:32;9733:119;;;9771:79;;:::i;:::-;9733:119;9891:1;9916:64;9972:7;9963:6;9952:9;9948:22;9916:64;:::i;:::-;9906:74;;9862:128;9646:351;;;;:::o;10003:169::-;10087:11;10121:6;10116:3;10109:19;10161:4;10156:3;10152:14;10137:29;;10003:169;;;;:::o;10178:170::-;10318:22;10314:1;10306:6;10302:14;10295:46;10178:170;:::o;10354:366::-;10496:3;10517:67;10581:2;10576:3;10517:67;:::i;:::-;10510:74;;10593:93;10682:3;10593:93;:::i;:::-;10711:2;10706:3;10702:12;10695:19;;10354:366;;;:::o;10726:419::-;10892:4;10930:2;10919:9;10915:18;10907:26;;10979:9;10973:4;10969:20;10965:1;10954:9;10950:17;10943:47;11007:131;11133:4;11007:131;:::i;:::-;10999:139;;10726:419;;;:::o;11151:174::-;11291:26;11287:1;11279:6;11275:14;11268:50;11151:174;:::o;11331:366::-;11473:3;11494:67;11558:2;11553:3;11494:67;:::i;:::-;11487:74;;11570:93;11659:3;11570:93;:::i;:::-;11688:2;11683:3;11679:12;11672:19;;11331:366;;;:::o;11703:419::-;11869:4;11907:2;11896:9;11892:18;11884:26;;11956:9;11950:4;11946:20;11942:1;11931:9;11927:17;11920:47;11984:131;12110:4;11984:131;:::i;:::-;11976:139;;11703:419;;;:::o;12128:180::-;12176:77;12173:1;12166:88;12273:4;12270:1;12263:15;12297:4;12294:1;12287:15;12314:233;12353:3;12376:24;12394:5;12376:24;:::i;:::-;12367:33;;12422:66;12415:5;12412:77;12409:103;;;12492:18;;:::i;:::-;12409:103;12539:1;12532:5;12528:13;12521:20;;12314:233;;;:::o;12553:305::-;12593:3;12612:20;12630:1;12612:20;:::i;:::-;12607:25;;12646:20;12664:1;12646:20;:::i;:::-;12641:25;;12800:1;12732:66;12728:74;12725:1;12722:81;12719:107;;;12806:18;;:::i;:::-;12719:107;12850:1;12847;12843:9;12836:16;;12553:305;;;;:::o;12864:181::-;13004:33;13000:1;12992:6;12988:14;12981:57;12864:181;:::o;13051:366::-;13193:3;13214:67;13278:2;13273:3;13214:67;:::i;:::-;13207:74;;13290:93;13379:3;13290:93;:::i;:::-;13408:2;13403:3;13399:12;13392:19;;13051:366;;;:::o;13423:419::-;13589:4;13627:2;13616:9;13612:18;13604:26;;13676:9;13670:4;13666:20;13662:1;13651:9;13647:17;13640:47;13704:131;13830:4;13704:131;:::i;:::-;13696:139;;13423:419;;;:::o;13848:182::-;13988:34;13984:1;13976:6;13972:14;13965:58;13848:182;:::o;14036:366::-;14178:3;14199:67;14263:2;14258:3;14199:67;:::i;:::-;14192:74;;14275:93;14364:3;14275:93;:::i;:::-;14393:2;14388:3;14384:12;14377:19;;14036:366;;;:::o;14408:419::-;14574:4;14612:2;14601:9;14597:18;14589:26;;14661:9;14655:4;14651:20;14647:1;14636:9;14632:17;14625:47;14689:131;14815:4;14689:131;:::i;:::-;14681:139;;14408:419;;;:::o;14833:225::-;14973:34;14969:1;14961:6;14957:14;14950:58;15042:8;15037:2;15029:6;15025:15;15018:33;14833:225;:::o;15064:366::-;15206:3;15227:67;15291:2;15286:3;15227:67;:::i;:::-;15220:74;;15303:93;15392:3;15303:93;:::i;:::-;15421:2;15416:3;15412:12;15405:19;;15064:366;;;:::o;15436:419::-;15602:4;15640:2;15629:9;15625:18;15617:26;;15689:9;15683:4;15679:20;15675:1;15664:9;15660:17;15653:47;15717:131;15843:4;15717:131;:::i;:::-;15709:139;;15436:419;;;:::o;15861:442::-;16010:4;16048:2;16037:9;16033:18;16025:26;;16061:71;16129:1;16118:9;16114:17;16105:6;16061:71;:::i;:::-;16142:72;16210:2;16199:9;16195:18;16186:6;16142:72;:::i;:::-;16224;16292:2;16281:9;16277:18;16268:6;16224:72;:::i;:::-;15861:442;;;;;;:::o
Swarm Source
ipfs://6bdb77ed1ecec1e0886efe2778abe0d885ea0adab416c4013e3a4ca7a36af3d9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.