Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 455 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Collect Dust To | 14385867 | 1453 days ago | IN | 0 ETH | 0.00166721 | ||||
| Collect Dust To | 14385849 | 1453 days ago | IN | 0 ETH | 0.0015704 | ||||
| Claim | 14344962 | 1459 days ago | IN | 0 ETH | 0.0018712 | ||||
| Claim | 13748887 | 1551 days ago | IN | 0 ETH | 0.00722023 | ||||
| Claim | 13700603 | 1559 days ago | IN | 0 ETH | 0.00650111 | ||||
| Claim | 13689908 | 1561 days ago | IN | 0 ETH | 0.00308529 | ||||
| Claim | 13433874 | 1601 days ago | IN | 0 ETH | 0.00483526 | ||||
| Claim | 13413395 | 1604 days ago | IN | 0 ETH | 0.0073271 | ||||
| Claim | 13411964 | 1604 days ago | IN | 0 ETH | 0.00817241 | ||||
| Claim | 13249243 | 1630 days ago | IN | 0 ETH | 0.00317268 | ||||
| Claim | 13226543 | 1633 days ago | IN | 0 ETH | 0.00359296 | ||||
| Claim | 13223818 | 1634 days ago | IN | 0 ETH | 0.00345098 | ||||
| Claim | 13223761 | 1634 days ago | IN | 0 ETH | 0.00475339 | ||||
| Claim | 13223466 | 1634 days ago | IN | 0 ETH | 0.00317547 | ||||
| Claim | 13217486 | 1635 days ago | IN | 0 ETH | 0.00166325 | ||||
| Claim | 13217479 | 1635 days ago | IN | 0 ETH | 0.00490171 | ||||
| Claim | 13167955 | 1642 days ago | IN | 0 ETH | 0.00973662 | ||||
| Claim | 13157949 | 1644 days ago | IN | 0 ETH | 0.00556037 | ||||
| Claim | 13117479 | 1650 days ago | IN | 0 ETH | 0.00811437 | ||||
| Collect Dust To | 13087038 | 1655 days ago | IN | 0 ETH | 0.00391957 | ||||
| Claim | 13075204 | 1657 days ago | IN | 0 ETH | 0.00211638 | ||||
| Claim | 13063592 | 1658 days ago | IN | 0 ETH | 0.00440885 | ||||
| Claim | 12957903 | 1675 days ago | IN | 0 ETH | 0.00196495 | ||||
| Claim | 12957898 | 1675 days ago | IN | 0 ETH | 0.00196427 | ||||
| Claim | 12957898 | 1675 days ago | IN | 0 ETH | 0.00196437 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MerkleDistributor
Compiler Version
v0.8.3+commit.8d00100c
Optimization Enabled:
Yes with 100000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.3;
import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";
import "../interfaces/IMerkleDistributor.sol";
import "../interfaces/IERC1155.sol";
import "../interfaces/IERC1155TokenReceiver.sol";
contract MerkleDistributor is IMerkleDistributor, IERC1155TokenReceiver {
address public immutable override nftAddress;
bytes32 public immutable override merkleRoot;
address public immutable owner;
mapping(uint256 => uint256) private claimedBitMap;
constructor(address nftAddress_, bytes32 merkleRoot_) {
nftAddress = nftAddress_;
merkleRoot = merkleRoot_;
owner = msg.sender;
}
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.');
bytes32 node = keccak256(abi.encodePacked(index, account, amount));
require(MerkleProof.verify(merkleProof, merkleRoot, node), 'MerkleDistributor: Invalid proof.');
_setClaimed(index);
IERC1155(nftAddress).safeTransferFrom(address(this), account, 1, 1, "");
emit Claimed(index, account, amount);
}
function collectDustTo(uint256 _amount, address _to) public {
require(msg.sender == owner, "not allowed");
IERC1155(nftAddress).safeTransferFrom(address(this), _to, 1, _amount, "");
}
function onERC1155Received(address, address, uint256, uint256, bytes calldata) external pure override returns(bytes4) {
return 0xf23a6e61;
}
function onERC1155BatchReceived(address, address, uint256[] calldata, uint256[] calldata, bytes calldata) external pure override returns(bytes4) {
return 0xbc197c81;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.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;
}
}// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.3;
// Allows anyone to claim a token if they exist in a merkle root.
interface IMerkleDistributor {
// Returns the address of the nft contract distributed by this contract.
function nftAddress() 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);
}// SPDX-License-Identifier: Apache-2.0
pragma solidity 0.8.3;
interface IERC1155 {
/****************************************|
| Events |
|_______________________________________*/
/**
* @dev Either TransferSingle or TransferBatch MUST emit when tokens are transferred, including zero amount transfers as well as minting or burning
* Operator MUST be msg.sender
* When minting/creating tokens, the `_from` field MUST be set to `0x0`
* When burning/destroying tokens, the `_to` field MUST be set to `0x0`
* The total amount transferred from address 0x0 minus the total amount transferred to 0x0 may be used by clients and exchanges to be added to the "circulating supply" for a given token ID
* To broadcast the existence of a token ID with no initial balance, the contract SHOULD emit the TransferSingle event from `0x0` to `0x0`, with the token creator as `_operator`, and a `_amount` of 0
*/
event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _amount);
/**
* @dev Either TransferSingle or TransferBatch MUST emit when tokens are transferred, including zero amount transfers as well as minting or burning
* Operator MUST be msg.sender
* When minting/creating tokens, the `_from` field MUST be set to `0x0`
* When burning/destroying tokens, the `_to` field MUST be set to `0x0`
* The total amount transferred from address 0x0 minus the total amount transferred to 0x0 may be used by clients and exchanges to be added to the "circulating supply" for a given token ID
* To broadcast the existence of multiple token IDs with no initial balance, this SHOULD emit the TransferBatch event from `0x0` to `0x0`, with the token creator as `_operator`, and a `_amount` of 0
*/
event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _amounts);
/**
* @dev MUST emit when an approval is updated
*/
event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
/****************************************|
| Functions |
|_______________________________________*/
/**
* @notice Transfers amount of an _id from the _from address to the _to address specified
* @dev MUST emit TransferSingle event on success
* Caller must be approved to manage the _from account's tokens (see isApprovedForAll)
* MUST throw if `_to` is the zero address
* MUST throw if balance of sender for token `_id` is lower than the `_amount` sent
* MUST throw on any other error
* When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155Received` on `_to` and revert if the return amount is not `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
* @param _from Source address
* @param _to Target address
* @param _id ID of the token type
* @param _amount Transfered amount
* @param _data Additional data with no specified format, sent in call to `_to`
*/
function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _amount, bytes calldata _data) external;
/**
* @notice Send multiple types of Tokens from the _from address to the _to address (with safety call)
* @dev MUST emit TransferBatch event on success
* Caller must be approved to manage the _from account's tokens (see isApprovedForAll)
* MUST throw if `_to` is the zero address
* MUST throw if length of `_ids` is not the same as length of `_amounts`
* MUST throw if any of the balance of sender for token `_ids` is lower than the respective `_amounts` sent
* MUST throw on any other error
* When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155BatchReceived` on `_to` and revert if the return amount is not `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
* Transfers and events MUST occur in the array order they were submitted (_ids[0] before _ids[1], etc)
* @param _from Source addresses
* @param _to Target addresses
* @param _ids IDs of each token type
* @param _amounts Transfer amounts per token type
* @param _data Additional data with no specified format, sent in call to `_to`
*/
function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data) external;
/**
* @notice Get the balance of an account's Tokens
* @param _owner The address of the token holder
* @param _id ID of the Token
* @return The _owner's balance of the Token type requested
*/
function balanceOf(address _owner, uint256 _id) external view returns (uint256);
/**
* @notice Get the balance of multiple account/token pairs
* @param _owners The addresses of the token holders
* @param _ids ID of the Tokens
* @return The _owner's balance of the Token types requested (i.e. balance for each (owner, id) pair)
*/
function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory);
/**
* @notice Enable or disable approval for a third party ("operator") to manage all of caller's tokens
* @dev MUST emit the ApprovalForAll event on success
* @param _operator Address to add to the set of authorized operators
* @param _approved True if the operator is approved, false to revoke approval
*/
function setApprovalForAll(address _operator, bool _approved) external;
/**
* @notice Queries the approval status of an operator for a given owner
* @param _owner The owner of the Tokens
* @param _operator Address of authorized operator
* @return isOperator True if the operator is approved, false if not
*/
function isApprovedForAll(address _owner, address _operator) external view returns (bool isOperator);
}// SPDX-License-Identifier: Apache-2.0
pragma solidity 0.8.3;
/**
* @dev ERC-1155 interface for accepting safe transfers.
*/
interface IERC1155TokenReceiver {
/**
* @notice Handle the receipt of a single ERC1155 token type
* @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated
* This function MAY throw to revert and reject the transfer
* Return of other amount than the magic value MUST result in the transaction being reverted
* Note: The token contract address is always the message sender
* @param _operator The address which called the `safeTransferFrom` function
* @param _from The address which previously owned the token
* @param _id The id of the token being transferred
* @param _amount The amount of tokens being transferred
* @param _data Additional data with no specified format
* @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
*/
function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _amount, bytes calldata _data) external returns(bytes4);
/**
* @notice Handle the receipt of multiple ERC1155 token types
* @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated
* This function MAY throw to revert and reject the transfer
* Return of other amount than the magic value WILL result in the transaction being reverted
* Note: The token contract address is always the message sender
* @param _operator The address which called the `safeBatchTransferFrom` function
* @param _from The address which previously owned the token
* @param _ids An array containing ids of each token being transferred
* @param _amounts An array containing amounts of each token being transferred
* @param _data Additional data with no specified format
* @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
*/
function onERC1155BatchReceived(address _operator, address _from, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data) external returns(bytes4);
}{
"optimizer": {
"enabled": true,
"runs": 100000,
"details": {
"yul": true,
"constantOptimizer": false
}
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"nftAddress_","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":"account","type":"address"},{"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":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"collectDustTo","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":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60e060405234801561001057600080fd5b50604051610c61380380610c6183398101604081905261002f91610067565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b1660805260a05233901b60c0526100ac565b60008060408385031215610079578182fd5b825173ffffffffffffffffffffffffffffffffffffffff8116811461009c578283fd5b6020939093015192949293505050565b60805160601c60a05160c05160601c610b666100fb60003960008181610140015261024201526000818160ba01526104be01526000818160f40152818161033501526105e50152610b666000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b1461013b5780639e34070f14610162578063bc197c8114610185578063f23a6e61146101f157610088565b80631ebee1cd1461008d5780632e7ba6ef146100a25780632eb4a7ab146100b55780635bf8633a146100ef575b600080fd5b6100a061009b3660046109ea565b61022a565b005b6100a06100b0366004610a15565b610395565b6100dc7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101167f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e6565b6101167f000000000000000000000000000000000000000000000000000000000000000081565b6101756101703660046109d2565b6106a0565b60405190151581526020016100e6565b6101c06101933660046108a5565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016100e6565b6101c06101ff36600461095c565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f7420616c6c6f77656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6040517ff242432a00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8281166024830152600160448301526064820184905260a06084830152600060a48301527f0000000000000000000000000000000000000000000000000000000000000000169063f242432a9060c401600060405180830381600087803b15801561037957600080fd5b505af115801561038d573d6000803e3d6000fd5b505050505050565b61039e856106a0565b1561042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c654469737472696275746f723a2044726f7020616c72656164792060448201527f636c61696d65642e00000000000000000000000000000000000000000000000060648201526084016102c5565b60408051602081018790527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087901b1691810191909152605481018490526000906074016040516020818303038152906040528051906020012090506104e98383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508591506106e39050565b610575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f6660448201527f2e0000000000000000000000000000000000000000000000000000000000000060648201526084016102c5565b61057e866107b9565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152600160448301819052606483015260a06084830152600060a48301527f0000000000000000000000000000000000000000000000000000000000000000169063f242432a9060c401600060405180830381600087803b15801561062957600080fd5b505af115801561063d573d6000803e3d6000fd5b50506040805189815273ffffffffffffffffffffffffffffffffffffffff891660208201529081018790527f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269250606001905060405180910390a1505050505050565b6000806106af61010084610a7b565b905060006106bf61010085610aed565b60009283526020839052604090922054600190921b9182169091149150505b919050565b600081815b85518110156107ae57600086828151811061072c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905080831161076e57604080516020810185905290810182905260600160405160208183030381529060405280519060200120925061079b565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806107a681610a8f565b9150506106e8565b509092149392505050565b60006107c761010083610a7b565b905060006107d761010084610aed565b6000928352602083905260409092208054600190931b9092179091555050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106de57600080fd5b60008083601f84011261082c578182fd5b50813567ffffffffffffffff811115610843578182fd5b6020830191508360208260051b850101111561085e57600080fd5b9250929050565b60008083601f840112610876578182fd5b50813567ffffffffffffffff81111561088d578182fd5b60208301915083602082850101111561085e57600080fd5b60008060008060008060008060a0898b0312156108c0578384fd5b6108c9896107f7565b97506108d760208a016107f7565b9650604089013567ffffffffffffffff808211156108f3578586fd5b6108ff8c838d0161081b565b909850965060608b0135915080821115610917578586fd5b6109238c838d0161081b565b909650945060808b013591508082111561093b578384fd5b506109488b828c01610865565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215610974578182fd5b61097d876107f7565b955061098b602088016107f7565b94506040870135935060608701359250608087013567ffffffffffffffff8111156109b4578283fd5b6109c089828a01610865565b979a9699509497509295939492505050565b6000602082840312156109e3578081fd5b5035919050565b600080604083850312156109fc578182fd5b82359150610a0c602084016107f7565b90509250929050565b600080600080600060808688031215610a2c578081fd5b85359450610a3c602087016107f7565b935060408601359250606086013567ffffffffffffffff811115610a5e578182fd5b610a6a8882890161081b565b969995985093965092949392505050565b600082610a8a57610a8a610b01565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610ae6577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b5060010190565b600082610afc57610afc610b01565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220163a43695e12a1330af3fadad01b98cb4bfb4ab3f3a78ee5ac33db33b8f38ad264736f6c634300080300330000000000000000000000000db8c099b426677f575d512874d45a767e9acc3c1de1a79be707f8000640674ed3957c21e33277be8725e7e185210375981d36ba
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b1461013b5780639e34070f14610162578063bc197c8114610185578063f23a6e61146101f157610088565b80631ebee1cd1461008d5780632e7ba6ef146100a25780632eb4a7ab146100b55780635bf8633a146100ef575b600080fd5b6100a061009b3660046109ea565b61022a565b005b6100a06100b0366004610a15565b610395565b6100dc7f1de1a79be707f8000640674ed3957c21e33277be8725e7e185210375981d36ba81565b6040519081526020015b60405180910390f35b6101167f0000000000000000000000000db8c099b426677f575d512874d45a767e9acc3c81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e6565b6101167f00000000000000000000000000000444e5a1a667663b0adfd853e8efa047069881565b6101756101703660046109d2565b6106a0565b60405190151581526020016100e6565b6101c06101933660046108a5565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016100e6565b6101c06101ff36600461095c565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000444e5a1a667663b0adfd853e8efa047069816146102ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f6e6f7420616c6c6f77656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6040517ff242432a00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8281166024830152600160448301526064820184905260a06084830152600060a48301527f0000000000000000000000000db8c099b426677f575d512874d45a767e9acc3c169063f242432a9060c401600060405180830381600087803b15801561037957600080fd5b505af115801561038d573d6000803e3d6000fd5b505050505050565b61039e856106a0565b1561042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c654469737472696275746f723a2044726f7020616c72656164792060448201527f636c61696d65642e00000000000000000000000000000000000000000000000060648201526084016102c5565b60408051602081018790527fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087901b1691810191909152605481018490526000906074016040516020818303038152906040528051906020012090506104e98383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f1de1a79be707f8000640674ed3957c21e33277be8725e7e185210375981d36ba92508591506106e39050565b610575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f6660448201527f2e0000000000000000000000000000000000000000000000000000000000000060648201526084016102c5565b61057e866107b9565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152600160448301819052606483015260a06084830152600060a48301527f0000000000000000000000000db8c099b426677f575d512874d45a767e9acc3c169063f242432a9060c401600060405180830381600087803b15801561062957600080fd5b505af115801561063d573d6000803e3d6000fd5b50506040805189815273ffffffffffffffffffffffffffffffffffffffff891660208201529081018790527f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269250606001905060405180910390a1505050505050565b6000806106af61010084610a7b565b905060006106bf61010085610aed565b60009283526020839052604090922054600190921b9182169091149150505b919050565b600081815b85518110156107ae57600086828151811061072c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905080831161076e57604080516020810185905290810182905260600160405160208183030381529060405280519060200120925061079b565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806107a681610a8f565b9150506106e8565b509092149392505050565b60006107c761010083610a7b565b905060006107d761010084610aed565b6000928352602083905260409092208054600190931b9092179091555050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106de57600080fd5b60008083601f84011261082c578182fd5b50813567ffffffffffffffff811115610843578182fd5b6020830191508360208260051b850101111561085e57600080fd5b9250929050565b60008083601f840112610876578182fd5b50813567ffffffffffffffff81111561088d578182fd5b60208301915083602082850101111561085e57600080fd5b60008060008060008060008060a0898b0312156108c0578384fd5b6108c9896107f7565b97506108d760208a016107f7565b9650604089013567ffffffffffffffff808211156108f3578586fd5b6108ff8c838d0161081b565b909850965060608b0135915080821115610917578586fd5b6109238c838d0161081b565b909650945060808b013591508082111561093b578384fd5b506109488b828c01610865565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215610974578182fd5b61097d876107f7565b955061098b602088016107f7565b94506040870135935060608701359250608087013567ffffffffffffffff8111156109b4578283fd5b6109c089828a01610865565b979a9699509497509295939492505050565b6000602082840312156109e3578081fd5b5035919050565b600080604083850312156109fc578182fd5b82359150610a0c602084016107f7565b90509250929050565b600080600080600060808688031215610a2c578081fd5b85359450610a3c602087016107f7565b935060408601359250606086013567ffffffffffffffff811115610a5e578182fd5b610a6a8882890161081b565b969995985093965092949392505050565b600082610a8a57610a8a610b01565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610ae6577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b5060010190565b600082610afc57610afc610b01565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220163a43695e12a1330af3fadad01b98cb4bfb4ab3f3a78ee5ac33db33b8f38ad264736f6c63430008030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000db8c099b426677f575d512874d45a767e9acc3c1de1a79be707f8000640674ed3957c21e33277be8725e7e185210375981d36ba
-----Decoded View---------------
Arg [0] : nftAddress_ (address): 0x0db8C099B426677f575D512874D45A767e9acC3c
Arg [1] : merkleRoot_ (bytes32): 0x1de1a79be707f8000640674ed3957c21e33277be8725e7e185210375981d36ba
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000db8c099b426677f575d512874d45a767e9acc3c
Arg [1] : 1de1a79be707f8000640674ed3957c21e33277be8725e7e185210375981d36ba
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.