More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Loading...
Loading
Contract Name:
NFTStakingPool
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// 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 (last updated v4.9.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 Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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: @openzeppelin/contracts/utils/introspection/IERC165.sol // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.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); } // File: @openzeppelin/contracts/token/ERC721/IERC721.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; /** * @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`. * * 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; /** * @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 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: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must * understand this adds an external call which potentially creates a reentrancy vulnerability. * * 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; /** * @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 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 the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @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); } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } // File: stakig.sol pragma solidity ^0.8.0; contract NFTStakingPool is Ownable { IERC721 public nftToken; IERC20 public ducksToken; uint256 public nftRequirement1 = 1; uint256 public nftRequirement2 = 2; uint256 public nftRequirement3 = 3; uint256 public apy1 = 7; // 7% APY uint256 public apy2 = 15; // 15% APY uint256 public apy3 = 35; // 35% APY mapping(address => mapping(uint256 => unLockInfo)) public duckStaked; struct unLockInfo { uint256 amount; uint256 starttime; uint256 claimedReward; } constructor(address _nftToken, address _ducksToken) { nftToken = IERC721(_nftToken); ducksToken = IERC20(_ducksToken); } function stake(uint256 _amount, uint256 _plan) private { require(_amount > 0, "Amount must be greater than 0"); ducksToken.transferFrom(msg.sender, address(this), _amount); duckStaked[msg.sender][_plan] = unLockInfo(_amount, block.timestamp, 0); } function unlock( uint256 _plan, uint256[] memory _ids, uint256 _amount ) external { require( nftToken.isApprovedForAll(msg.sender, address(this)), "No NFTs owned" ); if (_plan == nftRequirement1) { nftToken.transferFrom(msg.sender, address(this), _ids[0]); } else if (_plan == nftRequirement2) { // Burn the NFTs nftToken.transferFrom(msg.sender, address(this), _ids[0]); nftToken.transferFrom(msg.sender, address(this), _ids[1]); } else if (_plan == nftRequirement3) { // Burn the NFTs nftToken.transferFrom(msg.sender, address(this), _ids[0]); nftToken.transferFrom(msg.sender, address(this), _ids[1]); nftToken.transferFrom(msg.sender, address(this), _ids[2]); } stake(_amount, _plan); } function unStaked(uint256 _plan) external { require( duckStaked[msg.sender][_plan].amount > 0, "Staking amount is zero" ); uint256 fee = (duckStaked[msg.sender][_plan].amount) / 100; uint256 amountafterfee = (duckStaked[msg.sender][_plan].amount) - fee; ducksToken.transfer(msg.sender, amountafterfee); } function pendingRewards( uint256 _plan, uint256 _apy, address _user ) public view returns (uint256) { unLockInfo storage orderInfo = duckStaked[_user][_plan]; uint256 APY = (orderInfo.amount * _apy) / 100; uint256 reward = (APY * (block.timestamp - orderInfo.starttime)) / 365 days; uint256 claimAvailable = reward - orderInfo.claimedReward; return claimAvailable; } function userRewards(uint256 _plan) public { uint256 apy; if (_plan == nftRequirement1) { apy = apy1; } else if (_plan == nftRequirement2) { apy = apy2; } else if (_plan == nftRequirement3) { apy = apy3; } uint256 reward = pendingRewards(_plan, apy, msg.sender); ducksToken.transfer(msg.sender, reward); } function withdrawERC20( address _tokenAddress) external onlyOwner { IERC20 token = IERC20(_tokenAddress); uint256 balance = token.balanceOf(address(this)); require(balance > 0, "Contract has no tokens to withdraw"); require(token.transfer(msg.sender, balance), "Token transfer failed"); } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_nftToken","type":"address"},{"internalType":"address","name":"_ducksToken","type":"address"}],"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":"apy1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"apy2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"apy3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"duckStaked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"starttime","type":"uint256"},{"internalType":"uint256","name":"claimedReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ducksToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftRequirement1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftRequirement2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftRequirement3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftToken","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_plan","type":"uint256"},{"internalType":"uint256","name":"_apy","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_plan","type":"uint256"}],"name":"unStaked","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_plan","type":"uint256"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_plan","type":"uint256"}],"name":"userRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526001600355600260045560036005556007600655600f60075560236008553480156200002f57600080fd5b5060405162001eb538038062001eb5833981810160405281019062000055919062000235565b6200007562000069620000ff60201b60201c565b6200010760201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200027c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001fd82620001d0565b9050919050565b6200020f81620001f0565b81146200021b57600080fd5b50565b6000815190506200022f8162000204565b92915050565b600080604083850312156200024f576200024e620001cb565b5b60006200025f858286016200021e565b925050602062000272858286016200021e565b9150509250929050565b611c29806200028c6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063a5660bbb116100a2578063d47f7d4511610071578063d47f7d4514610286578063e527c367146102a4578063ef916739146102c0578063f2fde38b146102de578063f4f3b200146102fa5761010b565b8063a5660bbb14610210578063c86263ea1461022e578063d06fcba81461024c578063d07c129f1461026a5761010b565b8063738b30f4116100de578063738b30f41461018657806377fea733146101a25780638b9911cb146101c05780638da5cb5b146101f25761010b565b80630d2b19c6146101105780631bae7cb214610140578063599a84cd1461015e578063715018a61461017c575b600080fd5b61012a60048036038101906101259190611248565b610316565b60405161013791906112aa565b60405180910390f35b6101486103db565b60405161015591906112aa565b60405180910390f35b6101666103e1565b60405161017391906112aa565b60405180910390f35b6101846103e7565b005b6101a0600480360381019061019b919061141e565b6103fb565b005b6101aa610917565b6040516101b791906112aa565b60405180910390f35b6101da60048036038101906101d5919061148d565b61091d565b6040516101e9939291906114cd565b60405180910390f35b6101fa610954565b6040516102079190611513565b60405180910390f35b61021861097d565b604051610225919061158d565b60405180910390f35b6102366109a3565b60405161024391906112aa565b60405180910390f35b6102546109a9565b60405161026191906115c9565b60405180910390f35b610284600480360381019061027f91906115e4565b6109cf565b005b61028e610bd2565b60405161029b91906112aa565b60405180910390f35b6102be60048036038101906102b991906115e4565b610bd8565b005b6102c8610cc6565b6040516102d591906112aa565b60405180910390f35b6102f860048036038101906102f39190611611565b610ccc565b005b610314600480360381019061030f9190611611565b610d4f565b005b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002090506000606485836000015461037f919061166d565b61038991906116de565b905060006301e133808360010154426103a2919061170f565b836103ad919061166d565b6103b791906116de565b905060008360020154826103cb919061170f565b9050809450505050509392505050565b60045481565b60085481565b6103ef610edf565b6103f96000610f5d565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e985e9c533306040518363ffffffff1660e01b8152600401610458929190611743565b602060405180830381865afa158015610475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049991906117a4565b6104d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104cf9061182e565b60405180910390fd5b600354830361059257600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000815181106105355761053461184e565b5b60200260200101516040518463ffffffff1660e01b815260040161055b9392919061187d565b600060405180830381600087803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b50505050610908565b60045483036106f857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000815181106105ef576105ee61184e565b5b60200260200101516040518463ffffffff1660e01b81526004016106159392919061187d565b600060405180830381600087803b15801561062f57600080fd5b505af1158015610643573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33308560018151811061069b5761069a61184e565b5b60200260200101516040518463ffffffff1660e01b81526004016106c19392919061187d565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b50505050610907565b600554830361090657600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000815181106107555761075461184e565b5b60200260200101516040518463ffffffff1660e01b815260040161077b9392919061187d565b600060405180830381600087803b15801561079557600080fd5b505af11580156107a9573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856001815181106108015761080061184e565b5b60200260200101516040518463ffffffff1660e01b81526004016108279392919061187d565b600060405180830381600087803b15801561084157600080fd5b505af1158015610855573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856002815181106108ad576108ac61184e565b5b60200260200101516040518463ffffffff1660e01b81526004016108d39392919061187d565b600060405180830381600087803b1580156108ed57600080fd5b505af1158015610901573d6000803e3d6000fd5b505050505b5b5b6109128184611021565b505050565b60035481565b6009602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154905083565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000015411610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c90611900565b60405180910390fd5b60006064600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060000154610ac791906116de565b9050600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060000154610b2a919061170f565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610b89929190611920565b6020604051808303816000875af1158015610ba8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcc91906117a4565b50505050565b60055481565b60006003548203610bed576006549050610c11565b6004548203610c00576007549050610c10565b6005548203610c0f5760085490505b5b5b6000610c1e838333610316565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c7d929190611920565b6020604051808303816000875af1158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc091906117a4565b50505050565b60065481565b610cd4610edf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3a906119bb565b60405180910390fd5b610d4c81610f5d565b50565b610d57610edf565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d979190611513565b602060405180830381865afa158015610db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd891906119f0565b905060008111610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490611a8f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610e58929190611920565b6020604051808303816000875af1158015610e77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9b91906117a4565b610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed190611afb565b60405180910390fd5b505050565b610ee7611198565b73ffffffffffffffffffffffffffffffffffffffff16610f05610954565b73ffffffffffffffffffffffffffffffffffffffff1614610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5290611b67565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008211611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b90611bd3565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b81526004016110c39392919061187d565b6020604051808303816000875af11580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110691906117a4565b5060405180606001604052808381526020014281526020016000815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050505050565b600033905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6111c7816111b4565b81146111d257600080fd5b50565b6000813590506111e4816111be565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611215826111ea565b9050919050565b6112258161120a565b811461123057600080fd5b50565b6000813590506112428161121c565b92915050565b600080600060608486031215611261576112606111aa565b5b600061126f868287016111d5565b9350506020611280868287016111d5565b925050604061129186828701611233565b9150509250925092565b6112a4816111b4565b82525050565b60006020820190506112bf600083018461129b565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611313826112ca565b810181811067ffffffffffffffff82111715611332576113316112db565b5b80604052505050565b60006113456111a0565b9050611351828261130a565b919050565b600067ffffffffffffffff821115611371576113706112db565b5b602082029050602081019050919050565b600080fd5b600061139a61139584611356565b61133b565b905080838252602082019050602084028301858111156113bd576113bc611382565b5b835b818110156113e657806113d288826111d5565b8452602084019350506020810190506113bf565b5050509392505050565b600082601f830112611405576114046112c5565b5b8135611415848260208601611387565b91505092915050565b600080600060608486031215611437576114366111aa565b5b6000611445868287016111d5565b935050602084013567ffffffffffffffff811115611466576114656111af565b5b611472868287016113f0565b9250506040611483868287016111d5565b9150509250925092565b600080604083850312156114a4576114a36111aa565b5b60006114b285828601611233565b92505060206114c3858286016111d5565b9150509250929050565b60006060820190506114e2600083018661129b565b6114ef602083018561129b565b6114fc604083018461129b565b949350505050565b61150d8161120a565b82525050565b60006020820190506115286000830184611504565b92915050565b6000819050919050565b600061155361154e611549846111ea565b61152e565b6111ea565b9050919050565b600061156582611538565b9050919050565b60006115778261155a565b9050919050565b6115878161156c565b82525050565b60006020820190506115a2600083018461157e565b92915050565b60006115b38261155a565b9050919050565b6115c3816115a8565b82525050565b60006020820190506115de60008301846115ba565b92915050565b6000602082840312156115fa576115f96111aa565b5b6000611608848285016111d5565b91505092915050565b600060208284031215611627576116266111aa565b5b600061163584828501611233565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611678826111b4565b9150611683836111b4565b9250828202611691816111b4565b915082820484148315176116a8576116a761163e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006116e9826111b4565b91506116f4836111b4565b925082611704576117036116af565b5b828204905092915050565b600061171a826111b4565b9150611725836111b4565b925082820390508181111561173d5761173c61163e565b5b92915050565b60006040820190506117586000830185611504565b6117656020830184611504565b9392505050565b60008115159050919050565b6117818161176c565b811461178c57600080fd5b50565b60008151905061179e81611778565b92915050565b6000602082840312156117ba576117b96111aa565b5b60006117c88482850161178f565b91505092915050565b600082825260208201905092915050565b7f4e6f204e465473206f776e656400000000000000000000000000000000000000600082015250565b6000611818600d836117d1565b9150611823826117e2565b602082019050919050565b600060208201905081810360008301526118478161180b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006060820190506118926000830186611504565b61189f6020830185611504565b6118ac604083018461129b565b949350505050565b7f5374616b696e6720616d6f756e74206973207a65726f00000000000000000000600082015250565b60006118ea6016836117d1565b91506118f5826118b4565b602082019050919050565b60006020820190508181036000830152611919816118dd565b9050919050565b60006040820190506119356000830185611504565b611942602083018461129b565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006119a56026836117d1565b91506119b082611949565b604082019050919050565b600060208201905081810360008301526119d481611998565b9050919050565b6000815190506119ea816111be565b92915050565b600060208284031215611a0657611a056111aa565b5b6000611a14848285016119db565b91505092915050565b7f436f6e747261637420686173206e6f20746f6b656e7320746f2077697468647260008201527f6177000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a796022836117d1565b9150611a8482611a1d565b604082019050919050565b60006020820190508181036000830152611aa881611a6c565b9050919050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000611ae56015836117d1565b9150611af082611aaf565b602082019050919050565b60006020820190508181036000830152611b1481611ad8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611b516020836117d1565b9150611b5c82611b1b565b602082019050919050565b60006020820190508181036000830152611b8081611b44565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000611bbd601d836117d1565b9150611bc882611b87565b602082019050919050565b60006020820190508181036000830152611bec81611bb0565b905091905056fea2646970667358221220970ccd02a73d7a14bedfe9d6b951452b3aaa93027e8bdcd4ab5b7d6db51fa8e964736f6c634300081200330000000000000000000000009b77508913e002bd7ffa5624e954278ec0a598c9000000000000000000000000c770cba97429de07a5955c88ffc2bc40207d1e6d
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063a5660bbb116100a2578063d47f7d4511610071578063d47f7d4514610286578063e527c367146102a4578063ef916739146102c0578063f2fde38b146102de578063f4f3b200146102fa5761010b565b8063a5660bbb14610210578063c86263ea1461022e578063d06fcba81461024c578063d07c129f1461026a5761010b565b8063738b30f4116100de578063738b30f41461018657806377fea733146101a25780638b9911cb146101c05780638da5cb5b146101f25761010b565b80630d2b19c6146101105780631bae7cb214610140578063599a84cd1461015e578063715018a61461017c575b600080fd5b61012a60048036038101906101259190611248565b610316565b60405161013791906112aa565b60405180910390f35b6101486103db565b60405161015591906112aa565b60405180910390f35b6101666103e1565b60405161017391906112aa565b60405180910390f35b6101846103e7565b005b6101a0600480360381019061019b919061141e565b6103fb565b005b6101aa610917565b6040516101b791906112aa565b60405180910390f35b6101da60048036038101906101d5919061148d565b61091d565b6040516101e9939291906114cd565b60405180910390f35b6101fa610954565b6040516102079190611513565b60405180910390f35b61021861097d565b604051610225919061158d565b60405180910390f35b6102366109a3565b60405161024391906112aa565b60405180910390f35b6102546109a9565b60405161026191906115c9565b60405180910390f35b610284600480360381019061027f91906115e4565b6109cf565b005b61028e610bd2565b60405161029b91906112aa565b60405180910390f35b6102be60048036038101906102b991906115e4565b610bd8565b005b6102c8610cc6565b6040516102d591906112aa565b60405180910390f35b6102f860048036038101906102f39190611611565b610ccc565b005b610314600480360381019061030f9190611611565b610d4f565b005b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002090506000606485836000015461037f919061166d565b61038991906116de565b905060006301e133808360010154426103a2919061170f565b836103ad919061166d565b6103b791906116de565b905060008360020154826103cb919061170f565b9050809450505050509392505050565b60045481565b60085481565b6103ef610edf565b6103f96000610f5d565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e985e9c533306040518363ffffffff1660e01b8152600401610458929190611743565b602060405180830381865afa158015610475573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049991906117a4565b6104d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104cf9061182e565b60405180910390fd5b600354830361059257600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000815181106105355761053461184e565b5b60200260200101516040518463ffffffff1660e01b815260040161055b9392919061187d565b600060405180830381600087803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b50505050610908565b60045483036106f857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000815181106105ef576105ee61184e565b5b60200260200101516040518463ffffffff1660e01b81526004016106159392919061187d565b600060405180830381600087803b15801561062f57600080fd5b505af1158015610643573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33308560018151811061069b5761069a61184e565b5b60200260200101516040518463ffffffff1660e01b81526004016106c19392919061187d565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b50505050610907565b600554830361090657600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000815181106107555761075461184e565b5b60200260200101516040518463ffffffff1660e01b815260040161077b9392919061187d565b600060405180830381600087803b15801561079557600080fd5b505af11580156107a9573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856001815181106108015761080061184e565b5b60200260200101516040518463ffffffff1660e01b81526004016108279392919061187d565b600060405180830381600087803b15801561084157600080fd5b505af1158015610855573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856002815181106108ad576108ac61184e565b5b60200260200101516040518463ffffffff1660e01b81526004016108d39392919061187d565b600060405180830381600087803b1580156108ed57600080fd5b505af1158015610901573d6000803e3d6000fd5b505050505b5b5b6109128184611021565b505050565b60035481565b6009602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154905083565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000015411610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c90611900565b60405180910390fd5b60006064600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060000154610ac791906116de565b9050600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060000154610b2a919061170f565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610b89929190611920565b6020604051808303816000875af1158015610ba8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcc91906117a4565b50505050565b60055481565b60006003548203610bed576006549050610c11565b6004548203610c00576007549050610c10565b6005548203610c0f5760085490505b5b5b6000610c1e838333610316565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c7d929190611920565b6020604051808303816000875af1158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc091906117a4565b50505050565b60065481565b610cd4610edf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3a906119bb565b60405180910390fd5b610d4c81610f5d565b50565b610d57610edf565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d979190611513565b602060405180830381865afa158015610db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd891906119f0565b905060008111610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490611a8f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610e58929190611920565b6020604051808303816000875af1158015610e77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9b91906117a4565b610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed190611afb565b60405180910390fd5b505050565b610ee7611198565b73ffffffffffffffffffffffffffffffffffffffff16610f05610954565b73ffffffffffffffffffffffffffffffffffffffff1614610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5290611b67565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008211611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b90611bd3565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b81526004016110c39392919061187d565b6020604051808303816000875af11580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110691906117a4565b5060405180606001604052808381526020014281526020016000815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050505050565b600033905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6111c7816111b4565b81146111d257600080fd5b50565b6000813590506111e4816111be565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611215826111ea565b9050919050565b6112258161120a565b811461123057600080fd5b50565b6000813590506112428161121c565b92915050565b600080600060608486031215611261576112606111aa565b5b600061126f868287016111d5565b9350506020611280868287016111d5565b925050604061129186828701611233565b9150509250925092565b6112a4816111b4565b82525050565b60006020820190506112bf600083018461129b565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611313826112ca565b810181811067ffffffffffffffff82111715611332576113316112db565b5b80604052505050565b60006113456111a0565b9050611351828261130a565b919050565b600067ffffffffffffffff821115611371576113706112db565b5b602082029050602081019050919050565b600080fd5b600061139a61139584611356565b61133b565b905080838252602082019050602084028301858111156113bd576113bc611382565b5b835b818110156113e657806113d288826111d5565b8452602084019350506020810190506113bf565b5050509392505050565b600082601f830112611405576114046112c5565b5b8135611415848260208601611387565b91505092915050565b600080600060608486031215611437576114366111aa565b5b6000611445868287016111d5565b935050602084013567ffffffffffffffff811115611466576114656111af565b5b611472868287016113f0565b9250506040611483868287016111d5565b9150509250925092565b600080604083850312156114a4576114a36111aa565b5b60006114b285828601611233565b92505060206114c3858286016111d5565b9150509250929050565b60006060820190506114e2600083018661129b565b6114ef602083018561129b565b6114fc604083018461129b565b949350505050565b61150d8161120a565b82525050565b60006020820190506115286000830184611504565b92915050565b6000819050919050565b600061155361154e611549846111ea565b61152e565b6111ea565b9050919050565b600061156582611538565b9050919050565b60006115778261155a565b9050919050565b6115878161156c565b82525050565b60006020820190506115a2600083018461157e565b92915050565b60006115b38261155a565b9050919050565b6115c3816115a8565b82525050565b60006020820190506115de60008301846115ba565b92915050565b6000602082840312156115fa576115f96111aa565b5b6000611608848285016111d5565b91505092915050565b600060208284031215611627576116266111aa565b5b600061163584828501611233565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611678826111b4565b9150611683836111b4565b9250828202611691816111b4565b915082820484148315176116a8576116a761163e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006116e9826111b4565b91506116f4836111b4565b925082611704576117036116af565b5b828204905092915050565b600061171a826111b4565b9150611725836111b4565b925082820390508181111561173d5761173c61163e565b5b92915050565b60006040820190506117586000830185611504565b6117656020830184611504565b9392505050565b60008115159050919050565b6117818161176c565b811461178c57600080fd5b50565b60008151905061179e81611778565b92915050565b6000602082840312156117ba576117b96111aa565b5b60006117c88482850161178f565b91505092915050565b600082825260208201905092915050565b7f4e6f204e465473206f776e656400000000000000000000000000000000000000600082015250565b6000611818600d836117d1565b9150611823826117e2565b602082019050919050565b600060208201905081810360008301526118478161180b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006060820190506118926000830186611504565b61189f6020830185611504565b6118ac604083018461129b565b949350505050565b7f5374616b696e6720616d6f756e74206973207a65726f00000000000000000000600082015250565b60006118ea6016836117d1565b91506118f5826118b4565b602082019050919050565b60006020820190508181036000830152611919816118dd565b9050919050565b60006040820190506119356000830185611504565b611942602083018461129b565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006119a56026836117d1565b91506119b082611949565b604082019050919050565b600060208201905081810360008301526119d481611998565b9050919050565b6000815190506119ea816111be565b92915050565b600060208284031215611a0657611a056111aa565b5b6000611a14848285016119db565b91505092915050565b7f436f6e747261637420686173206e6f20746f6b656e7320746f2077697468647260008201527f6177000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a796022836117d1565b9150611a8482611a1d565b604082019050919050565b60006020820190508181036000830152611aa881611a6c565b9050919050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000611ae56015836117d1565b9150611af082611aaf565b602082019050919050565b60006020820190508181036000830152611b1481611ad8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611b516020836117d1565b9150611b5c82611b1b565b602082019050919050565b60006020820190508181036000830152611b8081611b44565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000611bbd601d836117d1565b9150611bc882611b87565b602082019050919050565b60006020820190508181036000830152611bec81611bb0565b905091905056fea2646970667358221220970ccd02a73d7a14bedfe9d6b951452b3aaa93027e8bdcd4ab5b7d6db51fa8e964736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009b77508913e002bd7ffa5624e954278ec0a598c9000000000000000000000000c770cba97429de07a5955c88ffc2bc40207d1e6d
-----Decoded View---------------
Arg [0] : _nftToken (address): 0x9B77508913e002bD7FFA5624E954278eC0A598C9
Arg [1] : _ducksToken (address): 0xc770cbA97429dE07A5955c88ffc2Bc40207d1e6d
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000009b77508913e002bd7ffa5624e954278ec0a598c9
Arg [1] : 000000000000000000000000c770cba97429de07a5955c88ffc2bc40207d1e6d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.