Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 119 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Claim | 13881687 | 1543 days ago | IN | 0 ETH | 0.00610379 | ||||
| Claim | 13841530 | 1549 days ago | IN | 0 ETH | 0.00595442 | ||||
| Claim | 13816025 | 1553 days ago | IN | 0 ETH | 0.00637115 | ||||
| Claim | 13804624 | 1555 days ago | IN | 0 ETH | 0.00891331 | ||||
| Claim | 13804058 | 1555 days ago | IN | 0 ETH | 0.00639055 | ||||
| Claim | 13804055 | 1555 days ago | IN | 0 ETH | 0.00600175 | ||||
| Claim | 13796180 | 1556 days ago | IN | 0 ETH | 0.00450301 | ||||
| Claim | 13796141 | 1556 days ago | IN | 0 ETH | 0.00514925 | ||||
| Claim | 13788736 | 1557 days ago | IN | 0 ETH | 0.00684649 | ||||
| Claim | 13788220 | 1558 days ago | IN | 0 ETH | 0.00449261 | ||||
| Claim | 13784470 | 1558 days ago | IN | 0 ETH | 0.00506619 | ||||
| Claim | 13784458 | 1558 days ago | IN | 0 ETH | 0.00425463 | ||||
| Claim | 13784441 | 1558 days ago | IN | 0 ETH | 0.00511117 | ||||
| Claim | 13783108 | 1558 days ago | IN | 0 ETH | 0.0036692 | ||||
| Claim | 13782920 | 1558 days ago | IN | 0 ETH | 0.00629182 | ||||
| Claim | 13781213 | 1559 days ago | IN | 0 ETH | 0.00771629 | ||||
| Claim | 13780793 | 1559 days ago | IN | 0 ETH | 0.00886713 | ||||
| Claim | 13780540 | 1559 days ago | IN | 0 ETH | 0.01240229 | ||||
| Claim | 13779991 | 1559 days ago | IN | 0 ETH | 0.00758748 | ||||
| Claim | 13779234 | 1559 days ago | IN | 0 ETH | 0.00840301 | ||||
| Claim | 13779053 | 1559 days ago | IN | 0 ETH | 0.00741154 | ||||
| Claim | 13779020 | 1559 days ago | IN | 0 ETH | 0.00894374 | ||||
| Claim | 13778945 | 1559 days ago | IN | 0 ETH | 0.00825907 | ||||
| Claim | 13778842 | 1559 days ago | IN | 0 ETH | 0.0116973 | ||||
| Claim | 13778814 | 1559 days ago | IN | 0 ETH | 0.00841787 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
NFT721AirdropV1
Compiler Version
v0.8.3+commit.8d00100c
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity =0.8.3;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@shoyunft/contracts/contracts/interfaces/INFT721.sol";
import "@shoyunft/contracts/contracts/interfaces/INFTLockable.sol";
import "./MerkleProof.sol";
contract NFT721AirdropV1 is Ownable, MerkleProof {
struct TokenIdRange {
uint256 from;
uint256 length;
}
address public immutable nftContract;
mapping(bytes32 => TokenIdRange) public tokenIdRanges;
mapping(bytes32 => uint256) public tokensClaimed;
mapping(bytes32 => mapping(address => bool)) public claimed;
event AddMerkleRoot(bytes32 indexed merkleRoot, uint256 indexed fromTokenId, uint256 length);
event Claim(bytes32 indexed merkleRoot, uint256 indexed tokenId, address indexed account);
constructor(
address _nftContract,
bytes32 merkleRoot,
uint256 fromTokenId,
uint256 length
) {
nftContract = _nftContract;
if (merkleRoot != bytes32("")) {
tokenIdRanges[merkleRoot].from = fromTokenId;
tokenIdRanges[merkleRoot].length = length;
emit AddMerkleRoot(merkleRoot, fromTokenId, length);
}
}
function setRoyaltyFeeRecipient(address _royaltyFeeRecipient) external onlyOwner {
INFT721(nftContract).setRoyaltyFeeRecipient(_royaltyFeeRecipient);
}
function setRoyaltyFee(uint8 _royaltyFee) external onlyOwner {
INFT721(nftContract).setRoyaltyFee(_royaltyFee);
}
function setTokenURI(uint256 tokenId, string memory uri) external onlyOwner {
INFT721(nftContract).setTokenURI(tokenId, uri);
}
function setBaseURI(string memory baseURI) external onlyOwner {
INFT721(nftContract).setBaseURI(baseURI);
}
function parkTokenIds(uint256 toTokenId) external onlyOwner {
INFT721(nftContract).parkTokenIds(toTokenId);
}
function mintBatch(
address to,
uint256[] calldata tokenIds,
bytes calldata data
) external onlyOwner {
INFT721(nftContract).mintBatch(to, tokenIds, data);
}
function burnBatch(uint256[] calldata tokenIds) external onlyOwner {
INFT721(nftContract).burnBatch(tokenIds);
}
function setLocked(bool locked) external onlyOwner {
INFTLockable(nftContract).setLocked(locked);
}
function addMerkleRoot(
bytes32 merkleRoot,
uint256 fromTokenId,
uint256 length
) external onlyOwner {
require(tokenIdRanges[merkleRoot].length == 0, "SHOYU: DUPLICATE_ROOT");
tokenIdRanges[merkleRoot].from = fromTokenId;
tokenIdRanges[merkleRoot].length = length;
emit AddMerkleRoot(merkleRoot, fromTokenId, length);
}
function claim(bytes32 merkleRoot, bytes32[] calldata merkleProof) external {
TokenIdRange storage range = tokenIdRanges[merkleRoot];
uint256 length = range.length;
require(length > 0, "SHOYU: INVALID_ROOT");
require(!claimed[merkleRoot][msg.sender], "SHOYU: FORBIDDEN");
require(verify(merkleRoot, keccak256(abi.encodePacked(msg.sender)), merkleProof), "SHOYU: INVALID_PROOF");
uint256 tokens = tokensClaimed[merkleRoot];
require(tokens < length, "SHOYU: ALL_CLAIMED");
uint256 tokenId = range.from + tokens;
claimed[merkleRoot][msg.sender] = true;
tokensClaimed[merkleRoot] += 1;
INFT721(nftContract).mint(msg.sender, tokenId, "");
emit Claim(merkleRoot, tokenId, msg.sender);
}
}// SPDX-License-Identifier: MIT
pragma solidity =0.8.3;
contract MerkleProof {
function verify(
bytes32 root,
bytes32 leaf,
bytes32[] memory proof
) public 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: MIT
pragma solidity =0.8.3;
interface INFTLockable {
event SetLocked(bool locked);
function locked() external view returns (bool);
function setLocked(bool _locked) external;
}// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0;
import "./IBaseNFT721.sol";
import "./IBaseExchange.sol";
interface INFT721 is IBaseNFT721, IBaseExchange {
event SetRoyaltyFeeRecipient(address recipient);
event SetRoyaltyFee(uint8 fee);
function initialize(
address _owner,
string calldata _name,
string calldata _symbol,
uint256[] calldata tokenIds,
address royaltyFeeRecipient,
uint8 royaltyFee
) external;
function initialize(
address _owner,
string calldata _name,
string calldata _symbol,
uint256 toTokenId,
address royaltyFeeRecipient,
uint8 royaltyFee
) external;
function DOMAIN_SEPARATOR() external view override(IBaseNFT721, IBaseExchange) returns (bytes32);
function factory() external view override(IBaseNFT721, IBaseExchange) returns (address);
function setRoyaltyFeeRecipient(address _royaltyFeeRecipient) external;
function setRoyaltyFee(uint8 _royaltyFee) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_setOwner(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0;
import "../libraries/Orders.sol";
interface IBaseExchange {
event Cancel(bytes32 indexed hash);
event Claim(
bytes32 indexed hash,
address bidder,
uint256 amount,
uint256 price,
address recipient,
address referrer
);
event Bid(bytes32 indexed hash, address bidder, uint256 amount, uint256 price, address recipient, address referrer);
event UpdateApprovedBidHash(
address indexed proxy,
bytes32 indexed askHash,
address indexed bidder,
bytes32 bidHash
);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function factory() external view returns (address);
function canTrade(address token) external view returns (bool);
function bestBid(bytes32 hash)
external
view
returns (
address bidder,
uint256 amount,
uint256 price,
address recipient,
address referrer,
uint256 blockNumber
);
function isCancelledOrClaimed(bytes32 hash) external view returns (bool);
function amountFilled(bytes32 hash) external view returns (uint256);
function approvedBidHash(
address proxy,
bytes32 askHash,
address bidder
) external view returns (bytes32 bidHash);
function cancel(Orders.Ask memory order) external;
function updateApprovedBidHash(
bytes32 askHash,
address bidder,
bytes32 bidHash
) external;
function bid(Orders.Ask memory askOrder, Orders.Bid memory bidOrder) external returns (bool executed);
function bid(
Orders.Ask memory askOrder,
uint256 bidAmount,
uint256 bidPrice,
address bidRecipient,
address bidReferrer
) external returns (bool executed);
function claim(Orders.Ask memory order) external;
}// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0;
import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";
import "./IOwnable.sol";
interface IBaseNFT721 is IERC721, IERC721Metadata, IOwnable {
event SetTokenURI(uint256 indexed tokenId, string uri);
event SetBaseURI(string uri);
event ParkTokenIds(uint256 toTokenId);
event Burn(uint256 indexed tokenId, uint256 indexed label, bytes32 data);
function PERMIT_TYPEHASH() external view returns (bytes32);
function PERMIT_ALL_TYPEHASH() external view returns (bytes32);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function factory() external view returns (address);
function nonces(uint256 tokenId) external view returns (uint256);
function noncesForAll(address account) external view returns (uint256);
function parked(uint256 tokenId) external view returns (bool);
function initialize(
string calldata name,
string calldata symbol,
address _owner
) external;
function setTokenURI(uint256 id, string memory uri) external;
function setBaseURI(string memory uri) external;
function parkTokenIds(uint256 toTokenId) external;
function mint(
address to,
uint256 tokenId,
bytes calldata data
) external;
function mintBatch(
address to,
uint256[] calldata tokenIds,
bytes calldata data
) external;
function burn(
uint256 tokenId,
uint256 label,
bytes32 data
) external;
function burnBatch(uint256[] calldata tokenIds) external;
function permit(
address spender,
uint256 tokenId,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
function permitAll(
address owner,
address spender,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0;
interface IOwnable {
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
function owner() external view returns (address);
function renounceOwnership() external;
function transferOwnership(address newOwner) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../IERC721.sol";
/**
* @title ERC-721 Non-Fungible Token Standard, optional metadata extension
* @dev See https://eips.ethereum.org/EIPS/eip-721
*/
interface IERC721Metadata is IERC721 {
/**
* @dev Returns the token collection name.
*/
function name() external view returns (string memory);
/**
* @dev Returns the token collection symbol.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.
*/
function tokenURI(uint256 tokenId) external view returns (string memory);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../../utils/introspection/IERC165.sol";
/**
* @dev Required interface of an ERC721 compliant contract.
*/
interface IERC721 is IERC165 {
/**
* @dev Emitted when `tokenId` token is transferred from `from` to `to`.
*/
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
*/
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
*/
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
/**
* @dev Returns the number of tokens in ``owner``'s account.
*/
function balanceOf(address owner) external view returns (uint256 balance);
/**
* @dev Returns the owner of the `tokenId` token.
*
* Requirements:
*
* - `tokenId` must exist.
*/
function ownerOf(uint256 tokenId) external view returns (address owner);
/**
* @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
* are aware of the ERC721 protocol to prevent tokens from being forever locked.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must exist and be owned by `from`.
* - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.
* - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
*
* Emits a {Transfer} event.
*/
function safeTransferFrom(
address from,
address to,
uint256 tokenId
) external;
/**
* @dev Transfers `tokenId` token from `from` to `to`.
*
* WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must be owned by `from`.
* - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address from,
address to,
uint256 tokenId
) external;
/**
* @dev Gives permission to `to` to transfer `tokenId` token to another account.
* The approval is cleared when the token is transferred.
*
* Only a single account can be approved at a time, so approving the zero address clears previous approvals.
*
* Requirements:
*
* - The caller must own the token or be an approved operator.
* - `tokenId` must exist.
*
* Emits an {Approval} event.
*/
function approve(address to, uint256 tokenId) external;
/**
* @dev Returns the account approved for `tokenId` token.
*
* Requirements:
*
* - `tokenId` must exist.
*/
function getApproved(uint256 tokenId) external view returns (address operator);
/**
* @dev Approve or remove `operator` as an operator for the caller.
* Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
*
* Requirements:
*
* - The `operator` cannot be the caller.
*
* Emits an {ApprovalForAll} event.
*/
function setApprovalForAll(address operator, bool _approved) external;
/**
* @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
*
* See {setApprovalForAll}
*/
function isApprovedForAll(address owner, address operator) external view returns (bool);
/**
* @dev Safely transfers `tokenId` token from `from` to `to`.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must exist and be owned by `from`.
* - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
* - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
*
* Emits a {Transfer} event.
*/
function safeTransferFrom(
address from,
address to,
uint256 tokenId,
bytes calldata data
) external;
}// SPDX-License-Identifier: MIT
pragma solidity =0.8.3;
library Orders {
// keccak256("Ask(address signer,address proxy,address token,uint256 tokenId,uint256 amount,address strategy,address currency,address recipient,uint256 deadline,bytes params)")
bytes32 internal constant ASK_TYPEHASH = 0x5fbc9a24e1532fa5245d1ec2dc5592849ae97ac5475f361b1a1f7a6e2ac9b2fd;
// keccak256("Bid(bytes32 askHash,address signer,uint256 amount,uint256 price,address recipient,address referrer)")
bytes32 internal constant BID_TYPEHASH = 0xb98e1dc48988064e6dfb813618609d7da80a8841e5f277039788ac4b50d497b2;
struct Ask {
address signer;
address proxy;
address token;
uint256 tokenId;
uint256 amount;
address strategy;
address currency;
address recipient;
uint256 deadline;
bytes params;
uint8 v;
bytes32 r;
bytes32 s;
}
struct Bid {
bytes32 askHash;
address signer;
uint256 amount;
uint256 price;
address recipient;
address referrer;
uint8 v;
bytes32 r;
bytes32 s;
}
function hash(Ask memory ask) internal pure returns (bytes32) {
return
keccak256(
abi.encode(
ASK_TYPEHASH,
ask.signer,
ask.proxy,
ask.token,
ask.tokenId,
ask.amount,
ask.strategy,
ask.currency,
ask.recipient,
ask.deadline,
keccak256(ask.params)
)
);
}
function hash(Bid memory bid) internal pure returns (bytes32) {
return
keccak256(
abi.encode(BID_TYPEHASH, bid.askHash, bid.signer, bid.amount, bid.price, bid.recipient, bid.referrer)
);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_nftContract","type":"address"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"length","type":"uint256"}],"name":"AddMerkleRoot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"addMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"burnBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"mintBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nftContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"toTokenId","type":"uint256"}],"name":"parkTokenIds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"locked","type":"bool"}],"name":"setLocked","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_royaltyFee","type":"uint8"}],"name":"setRoyaltyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_royaltyFeeRecipient","type":"address"}],"name":"setRoyaltyFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"uri","type":"string"}],"name":"setTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"tokenIdRanges","outputs":[{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"tokensClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"leaf","type":"bytes32"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}]Contract Creation Code
60a060405234801561001057600080fd5b506040516114ce3803806114ce83398101604081905261002f916100ff565b610038336100af565b6001600160601b0319606085901b1660805282156100a6576000838152600160208190526040918290208481550182905551829084907f7246d17922fa25eccdb060b1fe57ed0764b9da770c649b1c15d6069a7c38d0dc9061009d9085815260200190565b60405180910390a35b50505050610148565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060008060808587031215610114578384fd5b84516001600160a01b038116811461012a578485fd5b60208601516040870151606090970151919890975090945092505050565b60805160601c6113296101a5600039600081816102790152818161034c015281816103fa015281816104a3015281816106180152818161068f0152818161070f01528181610890015281816109080152610c1d01526113296000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638d4e7f42116100a2578063d56d229d11610071578063d56d229d14610274578063dfcae6221461029b578063e4623c1b146102c9578063f2fde38b146102dc578063f5c05eb7146102ef57610116565b80638d4e7f42146101fb5780638da5cb5b1461020e57806392a5f6d514610233578063c975e3741461026157610116565b80633423e548116100e95780633423e5481461019757806355f804b3146101ba5780635f7ef2fa146101cd5780636ef8e02d146101e0578063715018a6146101f357610116565b8063162094c41461011b5780631b3c0b5d14610130578063211e28b6146101715780632286248214610184575b600080fd5b61012e6101293660046110b0565b610302565b005b61015761013e366004610f00565b6001602081905260009182526040909120805491015482565b604080519283526020830191909152015b60405180910390f35b61012e61017f366004610ee0565b6103b9565b61012e610192366004610dfb565b610462565b6101aa6101a5366004610f8d565b610519565b6040519015158152602001610168565b61012e6101c8366004611075565b6105d7565b61012e6101db3660046110f5565b61064d565b61012e6101ee366004610dda565b6106c6565b61012e61073e565b61012e61020936600461104a565b610774565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610168565b610253610241366004610f00565b60026020526000908152604090205481565b604051908152602001610168565b61012e61026f366004610f00565b610850565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa6102a9366004610f18565b600360209081526000928352604080842090915290825290205460ff1681565b61012e6102d7366004610ea0565b6108c7565b61012e6102ea366004610dda565b61093f565b61012e6102fd366004610f43565b6109da565b6000546001600160a01b031633146103355760405162461bcd60e51b815260040161032c90611215565b60405180910390fd5b604051630588253160e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063162094c490610383908590859060040161124a565b600060405180830381600087803b15801561039d57600080fd5b505af11580156103b1573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146103e35760405162461bcd60e51b815260040161032c90611215565b60405163108f145b60e11b815281151560048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063211e28b6906024015b600060405180830381600087803b15801561044757600080fd5b505af115801561045b573d6000803e3d6000fd5b5050505050565b6000546001600160a01b0316331461048c5760405162461bcd60e51b815260040161032c90611215565b604051631143124160e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906322862482906104e09088908890889088908890600401611195565b600060405180830381600087803b1580156104fa57600080fd5b505af115801561050e573d6000803e3d6000fd5b505050505050505050565b600082815b83518110156105cc57600084828151811061054957634e487b7160e01b600052603260045260246000fd5b602002602001015190508083101561058c5760408051602081018590529081018290526060016040516020818303038152906040528051906020012092506105b9565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806105c4816112ac565b91505061051e565b509093149392505050565b6000546001600160a01b031633146106015760405162461bcd60e51b815260040161032c90611215565b6040516355f804b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906355f804b39061042d908490600401611202565b6000546001600160a01b031633146106775760405162461bcd60e51b815260040161032c90611215565b604051632fbf797d60e11b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635f7ef2fa9060240161042d565b6000546001600160a01b031633146106f05760405162461bcd60e51b815260040161032c90611215565b604051636ef8e02d60e01b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636ef8e02d9060240161042d565b6000546001600160a01b031633146107685760405162461bcd60e51b815260040161032c90611215565b6107726000610cb9565b565b6000546001600160a01b0316331461079e5760405162461bcd60e51b815260040161032c90611215565b60008381526001602081905260409091200154156107f65760405162461bcd60e51b815260206004820152601560248201527414d213d6554e88111554131250d0551157d493d3d5605a1b604482015260640161032c565b6000838152600160208190526040918290208481550182905551829084907f7246d17922fa25eccdb060b1fe57ed0764b9da770c649b1c15d6069a7c38d0dc906108439085815260200190565b60405180910390a3505050565b6000546001600160a01b0316331461087a5760405162461bcd60e51b815260040161032c90611215565b60405163325d78dd60e21b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c975e3749060240161042d565b6000546001600160a01b031633146108f15760405162461bcd60e51b815260040161032c90611215565b60405163e4623c1b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4623c1b9061038390859085906004016111ee565b6000546001600160a01b031633146109695760405162461bcd60e51b815260040161032c90611215565b6001600160a01b0381166109ce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161032c565b6109d781610cb9565b50565b60008381526001602081905260409091209081015480610a325760405162461bcd60e51b815260206004820152601360248201527214d213d6554e881253959053125117d493d3d5606a1b604482015260640161032c565b600085815260036020908152604080832033845290915290205460ff1615610a8f5760405162461bcd60e51b815260206004820152601060248201526f29a427acaa9d102327a92124a22222a760811b604482015260640161032c565b6040516bffffffffffffffffffffffff193360601b166020820152610b029086906034016040516020818303038152906040528051906020012086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061051992505050565b610b455760405162461bcd60e51b815260206004820152601460248201527329a427acaa9d1024a72b20a624a22fa82927a7a360611b604482015260640161032c565b600085815260026020526040902054818110610b985760405162461bcd60e51b815260206004820152601260248201527114d213d6554e8810531317d0d3105253515160721b604482015260640161032c565b8254600090610ba8908390611294565b60008881526003602090815260408083203384528252808320805460ff191660019081179091558b84526002909252822080549394509092909190610bee908490611294565b90915550506040516394d008ef60e01b81523360048201526024810182905260606044820152600060648201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906394d008ef90608401600060405180830381600087803b158015610c6957600080fd5b505af1158015610c7d573d6000803e3d6000fd5b505060405133925083915089907fa1fe64f0a663f9c2fd00dde271e65f318fc775c9593f8659deca499c00b47c4290600090a450505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610d2057600080fd5b919050565b60008083601f840112610d36578182fd5b50813567ffffffffffffffff811115610d4d578182fd5b6020830191508360208260051b8501011115610d6857600080fd5b9250929050565b600082601f830112610d7f578081fd5b813567ffffffffffffffff811115610d9957610d996112dd565b610dac601f8201601f1916602001611263565b818152846020838601011115610dc0578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215610deb578081fd5b610df482610d09565b9392505050565b600080600080600060608688031215610e12578081fd5b610e1b86610d09565b9450602086013567ffffffffffffffff80821115610e37578283fd5b610e4389838a01610d25565b90965094506040880135915080821115610e5b578283fd5b818801915088601f830112610e6e578283fd5b813581811115610e7c578384fd5b896020828501011115610e8d578384fd5b9699959850939650602001949392505050565b60008060208385031215610eb2578182fd5b823567ffffffffffffffff811115610ec8578283fd5b610ed485828601610d25565b90969095509350505050565b600060208284031215610ef1578081fd5b81358015158114610df4578182fd5b600060208284031215610f11578081fd5b5035919050565b60008060408385031215610f2a578182fd5b82359150610f3a60208401610d09565b90509250929050565b600080600060408486031215610f57578283fd5b83359250602084013567ffffffffffffffff811115610f74578283fd5b610f8086828701610d25565b9497909650939450505050565b600080600060608486031215610fa1578283fd5b833592506020808501359250604085013567ffffffffffffffff80821115610fc7578384fd5b818701915087601f830112610fda578384fd5b813581811115610fec57610fec6112dd565b8060051b9150610ffd848301611263565b8181528481019084860184860187018c1015611017578788fd5b8795505b8386101561103957803583526001959095019491860191860161101b565b508096505050505050509250925092565b60008060006060848603121561105e578283fd5b505081359360208301359350604090920135919050565b600060208284031215611086578081fd5b813567ffffffffffffffff81111561109c578182fd5b6110a884828501610d6f565b949350505050565b600080604083850312156110c2578182fd5b82359150602083013567ffffffffffffffff8111156110df578182fd5b6110eb85828601610d6f565b9150509250929050565b600060208284031215611106578081fd5b813560ff81168114610df4578182fd5b81835260006001600160fb1b0383111561112e578081fd5b8260051b80836020870137939093016020019283525090919050565b60008151808452815b8181101561116f57602081850181015186830182015201611153565b818111156111805782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03861681526060602082018190526000906111ba9083018688611116565b82810360408401528381528385602083013781602085830101526020601f19601f8601168201019150509695505050505050565b6000602082526110a8602083018486611116565b600060208252610df4602083018461114a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000838252604060208301526110a8604083018461114a565b604051601f8201601f1916810167ffffffffffffffff8111828210171561128c5761128c6112dd565b604052919050565b600082198211156112a7576112a76112c7565b500190565b60006000198214156112c0576112c06112c7565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220c6c34f49687bd0fc2795f8c5e640d692819b0ce69e518c2bee71feb8130b834864736f6c63430008030033000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd09905ab2ea2c749ba74f927c7deca691a733c66b360c2d58f54a6f3dc83b3e72d10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012c
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c80638d4e7f42116100a2578063d56d229d11610071578063d56d229d14610274578063dfcae6221461029b578063e4623c1b146102c9578063f2fde38b146102dc578063f5c05eb7146102ef57610116565b80638d4e7f42146101fb5780638da5cb5b1461020e57806392a5f6d514610233578063c975e3741461026157610116565b80633423e548116100e95780633423e5481461019757806355f804b3146101ba5780635f7ef2fa146101cd5780636ef8e02d146101e0578063715018a6146101f357610116565b8063162094c41461011b5780631b3c0b5d14610130578063211e28b6146101715780632286248214610184575b600080fd5b61012e6101293660046110b0565b610302565b005b61015761013e366004610f00565b6001602081905260009182526040909120805491015482565b604080519283526020830191909152015b60405180910390f35b61012e61017f366004610ee0565b6103b9565b61012e610192366004610dfb565b610462565b6101aa6101a5366004610f8d565b610519565b6040519015158152602001610168565b61012e6101c8366004611075565b6105d7565b61012e6101db3660046110f5565b61064d565b61012e6101ee366004610dda565b6106c6565b61012e61073e565b61012e61020936600461104a565b610774565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610168565b610253610241366004610f00565b60026020526000908152604090205481565b604051908152602001610168565b61012e61026f366004610f00565b610850565b61021b7f000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd0981565b6101aa6102a9366004610f18565b600360209081526000928352604080842090915290825290205460ff1681565b61012e6102d7366004610ea0565b6108c7565b61012e6102ea366004610dda565b61093f565b61012e6102fd366004610f43565b6109da565b6000546001600160a01b031633146103355760405162461bcd60e51b815260040161032c90611215565b60405180910390fd5b604051630588253160e21b81526001600160a01b037f000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd09169063162094c490610383908590859060040161124a565b600060405180830381600087803b15801561039d57600080fd5b505af11580156103b1573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146103e35760405162461bcd60e51b815260040161032c90611215565b60405163108f145b60e11b815281151560048201527f000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd096001600160a01b03169063211e28b6906024015b600060405180830381600087803b15801561044757600080fd5b505af115801561045b573d6000803e3d6000fd5b5050505050565b6000546001600160a01b0316331461048c5760405162461bcd60e51b815260040161032c90611215565b604051631143124160e11b81526001600160a01b037f000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd0916906322862482906104e09088908890889088908890600401611195565b600060405180830381600087803b1580156104fa57600080fd5b505af115801561050e573d6000803e3d6000fd5b505050505050505050565b600082815b83518110156105cc57600084828151811061054957634e487b7160e01b600052603260045260246000fd5b602002602001015190508083101561058c5760408051602081018590529081018290526060016040516020818303038152906040528051906020012092506105b9565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806105c4816112ac565b91505061051e565b509093149392505050565b6000546001600160a01b031633146106015760405162461bcd60e51b815260040161032c90611215565b6040516355f804b360e01b81526001600160a01b037f000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd0916906355f804b39061042d908490600401611202565b6000546001600160a01b031633146106775760405162461bcd60e51b815260040161032c90611215565b604051632fbf797d60e11b815260ff821660048201527f000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd096001600160a01b031690635f7ef2fa9060240161042d565b6000546001600160a01b031633146106f05760405162461bcd60e51b815260040161032c90611215565b604051636ef8e02d60e01b81526001600160a01b0382811660048301527f000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd091690636ef8e02d9060240161042d565b6000546001600160a01b031633146107685760405162461bcd60e51b815260040161032c90611215565b6107726000610cb9565b565b6000546001600160a01b0316331461079e5760405162461bcd60e51b815260040161032c90611215565b60008381526001602081905260409091200154156107f65760405162461bcd60e51b815260206004820152601560248201527414d213d6554e88111554131250d0551157d493d3d5605a1b604482015260640161032c565b6000838152600160208190526040918290208481550182905551829084907f7246d17922fa25eccdb060b1fe57ed0764b9da770c649b1c15d6069a7c38d0dc906108439085815260200190565b60405180910390a3505050565b6000546001600160a01b0316331461087a5760405162461bcd60e51b815260040161032c90611215565b60405163325d78dd60e21b8152600481018290527f000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd096001600160a01b03169063c975e3749060240161042d565b6000546001600160a01b031633146108f15760405162461bcd60e51b815260040161032c90611215565b60405163e4623c1b60e01b81526001600160a01b037f000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd09169063e4623c1b9061038390859085906004016111ee565b6000546001600160a01b031633146109695760405162461bcd60e51b815260040161032c90611215565b6001600160a01b0381166109ce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161032c565b6109d781610cb9565b50565b60008381526001602081905260409091209081015480610a325760405162461bcd60e51b815260206004820152601360248201527214d213d6554e881253959053125117d493d3d5606a1b604482015260640161032c565b600085815260036020908152604080832033845290915290205460ff1615610a8f5760405162461bcd60e51b815260206004820152601060248201526f29a427acaa9d102327a92124a22222a760811b604482015260640161032c565b6040516bffffffffffffffffffffffff193360601b166020820152610b029086906034016040516020818303038152906040528051906020012086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061051992505050565b610b455760405162461bcd60e51b815260206004820152601460248201527329a427acaa9d1024a72b20a624a22fa82927a7a360611b604482015260640161032c565b600085815260026020526040902054818110610b985760405162461bcd60e51b815260206004820152601260248201527114d213d6554e8810531317d0d3105253515160721b604482015260640161032c565b8254600090610ba8908390611294565b60008881526003602090815260408083203384528252808320805460ff191660019081179091558b84526002909252822080549394509092909190610bee908490611294565b90915550506040516394d008ef60e01b81523360048201526024810182905260606044820152600060648201527f000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd096001600160a01b0316906394d008ef90608401600060405180830381600087803b158015610c6957600080fd5b505af1158015610c7d573d6000803e3d6000fd5b505060405133925083915089907fa1fe64f0a663f9c2fd00dde271e65f318fc775c9593f8659deca499c00b47c4290600090a450505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610d2057600080fd5b919050565b60008083601f840112610d36578182fd5b50813567ffffffffffffffff811115610d4d578182fd5b6020830191508360208260051b8501011115610d6857600080fd5b9250929050565b600082601f830112610d7f578081fd5b813567ffffffffffffffff811115610d9957610d996112dd565b610dac601f8201601f1916602001611263565b818152846020838601011115610dc0578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215610deb578081fd5b610df482610d09565b9392505050565b600080600080600060608688031215610e12578081fd5b610e1b86610d09565b9450602086013567ffffffffffffffff80821115610e37578283fd5b610e4389838a01610d25565b90965094506040880135915080821115610e5b578283fd5b818801915088601f830112610e6e578283fd5b813581811115610e7c578384fd5b896020828501011115610e8d578384fd5b9699959850939650602001949392505050565b60008060208385031215610eb2578182fd5b823567ffffffffffffffff811115610ec8578283fd5b610ed485828601610d25565b90969095509350505050565b600060208284031215610ef1578081fd5b81358015158114610df4578182fd5b600060208284031215610f11578081fd5b5035919050565b60008060408385031215610f2a578182fd5b82359150610f3a60208401610d09565b90509250929050565b600080600060408486031215610f57578283fd5b83359250602084013567ffffffffffffffff811115610f74578283fd5b610f8086828701610d25565b9497909650939450505050565b600080600060608486031215610fa1578283fd5b833592506020808501359250604085013567ffffffffffffffff80821115610fc7578384fd5b818701915087601f830112610fda578384fd5b813581811115610fec57610fec6112dd565b8060051b9150610ffd848301611263565b8181528481019084860184860187018c1015611017578788fd5b8795505b8386101561103957803583526001959095019491860191860161101b565b508096505050505050509250925092565b60008060006060848603121561105e578283fd5b505081359360208301359350604090920135919050565b600060208284031215611086578081fd5b813567ffffffffffffffff81111561109c578182fd5b6110a884828501610d6f565b949350505050565b600080604083850312156110c2578182fd5b82359150602083013567ffffffffffffffff8111156110df578182fd5b6110eb85828601610d6f565b9150509250929050565b600060208284031215611106578081fd5b813560ff81168114610df4578182fd5b81835260006001600160fb1b0383111561112e578081fd5b8260051b80836020870137939093016020019283525090919050565b60008151808452815b8181101561116f57602081850181015186830182015201611153565b818111156111805782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03861681526060602082018190526000906111ba9083018688611116565b82810360408401528381528385602083013781602085830101526020601f19601f8601168201019150509695505050505050565b6000602082526110a8602083018486611116565b600060208252610df4602083018461114a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000838252604060208301526110a8604083018461114a565b604051601f8201601f1916810167ffffffffffffffff8111828210171561128c5761128c6112dd565b604052919050565b600082198211156112a7576112a76112c7565b500190565b60006000198214156112c0576112c06112c7565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220c6c34f49687bd0fc2795f8c5e640d692819b0ce69e518c2bee71feb8130b834864736f6c63430008030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd09905ab2ea2c749ba74f927c7deca691a733c66b360c2d58f54a6f3dc83b3e72d10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012c
-----Decoded View---------------
Arg [0] : _nftContract (address): 0xb81342b7DCc746e25A98C25846116b0a7Be6CD09
Arg [1] : merkleRoot (bytes32): 0x905ab2ea2c749ba74f927c7deca691a733c66b360c2d58f54a6f3dc83b3e72d1
Arg [2] : fromTokenId (uint256): 0
Arg [3] : length (uint256): 300
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000b81342b7dcc746e25a98c25846116b0a7be6cd09
Arg [1] : 905ab2ea2c749ba74f927c7deca691a733c66b360c2d58f54a6f3dc83b3e72d1
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 000000000000000000000000000000000000000000000000000000000000012c
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.