More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 529 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 21452868 | 41 days ago | IN | 0 ETH | 0.00112989 | ||||
Claim | 21054466 | 96 days ago | IN | 0 ETH | 0.00111224 | ||||
Claim | 20894518 | 119 days ago | IN | 0 ETH | 0.00071791 | ||||
Claim | 20894508 | 119 days ago | IN | 0 ETH | 0.00078667 | ||||
Claim | 20488116 | 175 days ago | IN | 0 ETH | 0.00053718 | ||||
Claim | 20444068 | 181 days ago | IN | 0 ETH | 0.00037709 | ||||
Claim | 20372681 | 191 days ago | IN | 0 ETH | 0.00043082 | ||||
Claim | 20352722 | 194 days ago | IN | 0 ETH | 0.00065994 | ||||
Claim | 20109168 | 228 days ago | IN | 0 ETH | 0.00072811 | ||||
Claim | 19821524 | 268 days ago | IN | 0 ETH | 0.00059804 | ||||
Claim | 19315108 | 339 days ago | IN | 0 ETH | 0.00483942 | ||||
Claim | 19189239 | 357 days ago | IN | 0 ETH | 0.00651202 | ||||
Claim | 19035343 | 379 days ago | IN | 0 ETH | 0.00176129 | ||||
Claim | 18866231 | 402 days ago | IN | 0 ETH | 0.00179548 | ||||
Claim | 18866212 | 402 days ago | IN | 0 ETH | 0.00179584 | ||||
Claim | 18866180 | 402 days ago | IN | 0 ETH | 0.00168288 | ||||
Claim | 18866156 | 402 days ago | IN | 0 ETH | 0.00145953 | ||||
Claim | 18866144 | 402 days ago | IN | 0 ETH | 0.00181143 | ||||
Claim | 18866123 | 402 days ago | IN | 0 ETH | 0.00168318 | ||||
Claim | 18866105 | 402 days ago | IN | 0 ETH | 0.00194061 | ||||
Claim | 18806735 | 411 days ago | IN | 0 ETH | 0.00618856 | ||||
Claim | 18517386 | 451 days ago | IN | 0 ETH | 0.00265108 | ||||
Claim | 17827119 | 548 days ago | IN | 0 ETH | 0.00471237 | ||||
Claim | 17724027 | 562 days ago | IN | 0 ETH | 0.0046085 | ||||
Claim | 17675181 | 569 days ago | IN | 0 ETH | 0.00159724 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
||||
---|---|---|---|---|---|---|---|
21452868 | 41 days ago | 0 ETH | |||||
21452868 | 41 days ago | 0 ETH | |||||
21054466 | 96 days ago | 0 ETH | |||||
21054466 | 96 days ago | 0 ETH | |||||
21054466 | 96 days ago | 0 ETH | |||||
20894518 | 119 days ago | 0 ETH | |||||
20894518 | 119 days ago | 0 ETH | |||||
20894508 | 119 days ago | 0 ETH | |||||
20894508 | 119 days ago | 0 ETH | |||||
20488116 | 175 days ago | 0 ETH | |||||
20488116 | 175 days ago | 0 ETH | |||||
20488116 | 175 days ago | 0 ETH | |||||
20444068 | 181 days ago | 0 ETH | |||||
20444068 | 181 days ago | 0 ETH | |||||
20372681 | 191 days ago | 0 ETH | |||||
20372681 | 191 days ago | 0 ETH | |||||
20352722 | 194 days ago | 0 ETH | |||||
20352722 | 194 days ago | 0 ETH | |||||
20352722 | 194 days ago | 0 ETH | |||||
20109168 | 228 days ago | 0 ETH | |||||
20109168 | 228 days ago | 0 ETH | |||||
20109168 | 228 days ago | 0 ETH | |||||
19821524 | 268 days ago | 0 ETH | |||||
19821524 | 268 days ago | 0 ETH | |||||
19315108 | 339 days ago | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
MerkleWalletClaimer
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-08 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.11; // Take ownership of a wallet if a claim for it exists in a merkle root. interface IMerkleWalletClaimer { // Returns the address of the wallet factory. function factory() external view returns (address); // Returns the merkle root of the merkle tree containing wallets 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 wallet. Reverts if the inputs are invalid. Deploys the wallet if necessary using the initial signing key. function claim(uint256 index, address wallet, address initialSigningKey, bytes calldata claimantSignature, bytes32[] calldata merkleProof) external; // Claim the wallet on behalf of a specified owner. function claimFor(address owner, uint256 index, address wallet, address initialSigningKey, bytes calldata claimantSignature, bytes32[] calldata merkleProof) external; // This event is triggered whenever a call to #claim succeeds. event Claimed(uint256 index, address wallet, address owner); } /** * @dev Partial interface of the wallet factory. */ interface WalletFactory { /** * @dev Deploys a new wallet. */ function newSmartWallet( address userSigningKey ) external returns (address wallet); } /** * @dev Partial interface of the wallet. */ interface Wallet { /** * @dev Sets ownership on the wallet. */ function claimOwnership(address owner) external; } /** * @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 = _efficientHash(computedHash, proofElement); } else { // Hash(current element of the proof + current computed hash) computedHash = _efficientHash(proofElement, computedHash); } } // Check if the computed hash (root) is equal to the provided root return computedHash == root; } function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) { assembly { mstore(0x00, a) mstore(0x20, b) value := keccak256(0x00, 0x40) } } } library ECDSA { function recover( bytes32 hash, bytes memory signature ) internal pure returns (address) { if (signature.length != 65) { return (address(0)); } bytes32 r; bytes32 s; uint8 v; assembly { r := mload(add(signature, 0x20)) s := mload(add(signature, 0x40)) v := byte(0, mload(add(signature, 0x60))) } if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) { return address(0); } if (v != 27 && v != 28) { return address(0); } return ecrecover(hash, v, r, s); } function toEthSignedMessageHash(address subject) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n20", subject)); } } /// @author 0age contract MerkleWalletClaimer is IMerkleWalletClaimer { using ECDSA for address; using ECDSA for bytes32; address public immutable override factory; bytes32 public immutable override merkleRoot; mapping (address => address[]) public claimedWalletsByOwner; // This is a packed array of booleans. mapping(uint256 => uint256) private claimedBitMap; constructor(address factory_, bytes32 merkleRoot_) { factory = factory_; merkleRoot = merkleRoot_; } function claim( uint256 index, address wallet, address initialSigningKey, bytes calldata claimantSignature, bytes32[] calldata merkleProof ) external override { _claim(msg.sender, index, wallet, initialSigningKey, claimantSignature, merkleProof); } function claimFor( address owner, uint256 index, address wallet, address initialSigningKey, bytes calldata claimantSignature, bytes32[] calldata merkleProof ) external override { _claim(owner, index, wallet, initialSigningKey, claimantSignature, merkleProof); } function isClaimed(uint256 index) public view override returns (bool) { uint256 claimedWordIndex = index >> 8; uint256 claimedBitIndex = index & 0xff; uint256 claimedWord = claimedBitMap[claimedWordIndex]; uint256 mask = (1 << claimedBitIndex); return claimedWord & mask != 0; } function _setClaimed(uint256 index) private { uint256 claimedWordIndex = index >> 8; uint256 claimedBitIndex = index & 0xff; claimedBitMap[claimedWordIndex] = claimedBitMap[claimedWordIndex] | (1 << claimedBitIndex); } function _deployIfNecessary(address wallet, address initialSigningKey) private { // Deploy the wallet if necessary. uint256 walletCode; assembly { walletCode := extcodesize(wallet) } if (walletCode == 0) { WalletFactory(factory).newSmartWallet(initialSigningKey); assembly { walletCode := extcodesize(wallet) } require( walletCode != 0, 'MerkleWalletClaimer: Invalid initial signing key supplied.' ); } } function _claim( address owner, uint256 index, address wallet, address initialSigningKey, bytes calldata claimantSignature, bytes32[] calldata merkleProof ) private { require(!isClaimed(index), 'MerkleWalletClaimer: Wallet already claimed.'); // Claimant signs an EIP-191 v0x45 message consisting of the designated owner. bytes32 messageHash = owner.toEthSignedMessageHash(); // Recover the claimant from the signature and cast the type. uint256 claimantKey = uint256(uint160(messageHash.recover(claimantSignature))); // Verify the merkle proof. bytes32 node = keccak256(abi.encodePacked(index, wallet, claimantKey)); require( MerkleProof.verify(merkleProof, merkleRoot, node), 'MerkleWalletClaimer: Invalid proof.' ); // Mark the wallet as claimed. _setClaimed(index); // Deploy the wallet if necessary. _deployIfNecessary(wallet, initialSigningKey); // Set the caller as the owner on the wallet. Wallet(wallet).claimOwnership(owner); // Track wallet as having been claimed by the owner and emit an event. claimedWalletsByOwner[owner].push(wallet); emit Claimed(index, wallet, owner); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"factory_","type":"address"},{"internalType":"bytes32","name":"merkleRoot_","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"Claimed","type":"event"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"initialSigningKey","type":"address"},{"internalType":"bytes","name":"claimantSignature","type":"bytes"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"initialSigningKey","type":"address"},{"internalType":"bytes","name":"claimantSignature","type":"bytes"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"claimFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"claimedWalletsByOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"}]
Contract Creation Code
60c060405234801561001057600080fd5b50604051610b15380380610b1583398101604081905261002f91610045565b6001600160a01b0390911660805260a05261007f565b6000806040838503121561005857600080fd5b82516001600160a01b038116811461006f57600080fd5b6020939093015192949293505050565b60805160a051610a646100b1600039600081816081015261038901526000818161013a01526106a70152610a646000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806318a11e11146100675780632eb4a7ab1461007c57806399b736f3146100b65780639e34070f146100e1578063a306e8fb14610122578063c45a015514610135575b600080fd5b61007a610075366004610836565b61015c565b005b6100a37f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100c96100c43660046108d5565b610175565b6040516001600160a01b0390911681526020016100ad565b6101126100ef366004610901565b600881901c60009081526001602081905260409091205460ff9092161b16151590565b60405190151581526020016100ad565b61007a61013036600461091a565b6101ad565b6100c97f000000000000000000000000000000000000000000000000000000000000000081565b61016c33888888888888886101c7565b50505050505050565b6000602052816000526040600020818154811061019157600080fd5b6000918252602090912001546001600160a01b03169150829050565b6101bd88888888888888886101c7565b5050505050505050565b6101ee87600881901c60009081526001602081905260409091205460ff9092161b16151590565b156102555760405162461bcd60e51b815260206004820152602c60248201527f4d65726b6c6557616c6c6574436c61696d65723a2057616c6c657420616c726560448201526b30b23c9031b630b4b6b2b21760a11b60648201526084015b60405180910390fd5b604080517f19457468657265756d205369676e6564204d6573736167653a0a32300000000060208083019190915260608b901b6bffffffffffffffffffffffff1916603c830152825160308184030181526050909201909252805191012060006102f786868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505061051f9050565b6001600160a01b03169050600089898360405160200161033c9392919092835260609190911b6bffffffffffffffffffffffff19166020830152603482015260540190565b6040516020818303038152906040528051906020012090506103b48585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000925085915061060a9050565b61040c5760405162461bcd60e51b815260206004820152602360248201527f4d65726b6c6557616c6c6574436c61696d65723a20496e76616c69642070726f60448201526237b31760e91b606482015260840161024c565b60088a901c6000908152600160208190526040909120805460ff8d169290921b909117905561043b8989610681565b604051636d4969d760e11b81526001600160a01b038c811660048301528a169063da92d3ae90602401600060405180830381600087803b15801561047e57600080fd5b505af1158015610492573d6000803e3d6000fd5b505050506001600160a01b038b811660008181526020818152604080832080546001810182559084529282902090920180546001600160a01b031916948e16948517905581518e8152908101939093528201527f3c75fca1decf7e281012586b8fab4c62d1e876fc95d6d0335723cd6ea5bba73a9060600160405180910390a15050505050505050505050565b6000815160411461053257506000610604565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156105785760009350505050610604565b8060ff16601b1415801561059057508060ff16601c14155b156105a15760009350505050610604565b60408051600081526020810180835288905260ff831691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa1580156105f4573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600081815b855181101561067657600086828151811061062c5761062c6109cb565b602002602001015190508083116106525760008381526020829052604090209250610663565b600081815260208490526040902092505b508061066e816109e1565b91505061060f565b509092149392505050565b813b8061078b5760405163285e7bfd60e01b81526001600160a01b0383811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063285e7bfd906024016020604051808303816000875af11580156106f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107149190610a0a565b5050813b8061078b5760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c6557616c6c6574436c61696d65723a20496e76616c696420696e6960448201527f7469616c207369676e696e67206b657920737570706c6965642e000000000000606482015260840161024c565b505050565b6001600160a01b03811681146107a557600080fd5b50565b60008083601f8401126107ba57600080fd5b50813567ffffffffffffffff8111156107d257600080fd5b6020830191508360208285010111156107ea57600080fd5b9250929050565b60008083601f84011261080357600080fd5b50813567ffffffffffffffff81111561081b57600080fd5b6020830191508360208260051b85010111156107ea57600080fd5b600080600080600080600060a0888a03121561085157600080fd5b87359650602088013561086381610790565b9550604088013561087381610790565b9450606088013567ffffffffffffffff8082111561089057600080fd5b61089c8b838c016107a8565b909650945060808a01359150808211156108b557600080fd5b506108c28a828b016107f1565b989b979a50959850939692959293505050565b600080604083850312156108e857600080fd5b82356108f381610790565b946020939093013593505050565b60006020828403121561091357600080fd5b5035919050565b60008060008060008060008060c0898b03121561093657600080fd5b883561094181610790565b975060208901359650604089013561095881610790565b9550606089013561096881610790565b9450608089013567ffffffffffffffff8082111561098557600080fd5b6109918c838d016107a8565b909650945060a08b01359150808211156109aa57600080fd5b506109b78b828c016107f1565b999c989b5096995094979396929594505050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610a0357634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610a1c57600080fd5b8151610a2781610790565b939250505056fea26469706673582212207b6b21a973dcc79ad30cdefe2a1c0c7e141968069db4ff5889dcaaf3a568eece64736f6c634300080b0033000000000000000000000000fc00c80b0000007f73004edb00094cad80626d8d58b21b0752dbf12949ea81305d33df0546ed6a59972a79cd0f0afa36c3f72f92
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100625760003560e01c806318a11e11146100675780632eb4a7ab1461007c57806399b736f3146100b65780639e34070f146100e1578063a306e8fb14610122578063c45a015514610135575b600080fd5b61007a610075366004610836565b61015c565b005b6100a37f58b21b0752dbf12949ea81305d33df0546ed6a59972a79cd0f0afa36c3f72f9281565b6040519081526020015b60405180910390f35b6100c96100c43660046108d5565b610175565b6040516001600160a01b0390911681526020016100ad565b6101126100ef366004610901565b600881901c60009081526001602081905260409091205460ff9092161b16151590565b60405190151581526020016100ad565b61007a61013036600461091a565b6101ad565b6100c97f000000000000000000000000fc00c80b0000007f73004edb00094cad80626d8d81565b61016c33888888888888886101c7565b50505050505050565b6000602052816000526040600020818154811061019157600080fd5b6000918252602090912001546001600160a01b03169150829050565b6101bd88888888888888886101c7565b5050505050505050565b6101ee87600881901c60009081526001602081905260409091205460ff9092161b16151590565b156102555760405162461bcd60e51b815260206004820152602c60248201527f4d65726b6c6557616c6c6574436c61696d65723a2057616c6c657420616c726560448201526b30b23c9031b630b4b6b2b21760a11b60648201526084015b60405180910390fd5b604080517f19457468657265756d205369676e6564204d6573736167653a0a32300000000060208083019190915260608b901b6bffffffffffffffffffffffff1916603c830152825160308184030181526050909201909252805191012060006102f786868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505061051f9050565b6001600160a01b03169050600089898360405160200161033c9392919092835260609190911b6bffffffffffffffffffffffff19166020830152603482015260540190565b6040516020818303038152906040528051906020012090506103b48585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f58b21b0752dbf12949ea81305d33df0546ed6a59972a79cd0f0afa36c3f72f92925085915061060a9050565b61040c5760405162461bcd60e51b815260206004820152602360248201527f4d65726b6c6557616c6c6574436c61696d65723a20496e76616c69642070726f60448201526237b31760e91b606482015260840161024c565b60088a901c6000908152600160208190526040909120805460ff8d169290921b909117905561043b8989610681565b604051636d4969d760e11b81526001600160a01b038c811660048301528a169063da92d3ae90602401600060405180830381600087803b15801561047e57600080fd5b505af1158015610492573d6000803e3d6000fd5b505050506001600160a01b038b811660008181526020818152604080832080546001810182559084529282902090920180546001600160a01b031916948e16948517905581518e8152908101939093528201527f3c75fca1decf7e281012586b8fab4c62d1e876fc95d6d0335723cd6ea5bba73a9060600160405180910390a15050505050505050505050565b6000815160411461053257506000610604565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156105785760009350505050610604565b8060ff16601b1415801561059057508060ff16601c14155b156105a15760009350505050610604565b60408051600081526020810180835288905260ff831691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa1580156105f4573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600081815b855181101561067657600086828151811061062c5761062c6109cb565b602002602001015190508083116106525760008381526020829052604090209250610663565b600081815260208490526040902092505b508061066e816109e1565b91505061060f565b509092149392505050565b813b8061078b5760405163285e7bfd60e01b81526001600160a01b0383811660048301527f000000000000000000000000fc00c80b0000007f73004edb00094cad80626d8d169063285e7bfd906024016020604051808303816000875af11580156106f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107149190610a0a565b5050813b8061078b5760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c6557616c6c6574436c61696d65723a20496e76616c696420696e6960448201527f7469616c207369676e696e67206b657920737570706c6965642e000000000000606482015260840161024c565b505050565b6001600160a01b03811681146107a557600080fd5b50565b60008083601f8401126107ba57600080fd5b50813567ffffffffffffffff8111156107d257600080fd5b6020830191508360208285010111156107ea57600080fd5b9250929050565b60008083601f84011261080357600080fd5b50813567ffffffffffffffff81111561081b57600080fd5b6020830191508360208260051b85010111156107ea57600080fd5b600080600080600080600060a0888a03121561085157600080fd5b87359650602088013561086381610790565b9550604088013561087381610790565b9450606088013567ffffffffffffffff8082111561089057600080fd5b61089c8b838c016107a8565b909650945060808a01359150808211156108b557600080fd5b506108c28a828b016107f1565b989b979a50959850939692959293505050565b600080604083850312156108e857600080fd5b82356108f381610790565b946020939093013593505050565b60006020828403121561091357600080fd5b5035919050565b60008060008060008060008060c0898b03121561093657600080fd5b883561094181610790565b975060208901359650604089013561095881610790565b9550606089013561096881610790565b9450608089013567ffffffffffffffff8082111561098557600080fd5b6109918c838d016107a8565b909650945060a08b01359150808211156109aa57600080fd5b506109b78b828c016107f1565b999c989b5096995094979396929594505050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610a0357634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610a1c57600080fd5b8151610a2781610790565b939250505056fea26469706673582212207b6b21a973dcc79ad30cdefe2a1c0c7e141968069db4ff5889dcaaf3a568eece64736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000fc00c80b0000007f73004edb00094cad80626d8d58b21b0752dbf12949ea81305d33df0546ed6a59972a79cd0f0afa36c3f72f92
-----Decoded View---------------
Arg [0] : factory_ (address): 0xfc00C80b0000007F73004edB00094caD80626d8D
Arg [1] : merkleRoot_ (bytes32): 0x58b21b0752dbf12949ea81305d33df0546ed6a59972a79cd0f0afa36c3f72f92
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000fc00c80b0000007f73004edb00094cad80626d8d
Arg [1] : 58b21b0752dbf12949ea81305d33df0546ed6a59972a79cd0f0afa36c3f72f92
Deployed Bytecode Sourcemap
3930:3684:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4452:312;;;;;;:::i;:::-;;:::i;:::-;;4098:44;;;;;;;;2116:25:1;;;2104:2;2089:18;4098:44:0;;;;;;;;4151:59;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2636:32:1;;;2618:51;;2606:2;2591:18;4151:59:0;2472:203:1;5114:328:0;;;;;;:::i;:::-;5231:1;5222:10;;;5178:4;5314:31;;;:13;:31;;;;;;;;;5277:4;5269:12;;;5372:20;5411:18;:23;;;5114:328;;;;3030:14:1;;3023:22;3005:41;;2993:2;2978:18;5114:328:0;2865:187:1;4772:334:0;;;;;;:::i;:::-;;:::i;4050:41::-;;;;;4452:312;4672:84;4679:10;4691:5;4698:6;4706:17;4725;;4744:11;;4672:6;:84::i;:::-;4452:312;;;;;;;:::o;4151:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4151:59:0;;-1:-1:-1;4151:59:0;;-1:-1:-1;4151:59:0:o;4772:334::-;5019:79;5026:5;5033;5040:6;5048:17;5067;;5086:11;;5019:6;:79::i;:::-;4772:334;;;;;;;;:::o;6258:1353::-;6502:16;6512:5;5231:1;5222:10;;;5178:4;5314:31;;;:13;:31;;;;;;;;;5277:4;5269:12;;;5372:20;5411:18;:23;;;5114:328;6502:16;6501:17;6493:74;;;;-1:-1:-1;;;6493:74:0;;4497:2:1;6493:74:0;;;4479:21:1;4536:2;4516:18;;;4509:30;4575:34;4555:18;;;4548:62;-1:-1:-1;;;4626:18:1;;;4619:42;4678:19;;6493:74:0;;;;;;;;;3837:61;;;6098:66:1;3837:61:0;;;;6086:79:1;;;;6203:2;6199:15;;;-1:-1:-1;;6199:15:1;6181:12;;;6174:75;3837:61:0;;;;;;;;;6265:12:1;;;;3837:61:0;;;3827:72;;;;;6804:19;6842:38;6862:17;;6842:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6842:11:0;;:38;-1:-1:-1;;6842:19:0;:38;-1:-1:-1;6842:38:0:i;:::-;-1:-1:-1;;;;;6826:56:0;6804:78;;6932:12;6974:5;6981:6;6989:11;6957:44;;;;;;;;;4893:19:1;;;4950:2;4946:15;;;;-1:-1:-1;;4942:53:1;4937:2;4928:12;;4921:75;5021:2;5012:12;;5005:28;5058:2;5049:12;;4708:359;6957:44:0;;;;;;;;;;;;;6947:55;;;;;;6932:70;;7035:49;7054:11;;7035:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7067:10:0;;-1:-1:-1;7079:4:0;;-1:-1:-1;7035:18:0;;-1:-1:-1;7035:49:0:i;:::-;7013:134;;;;-1:-1:-1;;;7013:134:0;;5274:2:1;7013:134:0;;;5256:21:1;5313:2;5293:18;;;5286:30;5352:34;5332:18;;;5325:62;-1:-1:-1;;;5403:18:1;;;5396:33;5446:19;;7013:134:0;5072:399:1;7013:134:0;5541:1;5532:10;;;5505:24;5636:31;;;5671:1;5636:31;;;;;;;;;;5587:4;5579:12;;5671:20;;;;5636:56;;;5602:90;;7275:45;7294:6;7302:17;7275:18;:45::i;:::-;7388:36;;-1:-1:-1;;;7388:36:0;;-1:-1:-1;;;;;2636:32:1;;;7388:36:0;;;2618:51:1;7388:29:0;;;;;2591:18:1;;7388:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;7517:28:0;;;:21;:28;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7517:41:0;;;;;;;;;7574:29;;5678:25:1;;;5757:18;;;5750:43;;;;5809:18;;5802:43;7574:29:0;;5666:2:1;5651:18;7574:29:0;;;;;;;6482:1129;;;6258:1353;;;;;;;;:::o;3118:608::-;3206:7;3226:9;:16;3246:2;3226:22;3222:64;;-1:-1:-1;3275:1:0;3259:19;;3222:64;3386:4;3371:20;;3365:27;3426:4;3411:20;;3405:27;3474:4;3459:20;;3453:27;3294:9;3445:36;3513:66;3500:79;;3496:119;;;3605:1;3590:17;;;;;;;3496:119;3627:1;:7;;3632:2;3627:7;;:18;;;;;3638:1;:7;;3643:2;3638:7;;3627:18;3623:58;;;3671:1;3656:17;;;;;;;3623:58;3696:24;;;;;;;;;;;;6515:25:1;;;6588:4;6576:17;;6556:18;;;6549:45;;;;6610:18;;;6603:34;;;6653:18;;;6646:34;;;3696:24:0;;6487:19:1;;3696:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3689:31;;;;;3118:608;;;;;:::o;2090:770::-;2181:4;2221;2181;2238:499;2262:5;:12;2258:1;:16;2238:499;;;2296:20;2319:5;2325:1;2319:8;;;;;;;;:::i;:::-;;;;;;;2296:31;;2364:12;2348;:28;2344:382;;2936:13;2986:15;;;3022:4;3015:15;;;3069:4;3053:21;;2476:57;;2344:382;;;2936:13;2986:15;;;3022:4;3015:15;;;3069:4;3053:21;;2653:57;;2344:382;-1:-1:-1;2276:3:0;;;;:::i;:::-;;;;2238:499;;;-1:-1:-1;2832:20:0;;;;2090:770;-1:-1:-1;;;2090:770:0:o;5708:542::-;5896:19;;5931:15;5927:316;;5963:56;;-1:-1:-1;;;5963:56:0;;-1:-1:-1;;;;;2636:32:1;;;5963:56:0;;;2618:51:1;5977:7:0;5963:37;;;;2591:18:1;;5963:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;6061:19:0;;6122:15;6096:135;;;;-1:-1:-1;;;6096:135:0;;7518:2:1;6096:135:0;;;7500:21:1;7557:2;7537:18;;;7530:30;7596:34;7576:18;;;7569:62;7667:28;7647:18;;;7640:56;7713:19;;6096:135:0;7316:422:1;6096:135:0;5787:463;5708:542;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:347::-;201:8;211:6;265:3;258:4;250:6;246:17;242:27;232:55;;283:1;280;273:12;232:55;-1:-1:-1;306:20:1;;349:18;338:30;;335:50;;;381:1;378;371:12;335:50;418:4;410:6;406:17;394:29;;470:3;463:4;454:6;446;442:19;438:30;435:39;432:59;;;487:1;484;477:12;432:59;150:347;;;;;:::o;502:367::-;565:8;575:6;629:3;622:4;614:6;610:17;606:27;596:55;;647:1;644;637:12;596:55;-1:-1:-1;670:20:1;;713:18;702:30;;699:50;;;745:1;742;735:12;699:50;782:4;774:6;770:17;758:29;;842:3;835:4;825:6;822:1;818:14;810:6;806:27;802:38;799:47;796:67;;;859:1;856;849:12;874:1091;1007:6;1015;1023;1031;1039;1047;1055;1108:3;1096:9;1087:7;1083:23;1079:33;1076:53;;;1125:1;1122;1115:12;1076:53;1161:9;1148:23;1138:33;;1221:2;1210:9;1206:18;1193:32;1234:31;1259:5;1234:31;:::i;:::-;1284:5;-1:-1:-1;1341:2:1;1326:18;;1313:32;1354:33;1313:32;1354:33;:::i;:::-;1406:7;-1:-1:-1;1464:2:1;1449:18;;1436:32;1487:18;1517:14;;;1514:34;;;1544:1;1541;1534:12;1514:34;1583:58;1633:7;1624:6;1613:9;1609:22;1583:58;:::i;:::-;1660:8;;-1:-1:-1;1557:84:1;-1:-1:-1;1748:3:1;1733:19;;1720:33;;-1:-1:-1;1765:16:1;;;1762:36;;;1794:1;1791;1784:12;1762:36;;1833:72;1897:7;1886:8;1875:9;1871:24;1833:72;:::i;:::-;874:1091;;;;-1:-1:-1;874:1091:1;;-1:-1:-1;874:1091:1;;;;1807:98;;-1:-1:-1;;;874:1091:1:o;2152:315::-;2220:6;2228;2281:2;2269:9;2260:7;2256:23;2252:32;2249:52;;;2297:1;2294;2287:12;2249:52;2336:9;2323:23;2355:31;2380:5;2355:31;:::i;:::-;2405:5;2457:2;2442:18;;;;2429:32;;-1:-1:-1;;;2152:315:1:o;2680:180::-;2739:6;2792:2;2780:9;2771:7;2767:23;2763:32;2760:52;;;2808:1;2805;2798:12;2760:52;-1:-1:-1;2831:23:1;;2680:180;-1:-1:-1;2680:180:1:o;3057:1233::-;3199:6;3207;3215;3223;3231;3239;3247;3255;3308:3;3296:9;3287:7;3283:23;3279:33;3276:53;;;3325:1;3322;3315:12;3276:53;3364:9;3351:23;3383:31;3408:5;3383:31;:::i;:::-;3433:5;-1:-1:-1;3485:2:1;3470:18;;3457:32;;-1:-1:-1;3541:2:1;3526:18;;3513:32;3554:33;3513:32;3554:33;:::i;:::-;3606:7;-1:-1:-1;3665:2:1;3650:18;;3637:32;3678:33;3637:32;3678:33;:::i;:::-;3730:7;-1:-1:-1;3788:3:1;3773:19;;3760:33;3812:18;3842:14;;;3839:34;;;3869:1;3866;3859:12;3839:34;3908:58;3958:7;3949:6;3938:9;3934:22;3908:58;:::i;:::-;3985:8;;-1:-1:-1;3882:84:1;-1:-1:-1;4073:3:1;4058:19;;4045:33;;-1:-1:-1;4090:16:1;;;4087:36;;;4119:1;4116;4109:12;4087:36;;4158:72;4222:7;4211:8;4200:9;4196:24;4158:72;:::i;:::-;3057:1233;;;;-1:-1:-1;3057:1233:1;;-1:-1:-1;3057:1233:1;;;;;;4249:8;-1:-1:-1;;;3057:1233:1:o;6691:127::-;6752:10;6747:3;6743:20;6740:1;6733:31;6783:4;6780:1;6773:15;6807:4;6804:1;6797:15;6823:232;6862:3;-1:-1:-1;;6883:17:1;;6880:140;;;6942:10;6937:3;6933:20;6930:1;6923:31;6977:4;6974:1;6967:15;7005:4;7002:1;6995:15;6880:140;-1:-1:-1;7047:1:1;7036:13;;6823:232::o;7060:251::-;7130:6;7183:2;7171:9;7162:7;7158:23;7154:32;7151:52;;;7199:1;7196;7189:12;7151:52;7231:9;7225:16;7250:31;7275:5;7250:31;:::i;:::-;7300:5;7060:251;-1:-1:-1;;;7060:251:1:o
Swarm Source
ipfs://7b6b21a973dcc79ad30cdefe2a1c0c7e141968069db4ff5889dcaaf3a568eece
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.