Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 114 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 19036097 | 377 days ago | IN | 0 ETH | 0.00105857 | ||||
Claim | 19036044 | 377 days ago | IN | 0 ETH | 0.0011115 | ||||
Salvage | 15724031 | 842 days ago | IN | 0 ETH | 0.00083539 | ||||
Claim | 15638654 | 854 days ago | IN | 0 ETH | 0.00054642 | ||||
Claim | 15634337 | 854 days ago | IN | 0 ETH | 0.00088915 | ||||
Claim | 15566911 | 864 days ago | IN | 0 ETH | 0.00057835 | ||||
Claim | 15400731 | 890 days ago | IN | 0 ETH | 0.00036326 | ||||
Claim | 15303620 | 905 days ago | IN | 0 ETH | 0.00133298 | ||||
Claim | 15245772 | 914 days ago | IN | 0 ETH | 0.00116238 | ||||
Claim | 15212119 | 920 days ago | IN | 0 ETH | 0.00078307 | ||||
Claim | 15204249 | 921 days ago | IN | 0 ETH | 0.00044293 | ||||
Claim | 15204245 | 921 days ago | IN | 0 ETH | 0.00050633 | ||||
Claim | 15204153 | 921 days ago | IN | 0 ETH | 0.00056454 | ||||
Claim | 15162762 | 927 days ago | IN | 0 ETH | 0.00068299 | ||||
Claim | 15160760 | 928 days ago | IN | 0 ETH | 0.00270472 | ||||
Claim | 15095213 | 938 days ago | IN | 0 ETH | 0.00104067 | ||||
Claim | 15087759 | 939 days ago | IN | 0 ETH | 0.0007339 | ||||
Claim | 15011810 | 952 days ago | IN | 0 ETH | 0.00134324 | ||||
Claim | 15006622 | 953 days ago | IN | 0 ETH | 0.00125104 | ||||
Claim | 14994305 | 955 days ago | IN | 0 ETH | 0.00091811 | ||||
Claim | 14883573 | 974 days ago | IN | 0 ETH | 0.00241432 | ||||
Claim | 14833880 | 982 days ago | IN | 0 ETH | 0.00113222 | ||||
Claim | 14816089 | 985 days ago | IN | 0 ETH | 0.00103633 | ||||
Claim | 14808894 | 986 days ago | IN | 0 ETH | 0.00076577 | ||||
Claim | 14791249 | 989 days ago | IN | 0 ETH | 0.00122232 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
DegenesisAirdrop
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 200000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity 0.8.13; /*** *@title DegenesisAirdrop *@author InsureDAO * SPDX-License-Identifier: MIT * *@notice modified from https://github.com/Uniswap/merkle-distributor * *@dev added features * - ownership to salvage the unclaimed token * - claimable duration */ import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; import "./interfaces/IMerkleDistributor.sol"; import "./test/interfaces/pool/IOwnership.sol"; contract DegenesisAirdrop is IMerkleDistributor { address public immutable override token; bytes32 public immutable override merkleRoot; IOwnership public immutable ownership; uint256 public constant START = 1648684800; //2022-03-31 00:00:00 UTC uint256 public constant CLAIM_DURATION = 86400 * 365 / 2; // This is a packed array of booleans. mapping(uint256 => uint256) private claimedBitMap; modifier onlyOwner() { require( ownership.owner() == msg.sender, "Caller is not allowed to operate" ); _; } constructor(address token_, bytes32 merkleRoot_, address ownership_){ token = token_; merkleRoot = merkleRoot_; ownership = IOwnership(ownership_); } 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(block.timestamp <= START + CLAIM_DURATION, "TOO LATE"); // 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); require(IERC20(token).transfer(account, amount), 'MerkleDistributor: Transfer failed.'); emit Claimed(index, account, amount); } function salvage() external onlyOwner{ /** *@notice owner can rug-pull the unclaimed airdrop and pooled tax *@dev transfer to the community treasure at the end. */ require(block.timestamp > START + CLAIM_DURATION, "Still in Claimable Period"); uint256 _amount = IERC20(token).balanceOf(address(this)); IERC20(token).transfer(msg.sender, _amount); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.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 `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); /** * @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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (utils/cryptography/MerkleProof.sol) pragma solidity ^0.8.0; /** * @dev These functions deal with verification of Merkle Trees proofs. * * The proofs can be generated using the JavaScript library * https://github.com/miguelmota/merkletreejs[merkletreejs]. * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled. * * See `test/utils/cryptography/MerkleProof.test.js` for some examples. */ 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) { return processProof(proof, leaf) == root; } /** * @dev Returns the rebuilt hash obtained by traversing a Merklee tree up * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt * hash matches the root of the tree. When processing the proof, the pairs * of leafs & pre-images are assumed to be sorted. * * _Available since v4.4._ */ function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) { 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); } } return computedHash; } function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) { assembly { mstore(0x00, a) mstore(0x20, b) value := keccak256(0x00, 0x40) } } }
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.13; // 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; // This event is triggered whenever a call to #claim succeeds. event Claimed(uint256 index, address account, uint256 amount); }
pragma solidity 0.8.13; //SPDX-License-Identifier: MIT interface IOwnership { function owner() external view returns (address); function futureOwner() external view returns (address); function commitTransferOwnership(address newOwner) external; function acceptTransferOwnership() external; }
{ "optimizer": { "enabled": true, "runs": 200000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"token_","type":"address"},{"internalType":"bytes32","name":"merkleRoot_","type":"bytes32"},{"internalType":"address","name":"ownership_","type":"address"}],"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":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"inputs":[],"name":"CLAIM_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"START","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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[]"}],"name":"claim","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":[],"name":"ownership","outputs":[{"internalType":"contract IOwnership","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"salvage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60e060405234801561001057600080fd5b50604051610d13380380610d1383398101604081905261002f91610068565b6001600160a01b0392831660805260a0919091521660c0526100a4565b80516001600160a01b038116811461006357600080fd5b919050565b60008060006060848603121561007d57600080fd5b6100868461004c565b92506020840151915061009b6040850161004c565b90509250925092565b60805160a05160c051610c1f6100f46000396000818160e901526101a801526000818160af01526106420152600081816101630152818161036101528181610419015261074e0152610c1f6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80639e34070f1161005b5780639e34070f14610130578063ba9a061a14610153578063fc0c546a1461015e578063ff844a631461018557600080fd5b80631e5349061461008d5780632e7ba6ef146100975780632eb4a7ab146100aa5780635d03147a146100e4575b600080fd5b61009561018f565b005b6100956100a53660046109d3565b61049f565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61010b7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100db565b61014361013e366004610a6c565b6108a5565b60405190151581526020016100db565b6100d1636244ef0081565b61010b7f000000000000000000000000000000000000000000000000000000000000000081565b6100d162f099c081565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102359190610a85565b73ffffffffffffffffffffffffffffffffffffffff16146102b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f43616c6c6572206973206e6f7420616c6c6f77656420746f206f70657261746560448201526064015b60405180910390fd5b6102c862f099c0636244ef00610ad8565b4211610330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5374696c6c20696e20436c61696d61626c6520506572696f640000000000000060448201526064016102ae565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156103bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e19190610af0565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303816000875af1158015610477573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049b9190610b09565b5050565b6104a8856108a5565b15610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c654469737472696275746f723a2044726f7020616c72656164792060448201527f636c61696d65642e00000000000000000000000000000000000000000000000060648201526084016102ae565b61054662f099c0636244ef00610ad8565b4211156105af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f544f4f204c41544500000000000000000000000000000000000000000000000060448201526064016102ae565b60408051602081018790527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087901b16918101919091526054810184905260009060740160405160208183030381529060405280519060200120905061066d8383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508591506108e69050565b6106f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f6660448201527f2e0000000000000000000000000000000000000000000000000000000000000060648201526084016102ae565b610702866108fc565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015610797573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bb9190610b09565b610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4d65726b6c654469737472696275746f723a205472616e73666572206661696c60448201527f65642e000000000000000000000000000000000000000000000000000000000060648201526084016102ae565b6040805187815273ffffffffffffffffffffffffffffffffffffffff871660208201529081018590527f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269060600160405180910390a1505050505050565b6000806108b461010084610b5a565b905060006108c461010085610b6e565b60009283526020839052604090922054600190921b9182169091149392505050565b6000826108f3858461093a565b14949350505050565b600061090a61010083610b5a565b9050600061091a61010084610b6e565b6000928352602083905260409092208054600190931b9092179091555050565b600081815b84518110156109a657600085828151811061095c5761095c610b82565b602002602001015190508083116109825760008381526020829052604090209250610993565b600081815260208490526040902092505b508061099e81610bb1565b91505061093f565b509392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146109d057600080fd5b50565b6000806000806000608086880312156109eb57600080fd5b8535945060208601356109fd816109ae565b935060408601359250606086013567ffffffffffffffff80821115610a2157600080fd5b818801915088601f830112610a3557600080fd5b813581811115610a4457600080fd5b8960208260051b8501011115610a5957600080fd5b9699959850939650602001949392505050565b600060208284031215610a7e57600080fd5b5035919050565b600060208284031215610a9757600080fd5b8151610aa2816109ae565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610aeb57610aeb610aa9565b500190565b600060208284031215610b0257600080fd5b5051919050565b600060208284031215610b1b57600080fd5b81518015158114610aa257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610b6957610b69610b2b565b500490565b600082610b7d57610b7d610b2b565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610be257610be2610aa9565b506001019056fea26469706673582212204eda6b5a3a65cb5b2afb7d9b1cf07929901238f1a01d1295054e4300f4b9502564736f6c634300080d0033000000000000000000000000d83ae04c9ed29d6d3e6bf720c71bc7beb424393e5364467e2906160d23f24d922fd4383ad833ef815c6a14107b0d17f7d7ed6f4800000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100885760003560e01c80639e34070f1161005b5780639e34070f14610130578063ba9a061a14610153578063fc0c546a1461015e578063ff844a631461018557600080fd5b80631e5349061461008d5780632e7ba6ef146100975780632eb4a7ab146100aa5780635d03147a146100e4575b600080fd5b61009561018f565b005b6100956100a53660046109d3565b61049f565b6100d17f5364467e2906160d23f24d922fd4383ad833ef815c6a14107b0d17f7d7ed6f4881565b6040519081526020015b60405180910390f35b61010b7f00000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100db565b61014361013e366004610a6c565b6108a5565b60405190151581526020016100db565b6100d1636244ef0081565b61010b7f000000000000000000000000d83ae04c9ed29d6d3e6bf720c71bc7beb424393e81565b6100d162f099c081565b3373ffffffffffffffffffffffffffffffffffffffff167f00000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102359190610a85565b73ffffffffffffffffffffffffffffffffffffffff16146102b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f43616c6c6572206973206e6f7420616c6c6f77656420746f206f70657261746560448201526064015b60405180910390fd5b6102c862f099c0636244ef00610ad8565b4211610330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5374696c6c20696e20436c61696d61626c6520506572696f640000000000000060448201526064016102ae565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000d83ae04c9ed29d6d3e6bf720c71bc7beb424393e73ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156103bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e19190610af0565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290529091507f000000000000000000000000d83ae04c9ed29d6d3e6bf720c71bc7beb424393e73ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303816000875af1158015610477573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049b9190610b09565b5050565b6104a8856108a5565b15610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c654469737472696275746f723a2044726f7020616c72656164792060448201527f636c61696d65642e00000000000000000000000000000000000000000000000060648201526084016102ae565b61054662f099c0636244ef00610ad8565b4211156105af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f544f4f204c41544500000000000000000000000000000000000000000000000060448201526064016102ae565b60408051602081018790527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087901b16918101919091526054810184905260009060740160405160208183030381529060405280519060200120905061066d8383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f5364467e2906160d23f24d922fd4383ad833ef815c6a14107b0d17f7d7ed6f4892508591506108e69050565b6106f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f6660448201527f2e0000000000000000000000000000000000000000000000000000000000000060648201526084016102ae565b610702866108fc565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690527f000000000000000000000000d83ae04c9ed29d6d3e6bf720c71bc7beb424393e169063a9059cbb906044016020604051808303816000875af1158015610797573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bb9190610b09565b610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4d65726b6c654469737472696275746f723a205472616e73666572206661696c60448201527f65642e000000000000000000000000000000000000000000000000000000000060648201526084016102ae565b6040805187815273ffffffffffffffffffffffffffffffffffffffff871660208201529081018590527f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269060600160405180910390a1505050505050565b6000806108b461010084610b5a565b905060006108c461010085610b6e565b60009283526020839052604090922054600190921b9182169091149392505050565b6000826108f3858461093a565b14949350505050565b600061090a61010083610b5a565b9050600061091a61010084610b6e565b6000928352602083905260409092208054600190931b9092179091555050565b600081815b84518110156109a657600085828151811061095c5761095c610b82565b602002602001015190508083116109825760008381526020829052604090209250610993565b600081815260208490526040902092505b508061099e81610bb1565b91505061093f565b509392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146109d057600080fd5b50565b6000806000806000608086880312156109eb57600080fd5b8535945060208601356109fd816109ae565b935060408601359250606086013567ffffffffffffffff80821115610a2157600080fd5b818801915088601f830112610a3557600080fd5b813581811115610a4457600080fd5b8960208260051b8501011115610a5957600080fd5b9699959850939650602001949392505050565b600060208284031215610a7e57600080fd5b5035919050565b600060208284031215610a9757600080fd5b8151610aa2816109ae565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610aeb57610aeb610aa9565b500190565b600060208284031215610b0257600080fd5b5051919050565b600060208284031215610b1b57600080fd5b81518015158114610aa257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610b6957610b69610b2b565b500490565b600082610b7d57610b7d610b2b565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610be257610be2610aa9565b506001019056fea26469706673582212204eda6b5a3a65cb5b2afb7d9b1cf07929901238f1a01d1295054e4300f4b9502564736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d83ae04c9ed29d6d3e6bf720c71bc7beb424393e5364467e2906160d23f24d922fd4383ad833ef815c6a14107b0d17f7d7ed6f4800000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb
-----Decoded View---------------
Arg [0] : token_ (address): 0xd83AE04c9eD29d6D3E6Bf720C71bc7BeB424393E
Arg [1] : merkleRoot_ (bytes32): 0x5364467e2906160d23f24d922fd4383ad833ef815c6a14107b0d17f7d7ed6f48
Arg [2] : ownership_ (address): 0x56246e83F3148B05Ce2D90B44fbb4e9fa9EAF5bb
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000d83ae04c9ed29d6d3e6bf720c71bc7beb424393e
Arg [1] : 5364467e2906160d23f24d922fd4383ad833ef815c6a14107b0d17f7d7ed6f48
Arg [2] : 00000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb
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.