Contract 0xc42d583bfb7b38cda7369f3fb9ff5eeb43cd32e4 3
Contract Overview
My Name Tag:
Not Available
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
MerkleDistributorVeSolid
Compiler Version
v0.6.11+commit.5ef660b1
Contract Source Code (Solidity)
/** *Submitted for verification at Arbiscan.io on 2022-11-29 */ // File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.1.0/contracts/cryptography/MerkleProof.sol pragma solidity ^0.6.0; /** * @dev These functions deal with verification of Merkle trees (hash trees), */ library MerkleProof { /** * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree * defined by `root`. For this, a `proof` must be provided, containing * sibling hashes on the branch from the leaf to the root of the tree. Each * pair of leaves and each pair of pre-images are assumed to be sorted. */ function verify(bytes32[] memory proof, bytes32 root, bytes32 leaf) internal pure returns (bool) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { bytes32 proofElement = proof[i]; if (computedHash <= proofElement) { // Hash(current computed hash + current element of the proof) computedHash = keccak256(abi.encodePacked(computedHash, proofElement)); } else { // Hash(current element of the proof + current computed hash) computedHash = keccak256(abi.encodePacked(proofElement, computedHash)); } } // Check if the computed hash (root) is equal to the provided root return computedHash == root; } } // File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.1.0/contracts/token/ERC20/IERC20.sol pragma solidity ^0.6.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: contracts/MerkleVeSolid.sol pragma solidity =0.6.11; // Allows anyone to claim a token if they exist in a merkle root. interface IMerkleDistributor { // Returns the address of the token distributed by this contract. function token() external view returns (address); // Returns the merkle root of the merkle tree containing account balances available to claim. function merkleRoot() external view returns (bytes32); // Returns true if the index has been marked claimed. function isClaimed(uint256 index) external view returns (bool); // Claim the given amount of the token to the given address. Reverts if the inputs are invalid. function claim( uint256 index, address account, uint256 amount, bytes32[] calldata merkleProof ) external; // Claim the given amount of the token to the given address. Reverts if the inputs are invalid. function claimFor( uint256 index, address account, uint256 amount, bytes32[] calldata merkleProof, address recipient ) external; // This event is triggered whenever a call to #claim succeeds. event Claimed(uint256 index, address account, uint256 tokenId, uint256 amount); } interface IVe { function split(uint256 tokenId, uint256 sendAmount) external returns (uint256); function transferFrom( address from, address to, uint256 tokenId ) external; } contract MerkleDistributorVeSolid is IMerkleDistributor { address public immutable override token; bytes32 public immutable override merkleRoot; uint256 public immutable rootTokenId; // This is a packed array of booleans. mapping(uint256 => uint256) private claimedBitMap; address governance; constructor( address token_, bytes32 merkleRoot_, uint256 rootTokenId_ ) public { token = token_; merkleRoot = merkleRoot_; governance = msg.sender; rootTokenId = rootTokenId_; } function isClaimed(uint256 index) public view override returns (bool) { uint256 claimedWordIndex = index / 256; uint256 claimedBitIndex = index % 256; uint256 claimedWord = claimedBitMap[claimedWordIndex]; uint256 mask = (1 << claimedBitIndex); return claimedWord & mask == mask; } function _setClaimed(uint256 index) private { uint256 claimedWordIndex = index / 256; uint256 claimedBitIndex = index % 256; claimedBitMap[claimedWordIndex] = claimedBitMap[claimedWordIndex] | (1 << claimedBitIndex); } function claim( uint256 index, address account, uint256 amount, bytes32[] calldata merkleProof ) external override { require(!isClaimed(index), "MerkleDistributor: Drop already claimed."); require(msg.sender == account, "!account"); // Verify the merkle proof. bytes32 node = keccak256(abi.encodePacked(index, account, amount)); require( MerkleProof.verify(merkleProof, merkleRoot, node), "MerkleDistributor: Invalid proof." ); // Mark it claimed and send the token. _setClaimed(index); // Split NFT uint256 tokenId = IVe(token).split(rootTokenId, amount); // Transfer NFT (intentionally use transferFrom instead of safeTransferFrom) IVe(token).transferFrom(address(this), account, tokenId); emit Claimed(index, account, tokenId, amount); } function claimFor( uint256 index, address account, uint256 amount, bytes32[] calldata merkleProof, address recipient ) external override { require(msg.sender == governance, "!governance"); require(!isClaimed(index), "MerkleDistributor: Drop already claimed."); // Verify the merkle proof. bytes32 node = keccak256(abi.encodePacked(index, account, amount)); require( MerkleProof.verify(merkleProof, merkleRoot, node), "MerkleDistributor: Invalid proof." ); // Mark it claimed and send the token. _setClaimed(index); // Split NFT uint256 tokenId = IVe(token).split(rootTokenId, amount); // Transfer NFT (intentionally use transferFrom instead of safeTransferFrom) IVe(token).transferFrom(address(this), recipient, tokenId); emit Claimed(index, account, tokenId, amount); } function transferGovernance(address governance_) external { require(msg.sender == governance, "!governance"); governance = governance_; } function collectDust(address _token, uint256 _amount) external { require(msg.sender == governance, "!governance"); require(_token != token, "!token"); if (_token == address(0)) { // token address(0) = ETH payable(governance).transfer(_amount); } else { IERC20(_token).transfer(governance, _amount); } } function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4) { return this.onERC721Received.selector; } }
[{"inputs":[{"internalType":"address","name":"token_","type":"address"},{"internalType":"bytes32","name":"merkleRoot_","type":"bytes32"},{"internalType":"uint256","name":"rootTokenId_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"address","name":"recipient","type":"address"}],"name":"claimFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"collectDust","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"isClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"governance_","type":"address"}],"name":"transferGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e060405234801561001057600080fd5b506040516115673803806115678339818101604052606081101561003357600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050508273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508160a0818152505033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060c0818152505050505060805160601c60a05160c05161142861013f6000398061070e5280610bd95280610ded52508061064b52806109215280610b165250806106d252806107aa5280610b9d5280610c755280610f25528061127b52506114286000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806388f13dde1161006657806388f13dde146103455780639e34070f14610363578063b14b990f146103a9578063d38bfff4146103f7578063fc0c546a1461043b57610093565b8063150b7a02146100985780632e7ba6ef146101ad5780632eb4a7ab1461025a5780635b43aca314610278575b600080fd5b610159600480360360808110156100ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561011557600080fd5b82018360208201111561012757600080fd5b8035906020019184600183028401116401000000008311171561014957600080fd5b9091929391929390505050610485565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610258600480360360808110156101c357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561021457600080fd5b82018360208201111561022657600080fd5b8035906020019184602083028401116401000000008311171561024857600080fd5b909192939192939050505061049a565b005b61026261091f565b6040518082815260200191505060405180910390f35b610343600480360360a081101561028e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156102df57600080fd5b8201836020820111156102f157600080fd5b8035906020019184602083028401116401000000008311171561031357600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610943565b005b61034d610deb565b6040518082815260200191505060405180910390f35b61038f6004803603602081101561037957600080fd5b8101908080359060200190929190505050610e0f565b604051808215151515815260200191505060405180910390f35b6103f5600480360360408110156103bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e60565b005b6104396004803603602081101561040d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611172565b005b610443611279565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600063150b7a0260e01b905095945050505050565b6104a385610e0f565b156104f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806113aa6028913960400191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461059a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f216163636f756e7400000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000858585604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019350505050604051602081830303815290604052805190602001209050610670838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050507f00000000000000000000000000000000000000000000000000000000000000008361129d565b6106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806113d26021913960400191505060405180910390fd5b6106ce86611355565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634b19becc7f0000000000000000000000000000000000000000000000000000000000000000876040518363ffffffff1660e01b81526004018083815260200182815260200192505050602060405180830381600087803b15801561076b57600080fd5b505af115801561077f573d6000803e3d6000fd5b505050506040513d602081101561079557600080fd5b810190808051906020019092919050505090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3088846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561088357600080fd5b505af1158015610897573d6000803e3d6000fd5b505050507fd9cb1e2714d65a111c0f20f060176ad657496bd47a3de04ec7c3d4ca232112ac87878388604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a150505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b610a0f86610e0f565b15610a65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806113aa6028913960400191505060405180910390fd5b6000868686604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019350505050604051602081830303815290604052805190602001209050610b3b848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050507f00000000000000000000000000000000000000000000000000000000000000008361129d565b610b90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806113d26021913960400191505060405180910390fd5b610b9987611355565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634b19becc7f0000000000000000000000000000000000000000000000000000000000000000886040518363ffffffff1660e01b81526004018083815260200182815260200192505050602060405180830381600087803b158015610c3657600080fd5b505af1158015610c4a573d6000803e3d6000fd5b505050506040513d6020811015610c6057600080fd5b810190808051906020019092919050505090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3085846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610d4e57600080fd5b505af1158015610d62573d6000803e3d6000fd5b505050507fd9cb1e2714d65a111c0f20f060176ad657496bd47a3de04ec7c3d4ca232112ac88888389604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a15050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806101008381610e1d57fe5b04905060006101008481610e2d57fe5b06905060008060008481526020019081526020016000205490506000826001901b90508081831614945050505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f21746f6b656e000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561108857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611082573d6000803e3d6000fd5b5061116e565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561113157600080fd5b505af1158015611145573d6000803e3d6000fd5b505050506040513d602081101561115b57600080fd5b8101908080519060200190929190505050505b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008082905060008090505b85518110156113475760008682815181106112c057fe5b602002602001015190508083116113075782816040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250611339565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b5080806001019150506112a9565b508381149150509392505050565b6000610100828161136257fe5b0490506000610100838161137257fe5b069050806001901b60008084815260200190815260200160002054176000808481526020019081526020016000208190555050505056fe4d65726b6c654469737472696275746f723a2044726f7020616c726561647920636c61696d65642e4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f662ea2646970667358221220d8005b8ca7f1168224c838ea4157ad07a5fd793fd76e3aae6c760af80ade483864736f6c634300060b0033000000000000000000000000b585ec206c92661935c5201eeee8127e183f57491d1f9ebc3889a7a5c7246c305dd4085b013c6484221347f6f30c66dc5d6f88a00000000000000000000000000000000000000000000000000000000000000001
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c806388f13dde1161006657806388f13dde146103455780639e34070f14610363578063b14b990f146103a9578063d38bfff4146103f7578063fc0c546a1461043b57610093565b8063150b7a02146100985780632e7ba6ef146101ad5780632eb4a7ab1461025a5780635b43aca314610278575b600080fd5b610159600480360360808110156100ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561011557600080fd5b82018360208201111561012757600080fd5b8035906020019184600183028401116401000000008311171561014957600080fd5b9091929391929390505050610485565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610258600480360360808110156101c357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561021457600080fd5b82018360208201111561022657600080fd5b8035906020019184602083028401116401000000008311171561024857600080fd5b909192939192939050505061049a565b005b61026261091f565b6040518082815260200191505060405180910390f35b610343600480360360a081101561028e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156102df57600080fd5b8201836020820111156102f157600080fd5b8035906020019184602083028401116401000000008311171561031357600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610943565b005b61034d610deb565b6040518082815260200191505060405180910390f35b61038f6004803603602081101561037957600080fd5b8101908080359060200190929190505050610e0f565b604051808215151515815260200191505060405180910390f35b6103f5600480360360408110156103bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e60565b005b6104396004803603602081101561040d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611172565b005b610443611279565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600063150b7a0260e01b905095945050505050565b6104a385610e0f565b156104f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806113aa6028913960400191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461059a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f216163636f756e7400000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000858585604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019350505050604051602081830303815290604052805190602001209050610670838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050507f1d1f9ebc3889a7a5c7246c305dd4085b013c6484221347f6f30c66dc5d6f88a08361129d565b6106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806113d26021913960400191505060405180910390fd5b6106ce86611355565b60007f000000000000000000000000b585ec206c92661935c5201eeee8127e183f574973ffffffffffffffffffffffffffffffffffffffff16634b19becc7f0000000000000000000000000000000000000000000000000000000000000001876040518363ffffffff1660e01b81526004018083815260200182815260200192505050602060405180830381600087803b15801561076b57600080fd5b505af115801561077f573d6000803e3d6000fd5b505050506040513d602081101561079557600080fd5b810190808051906020019092919050505090507f000000000000000000000000b585ec206c92661935c5201eeee8127e183f574973ffffffffffffffffffffffffffffffffffffffff166323b872dd3088846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561088357600080fd5b505af1158015610897573d6000803e3d6000fd5b505050507fd9cb1e2714d65a111c0f20f060176ad657496bd47a3de04ec7c3d4ca232112ac87878388604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a150505050505050565b7f1d1f9ebc3889a7a5c7246c305dd4085b013c6484221347f6f30c66dc5d6f88a081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b610a0f86610e0f565b15610a65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806113aa6028913960400191505060405180910390fd5b6000868686604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019350505050604051602081830303815290604052805190602001209050610b3b848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050507f1d1f9ebc3889a7a5c7246c305dd4085b013c6484221347f6f30c66dc5d6f88a08361129d565b610b90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806113d26021913960400191505060405180910390fd5b610b9987611355565b60007f000000000000000000000000b585ec206c92661935c5201eeee8127e183f574973ffffffffffffffffffffffffffffffffffffffff16634b19becc7f0000000000000000000000000000000000000000000000000000000000000001886040518363ffffffff1660e01b81526004018083815260200182815260200192505050602060405180830381600087803b158015610c3657600080fd5b505af1158015610c4a573d6000803e3d6000fd5b505050506040513d6020811015610c6057600080fd5b810190808051906020019092919050505090507f000000000000000000000000b585ec206c92661935c5201eeee8127e183f574973ffffffffffffffffffffffffffffffffffffffff166323b872dd3085846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610d4e57600080fd5b505af1158015610d62573d6000803e3d6000fd5b505050507fd9cb1e2714d65a111c0f20f060176ad657496bd47a3de04ec7c3d4ca232112ac88888389604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a15050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000181565b6000806101008381610e1d57fe5b04905060006101008481610e2d57fe5b06905060008060008481526020019081526020016000205490506000826001901b90508081831614945050505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000b585ec206c92661935c5201eeee8127e183f574973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f21746f6b656e000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561108857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611082573d6000803e3d6000fd5b5061116e565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561113157600080fd5b505af1158015611145573d6000803e3d6000fd5b505050506040513d602081101561115b57600080fd5b8101908080519060200190929190505050505b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000b585ec206c92661935c5201eeee8127e183f574981565b60008082905060008090505b85518110156113475760008682815181106112c057fe5b602002602001015190508083116113075782816040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250611339565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b5080806001019150506112a9565b508381149150509392505050565b6000610100828161136257fe5b0490506000610100838161137257fe5b069050806001901b60008084815260200190815260200160002054176000808481526020019081526020016000208190555050505056fe4d65726b6c654469737472696275746f723a2044726f7020616c726561647920636c61696d65642e4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f662ea2646970667358221220d8005b8ca7f1168224c838ea4157ad07a5fd793fd76e3aae6c760af80ade483864736f6c634300060b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b585ec206c92661935c5201eeee8127e183f57491d1f9ebc3889a7a5c7246c305dd4085b013c6484221347f6f30c66dc5d6f88a00000000000000000000000000000000000000000000000000000000000000001
-----Decoded View---------------
Arg [0] : token_ (address): 0xb585Ec206C92661935C5201eEEE8127E183F5749
Arg [1] : merkleRoot_ (bytes32): 0x1d1f9ebc3889a7a5c7246c305dd4085b013c6484221347f6f30c66dc5d6f88a0
Arg [2] : rootTokenId_ (uint256): 1
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000b585ec206c92661935c5201eeee8127e183f5749
Arg [1] : 1d1f9ebc3889a7a5c7246c305dd4085b013c6484221347f6f30c66dc5d6f88a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000001
Deployed ByteCode Sourcemap
5793:3946:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9515:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7007:947;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5902:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7962:978;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5953:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6384:331;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9116:391;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8948:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5856:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9515:221;9672:6;9698:30;;;9691:37;;9515:221;;;;;;;:::o;7007:947::-;7183:16;7193:5;7183:9;:16::i;:::-;7182:17;7174:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7277:7;7263:21;;:10;:21;;;7255:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7355:12;7397:5;7404:7;7413:6;7380:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7370:51;;;;;;7355:66;;7454:49;7473:11;;7454:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7486:10;7498:4;7454:18;:49::i;:::-;7432:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7625:18;7637:5;7625:11;:18::i;:::-;7678:15;7700:5;7696:16;;;7713:11;7726:6;7696:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7678:55;;7836:5;7832:23;;;7864:4;7871:7;7880;7832:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7906:40;7914:5;7921:7;7930;7939:6;7906:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7007:947;;;;;;;:::o;5902:44::-;;;:::o;7962:978::-;8182:10;;;;;;;;;;;8168:24;;:10;:24;;;8160:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8228:16;8238:5;8228:9;:16::i;:::-;8227:17;8219:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8339:12;8381:5;8388:7;8397:6;8364:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8354:51;;;;;;8339:66;;8438:49;8457:11;;8438:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8470:10;8482:4;8438:18;:49::i;:::-;8416:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8609:18;8621:5;8609:11;:18::i;:::-;8662:15;8684:5;8680:16;;;8697:11;8710:6;8680:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8662:55;;8820:5;8816:23;;;8848:4;8855:9;8866:7;8816:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8892:40;8900:5;8907:7;8916;8925:6;8892:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7962:978;;;;;;;;:::o;5953:36::-;;;:::o;6384:331::-;6448:4;6465:24;6500:3;6492:5;:11;;;;;;6465:38;;6514:23;6548:3;6540:5;:11;;;;;;6514:37;;6562:19;6584:13;:31;6598:16;6584:31;;;;;;;;;;;;6562:53;;6626:12;6647:15;6642:1;:20;;6626:37;;6703:4;6695;6681:11;:18;:26;6674:33;;;;;;6384:331;;;:::o;9116:391::-;9212:10;;;;;;;;;;;9198:24;;:10;:24;;;9190:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9267:5;9257:15;;:6;:15;;;;9249:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9316:1;9298:20;;:6;:20;;;9294:206;;;9382:10;;;;;;;;;;;9374:28;;:37;9403:7;9374:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9294:206;;;9451:6;9444:23;;;9468:10;;;;;;;;;;;9480:7;9444:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9294:206;9116:391;;:::o;8948:160::-;9039:10;;;;;;;;;;;9025:24;;:10;:24;;;9017:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9089:11;9076:10;;:24;;;;;;;;;;;;;;;;;;8948:160;:::o;5856:39::-;;;:::o;598:796::-;689:4;706:20;729:4;706:27;;751:9;763:1;751:13;;746:525;770:5;:12;766:1;:16;746:525;;;804:20;827:5;833:1;827:8;;;;;;;;;;;;;;804:31;;872:12;856;:28;852:408;;1026:12;1040;1009:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;999:55;;;;;;984:70;;852:408;;;1216:12;1230;1199:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:55;;;;;;1174:70;;852:408;746:525;784:3;;;;;;;746:525;;;;1382:4;1366:12;:20;1359:27;;;598:796;;;;;:::o;6723:276::-;6778:24;6813:3;6805:5;:11;;;;;;6778:38;;6827:23;6861:3;6853:5;:11;;;;;;6827:37;;6975:15;6970:1;:20;;6922:13;:31;6936:16;6922:31;;;;;;;;;;;;:69;6875:13;:31;6889:16;6875:31;;;;;;;;;;;:116;;;;6723:276;;;:::o
Metadata Hash
d8005b8ca7f1168224c838ea4157ad07a5fd793fd76e3aae6c760af80ade4838
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.