Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 555 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 14594225 | 847 days ago | IN | 0 ETH | 0.00237027 | ||||
Claim | 14594199 | 847 days ago | IN | 0 ETH | 0.00242827 | ||||
Claim | 14589707 | 848 days ago | IN | 0 ETH | 0.00281398 | ||||
Claim | 14338044 | 887 days ago | IN | 0 ETH | 0.0028399 | ||||
Claim | 14223225 | 905 days ago | IN | 0 ETH | 0.00299824 | ||||
Claim | 14223200 | 905 days ago | IN | 0 ETH | 0.00325716 | ||||
Claim | 14223181 | 905 days ago | IN | 0 ETH | 0.00315918 | ||||
Claim | 14223148 | 905 days ago | IN | 0 ETH | 0.00371296 | ||||
Claim | 14223084 | 905 days ago | IN | 0 ETH | 0.00364807 | ||||
Claim | 14223045 | 905 days ago | IN | 0 ETH | 0.00295033 | ||||
Claim | 14223023 | 905 days ago | IN | 0 ETH | 0.00361937 | ||||
Claim | 14222959 | 905 days ago | IN | 0 ETH | 0.00317756 | ||||
Claim | 14222850 | 905 days ago | IN | 0 ETH | 0.0036311 | ||||
Claim | 14007777 | 938 days ago | IN | 0 ETH | 0.01275917 | ||||
Claim | 14007765 | 938 days ago | IN | 0 ETH | 0.01212562 | ||||
Claim | 13933255 | 949 days ago | IN | 0 ETH | 0.01014627 | ||||
Claim | 13897926 | 955 days ago | IN | 0 ETH | 0.00551406 | ||||
Claim | 13884336 | 957 days ago | IN | 0 ETH | 0.00843543 | ||||
Claim | 13832063 | 965 days ago | IN | 0 ETH | 0.00448849 | ||||
Claim | 13773025 | 974 days ago | IN | 0 ETH | 0.0069531 | ||||
Claim | 13755260 | 977 days ago | IN | 0 ETH | 0.01204624 | ||||
Claim | 13750495 | 978 days ago | IN | 0 ETH | 0.00724474 | ||||
Claim | 13731597 | 981 days ago | IN | 0 ETH | 0.01072693 | ||||
Claim | 13725458 | 982 days ago | IN | 0 ETH | 0.00771125 | ||||
Set Locked | 13722308 | 982 days ago | IN | 0 ETH | 0.00715531 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
NFT1155AirdropV1
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/INFT1155.sol"; import "@shoyunft/contracts/contracts/interfaces/INFTLockable.sol"; import "./MerkleProof.sol"; contract NFT1155AirdropV1 is Ownable, MerkleProof { address public immutable nftContract; mapping(uint256 => bytes32) public merkleRoots; mapping(bytes32 => mapping(address => bool)) public claimed; event AddMerkleRoot(bytes32 indexed merkleRoot, uint256 indexed tokenId); event Claim(bytes32 indexed merkleRoot, uint256 indexed tokenId, address indexed account); constructor( address _nftContract, bytes32 merkleRoot, uint256 tokenId ) { nftContract = _nftContract; if (merkleRoot != bytes32("")) { merkleRoots[tokenId] = merkleRoot; emit AddMerkleRoot(merkleRoot, tokenId); } } function setRoyaltyFeeRecipient(address _royaltyFeeRecipient) external onlyOwner { INFT1155(nftContract).setRoyaltyFeeRecipient(_royaltyFeeRecipient); } function setRoyaltyFee(uint8 _royaltyFee) external onlyOwner { INFT1155(nftContract).setRoyaltyFee(_royaltyFee); } function setURI(uint256 tokenId, string memory uri) external onlyOwner { INFT1155(nftContract).setURI(tokenId, uri); } function setBaseURI(string memory baseURI) external onlyOwner { INFT1155(nftContract).setBaseURI(baseURI); } function setLocked(bool locked) external onlyOwner { INFTLockable(nftContract).setLocked(locked); } function mintBatch( address to, uint256[] calldata tokenIds, uint256[] calldata amounts, bytes calldata data ) external onlyOwner { INFT1155(nftContract).mintBatch(to, tokenIds, amounts, data); } function burnBatch(uint256[] calldata tokenIds, uint256[] calldata amounts) external onlyOwner { INFT1155(nftContract).burnBatch(tokenIds, amounts); } function addMerkleRoot(bytes32 merkleRoot, uint256 tokenId) external onlyOwner { require(merkleRoots[tokenId] == bytes32(""), "SHOYU: DUPLICATE_ROOT"); merkleRoots[tokenId] = merkleRoot; emit AddMerkleRoot(merkleRoot, tokenId); } function claim( bytes32 merkleRoot, uint256 tokenId, bytes32[] calldata merkleProof ) external { require(merkleRoots[tokenId] == merkleRoot, "SHOYU: INVALID_ROOT"); require(!claimed[merkleRoot][msg.sender], "SHOYU: FORBIDDEN"); require(verify(merkleRoot, keccak256(abi.encodePacked(msg.sender)), merkleProof), "SHOYU: INVALID_PROOF"); claimed[merkleRoot][msg.sender] = true; INFT1155(nftContract).mint(msg.sender, tokenId, 1, ""); 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 "./IBaseNFT1155.sol"; import "./IBaseExchange.sol"; interface INFT1155 is IBaseNFT1155, IBaseExchange { event SetRoyaltyFeeRecipient(address recipient); event SetRoyaltyFee(uint8 fee); function initialize( address _owner, uint256[] calldata tokenIds, uint256[] calldata amounts, address royaltyFeeRecipient, uint8 royaltyFee ) external; function DOMAIN_SEPARATOR() external view override(IBaseNFT1155, IBaseExchange) returns (bytes32); function factory() external view override(IBaseNFT1155, 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/ERC1155/IERC1155.sol"; import "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol"; import "./IOwnable.sol"; interface IBaseNFT1155 is IERC1155, IERC1155MetadataURI, IOwnable { event SetURI(uint256 indexed id, string uri); event SetBaseURI(string uri); event Burn(uint256 indexed tokenId, uint256 amount, uint256 indexed label, bytes32 data); function PERMIT_TYPEHASH() external view returns (bytes32); function DOMAIN_SEPARATOR() external view returns (bytes32); function factory() external view returns (address); function nonces(address account) external view returns (uint256); function initialize(address _owner) external; function setURI(uint256 id, string memory uri) external; function setBaseURI(string memory baseURI) external; function mint( address to, uint256 tokenId, uint256 amount, bytes calldata data ) external; function mintBatch( address to, uint256[] calldata tokenIds, uint256[] calldata amounts, bytes calldata data ) external; function burn( uint256 tokenId, uint256 amount, uint256 label, bytes32 data ) external; function burnBatch(uint256[] calldata tokenIds, uint256[] calldata amounts) external; function permit( 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 "../IERC1155.sol"; /** * @dev Interface of the optional ERC1155MetadataExtension interface, as defined * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP]. * * _Available since v3.1._ */ interface IERC1155MetadataURI is IERC1155 { /** * @dev Returns the URI for token type `id`. * * If the `\{id\}` substring is present in the URI, it must be replaced by * clients with the actual token type ID. */ function uri(uint256 id) external view returns (string memory); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC1155 compliant contract, as defined in the * https://eips.ethereum.org/EIPS/eip-1155[EIP]. * * _Available since v3.1._ */ interface IERC1155 is IERC165 { /** * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. */ event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); /** * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all * transfers. */ event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values ); /** * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to * `approved`. */ event ApprovalForAll(address indexed account, address indexed operator, bool approved); /** * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. * * If an {URI} event was emitted for `id`, the standard * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value * returned by {IERC1155MetadataURI-uri}. */ event URI(string value, uint256 indexed id); /** * @dev Returns the amount of tokens of token type `id` owned by `account`. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) external view returns (uint256); /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, * * Emits an {ApprovalForAll} event. * * Requirements: * * - `operator` cannot be the caller. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. * * See {setApprovalForAll}. */ function isApprovedForAll(address account, address operator) external view returns (bool); /** * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `amount`. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. * * Emits a {TransferBatch} event. * * Requirements: * * - `ids` and `amounts` must have the same length. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the * acceptance magic value. */ function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, 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
[{"inputs":[{"internalType":"address","name":"_nftContract","type":"address"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"tokenId","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":"tokenId","type":"uint256"}],"name":"addMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"burnBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"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":"uint256","name":"","type":"uint256"}],"name":"merkleRoots","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","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":[],"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":"setURI","outputs":[],"stateMutability":"nonpayable","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
60a060405234801561001057600080fd5b506040516113bd3803806113bd83398101604081905261002f916100e4565b61003833610094565b6001600160601b0319606084901b16608052811561008c5760008181526001602052604080822084905551829184917f99bc7708c46615f77398ce0e056390cc55dc9f2382a25c76d679e9fb19f22d829190a35b505050610125565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000606084860312156100f8578283fd5b83516001600160a01b038116811461010e578384fd5b602085015160409095015190969495509392505050565b60805160601c61124261017b60003960008181610214015281816102e7015281816103a40152818161050b0152818161058201528181610602015281816106a80152818161075c0152610ae001526112426000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806383ca4b6f11610097578063de20fcbe11610066578063de20fcbe14610236578063dfcae62214610249578063f2fde38b14610277578063fa5c4e991461028a57610100565b806383ca4b6f146101c4578063862440e2146101d75780638da5cb5b146101ea578063d56d229d1461020f57610100565b80635f7ef2fa116100d35780635f7ef2fa146101685780636ef8e02d1461017b578063715018a61461018e57806371c5ecb11461019657610100565b80631f7fdffa14610105578063211e28b61461011a5780633423e5481461012d57806355f804b314610155575b600080fd5b610118610113366004610cbb565b61029d565b005b610118610128366004610df5565b610363565b61014061013b366004610e40565b61040c565b60405190151581526020015b60405180910390f35b610118610163366004610f63565b6104ca565b610118610176366004610ffb565b610540565b610118610189366004610c9a565b6105b9565b610118610631565b6101b66101a4366004610f9e565b60016020526000908152604090205481565b60405190815260200161014c565b6101186101d2366004610d8c565b610667565b6101186101e5366004610fb6565b61071b565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161014c565b6101f77f000000000000000000000000000000000000000000000000000000000000000081565b610118610244366004610efd565b6107c9565b610140610257366004610e15565b600260209081526000928352604080842090915290825290205460ff1681565b610118610285366004610c9a565b610886565b610118610298366004610f1e565b610921565b6000546001600160a01b031633146102d05760405162461bcd60e51b81526004016102c790611150565b60405180910390fd5b604051630fbfeffd60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631f7fdffa90610328908a908a908a908a908a908a908a9060040161109b565b600060405180830381600087803b15801561034257600080fd5b505af1158015610356573d6000803e3d6000fd5b5050505050505050505050565b6000546001600160a01b0316331461038d5760405162461bcd60e51b81526004016102c790611150565b60405163108f145b60e11b815281151560048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063211e28b6906024015b600060405180830381600087803b1580156103f157600080fd5b505af1158015610405573d6000803e3d6000fd5b5050505050565b600082815b83518110156104bf57600084828151811061043c57634e487b7160e01b600052603260045260246000fd5b602002602001015190508083101561047f5760408051602081018590529081018290526060016040516020818303038152906040528051906020012092506104ac565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806104b7816111cf565b915050610411565b509093149392505050565b6000546001600160a01b031633146104f45760405162461bcd60e51b81526004016102c790611150565b6040516355f804b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906355f804b3906103d790849060040161113d565b6000546001600160a01b0316331461056a5760405162461bcd60e51b81526004016102c790611150565b604051632fbf797d60e11b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635f7ef2fa906024016103d7565b6000546001600160a01b031633146105e35760405162461bcd60e51b81526004016102c790611150565b604051636ef8e02d60e01b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636ef8e02d906024016103d7565b6000546001600160a01b0316331461065b5760405162461bcd60e51b81526004016102c790611150565b6106656000610b79565b565b6000546001600160a01b031633146106915760405162461bcd60e51b81526004016102c790611150565b6040516383ca4b6f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906383ca4b6f906106e390879087908790879060040161110b565b600060405180830381600087803b1580156106fd57600080fd5b505af1158015610711573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146107455760405162461bcd60e51b81526004016102c790611150565b604051634312207160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063862440e2906107939085908590600401611185565b600060405180830381600087803b1580156107ad57600080fd5b505af11580156107c1573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146107f35760405162461bcd60e51b81526004016102c790611150565b600081815260016020526040902054156108475760405162461bcd60e51b815260206004820152601560248201527414d213d6554e88111554131250d0551157d493d3d5605a1b60448201526064016102c7565b60008181526001602052604080822084905551829184917f99bc7708c46615f77398ce0e056390cc55dc9f2382a25c76d679e9fb19f22d829190a35050565b6000546001600160a01b031633146108b05760405162461bcd60e51b81526004016102c790611150565b6001600160a01b0381166109155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c7565b61091e81610b79565b50565b60008381526001602052604090205484146109745760405162461bcd60e51b815260206004820152601360248201527214d213d6554e881253959053125117d493d3d5606a1b60448201526064016102c7565b600084815260026020908152604080832033845290915290205460ff16156109d15760405162461bcd60e51b815260206004820152601060248201526f29a427acaa9d102327a92124a22222a760811b60448201526064016102c7565b6040516bffffffffffffffffffffffff193360601b166020820152610a449085906034016040516020818303038152906040528051906020012084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061040c92505050565b610a875760405162461bcd60e51b815260206004820152601460248201527329a427acaa9d1024a72b20a624a22fa82927a7a360611b60448201526064016102c7565b6000848152600260209081526040808320338085529252808320805460ff19166001908117909155905163731133e960e01b815260048101929092526024820186905260448201526080606482015260848101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063731133e99060a401600060405180830381600087803b158015610b2c57600080fd5b505af1158015610b40573d6000803e3d6000fd5b505060405133925085915086907fa1fe64f0a663f9c2fd00dde271e65f318fc775c9593f8659deca499c00b47c4290600090a450505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610be057600080fd5b919050565b60008083601f840112610bf6578182fd5b50813567ffffffffffffffff811115610c0d578182fd5b6020830191508360208260051b8501011115610c2857600080fd5b9250929050565b600082601f830112610c3f578081fd5b813567ffffffffffffffff811115610c5957610c596111f6565b610c6c601f8201601f191660200161119e565b818152846020838601011115610c80578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215610cab578081fd5b610cb482610bc9565b9392505050565b60008060008060008060006080888a031215610cd5578283fd5b610cde88610bc9565b9650602088013567ffffffffffffffff80821115610cfa578485fd5b610d068b838c01610be5565b909850965060408a0135915080821115610d1e578485fd5b610d2a8b838c01610be5565b909650945060608a0135915080821115610d42578384fd5b818a0191508a601f830112610d55578384fd5b813581811115610d63578485fd5b8b6020828501011115610d74578485fd5b60208301945080935050505092959891949750929550565b60008060008060408587031215610da1578384fd5b843567ffffffffffffffff80821115610db8578586fd5b610dc488838901610be5565b90965094506020870135915080821115610ddc578384fd5b50610de987828801610be5565b95989497509550505050565b600060208284031215610e06578081fd5b81358015158114610cb4578182fd5b60008060408385031215610e27578182fd5b82359150610e3760208401610bc9565b90509250929050565b600080600060608486031215610e54578283fd5b833592506020808501359250604085013567ffffffffffffffff80821115610e7a578384fd5b818701915087601f830112610e8d578384fd5b813581811115610e9f57610e9f6111f6565b8060051b9150610eb084830161119e565b8181528481019084860184860187018c1015610eca578788fd5b8795505b83861015610eec578035835260019590950194918601918601610ece565b508096505050505050509250925092565b60008060408385031215610f0f578182fd5b50508035926020909101359150565b60008060008060608587031215610f33578384fd5b8435935060208501359250604085013567ffffffffffffffff811115610f57578283fd5b610de987828801610be5565b600060208284031215610f74578081fd5b813567ffffffffffffffff811115610f8a578182fd5b610f9684828501610c2f565b949350505050565b600060208284031215610faf578081fd5b5035919050565b60008060408385031215610fc8578182fd5b82359150602083013567ffffffffffffffff811115610fe5578182fd5b610ff185828601610c2f565b9150509250929050565b60006020828403121561100c578081fd5b813560ff81168114610cb4578182fd5b81835260006001600160fb1b03831115611034578081fd5b8260051b80836020870137939093016020019283525090919050565b60008151808452815b8181101561107557602081850181015186830182015201611059565b818111156110865782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03881681526080602082018190526000906110c0908301888a61101c565b82810360408401526110d381878961101c565b905082810360608401528381528385602083013781602085830101526020601f19601f86011682010191505098975050505050505050565b60006040825261111f60408301868861101c565b828103602084015261113281858761101c565b979650505050505050565b600060208252610cb46020830184611050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600083825260406020830152610f966040830184611050565b604051601f8201601f1916810167ffffffffffffffff811182821017156111c7576111c76111f6565b604052919050565b60006000198214156111ef57634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220ffd610241cd9b1582ce95f5cce74d30f4f167448a83fd631294aa9305d2ee30d64736f6c634300080300330000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc6c4aa2edc1a8a1deb11fb439c36de57bab4c37838252dd5455d692201c76942250000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c806383ca4b6f11610097578063de20fcbe11610066578063de20fcbe14610236578063dfcae62214610249578063f2fde38b14610277578063fa5c4e991461028a57610100565b806383ca4b6f146101c4578063862440e2146101d75780638da5cb5b146101ea578063d56d229d1461020f57610100565b80635f7ef2fa116100d35780635f7ef2fa146101685780636ef8e02d1461017b578063715018a61461018e57806371c5ecb11461019657610100565b80631f7fdffa14610105578063211e28b61461011a5780633423e5481461012d57806355f804b314610155575b600080fd5b610118610113366004610cbb565b61029d565b005b610118610128366004610df5565b610363565b61014061013b366004610e40565b61040c565b60405190151581526020015b60405180910390f35b610118610163366004610f63565b6104ca565b610118610176366004610ffb565b610540565b610118610189366004610c9a565b6105b9565b610118610631565b6101b66101a4366004610f9e565b60016020526000908152604090205481565b60405190815260200161014c565b6101186101d2366004610d8c565b610667565b6101186101e5366004610fb6565b61071b565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161014c565b6101f77f0000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc681565b610118610244366004610efd565b6107c9565b610140610257366004610e15565b600260209081526000928352604080842090915290825290205460ff1681565b610118610285366004610c9a565b610886565b610118610298366004610f1e565b610921565b6000546001600160a01b031633146102d05760405162461bcd60e51b81526004016102c790611150565b60405180910390fd5b604051630fbfeffd60e11b81526001600160a01b037f0000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc61690631f7fdffa90610328908a908a908a908a908a908a908a9060040161109b565b600060405180830381600087803b15801561034257600080fd5b505af1158015610356573d6000803e3d6000fd5b5050505050505050505050565b6000546001600160a01b0316331461038d5760405162461bcd60e51b81526004016102c790611150565b60405163108f145b60e11b815281151560048201527f0000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc66001600160a01b03169063211e28b6906024015b600060405180830381600087803b1580156103f157600080fd5b505af1158015610405573d6000803e3d6000fd5b5050505050565b600082815b83518110156104bf57600084828151811061043c57634e487b7160e01b600052603260045260246000fd5b602002602001015190508083101561047f5760408051602081018590529081018290526060016040516020818303038152906040528051906020012092506104ac565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806104b7816111cf565b915050610411565b509093149392505050565b6000546001600160a01b031633146104f45760405162461bcd60e51b81526004016102c790611150565b6040516355f804b360e01b81526001600160a01b037f0000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc616906355f804b3906103d790849060040161113d565b6000546001600160a01b0316331461056a5760405162461bcd60e51b81526004016102c790611150565b604051632fbf797d60e11b815260ff821660048201527f0000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc66001600160a01b031690635f7ef2fa906024016103d7565b6000546001600160a01b031633146105e35760405162461bcd60e51b81526004016102c790611150565b604051636ef8e02d60e01b81526001600160a01b0382811660048301527f0000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc61690636ef8e02d906024016103d7565b6000546001600160a01b0316331461065b5760405162461bcd60e51b81526004016102c790611150565b6106656000610b79565b565b6000546001600160a01b031633146106915760405162461bcd60e51b81526004016102c790611150565b6040516383ca4b6f60e01b81526001600160a01b037f0000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc616906383ca4b6f906106e390879087908790879060040161110b565b600060405180830381600087803b1580156106fd57600080fd5b505af1158015610711573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146107455760405162461bcd60e51b81526004016102c790611150565b604051634312207160e11b81526001600160a01b037f0000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc6169063862440e2906107939085908590600401611185565b600060405180830381600087803b1580156107ad57600080fd5b505af11580156107c1573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146107f35760405162461bcd60e51b81526004016102c790611150565b600081815260016020526040902054156108475760405162461bcd60e51b815260206004820152601560248201527414d213d6554e88111554131250d0551157d493d3d5605a1b60448201526064016102c7565b60008181526001602052604080822084905551829184917f99bc7708c46615f77398ce0e056390cc55dc9f2382a25c76d679e9fb19f22d829190a35050565b6000546001600160a01b031633146108b05760405162461bcd60e51b81526004016102c790611150565b6001600160a01b0381166109155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102c7565b61091e81610b79565b50565b60008381526001602052604090205484146109745760405162461bcd60e51b815260206004820152601360248201527214d213d6554e881253959053125117d493d3d5606a1b60448201526064016102c7565b600084815260026020908152604080832033845290915290205460ff16156109d15760405162461bcd60e51b815260206004820152601060248201526f29a427acaa9d102327a92124a22222a760811b60448201526064016102c7565b6040516bffffffffffffffffffffffff193360601b166020820152610a449085906034016040516020818303038152906040528051906020012084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061040c92505050565b610a875760405162461bcd60e51b815260206004820152601460248201527329a427acaa9d1024a72b20a624a22fa82927a7a360611b60448201526064016102c7565b6000848152600260209081526040808320338085529252808320805460ff19166001908117909155905163731133e960e01b815260048101929092526024820186905260448201526080606482015260848101919091527f0000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc66001600160a01b03169063731133e99060a401600060405180830381600087803b158015610b2c57600080fd5b505af1158015610b40573d6000803e3d6000fd5b505060405133925085915086907fa1fe64f0a663f9c2fd00dde271e65f318fc775c9593f8659deca499c00b47c4290600090a450505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610be057600080fd5b919050565b60008083601f840112610bf6578182fd5b50813567ffffffffffffffff811115610c0d578182fd5b6020830191508360208260051b8501011115610c2857600080fd5b9250929050565b600082601f830112610c3f578081fd5b813567ffffffffffffffff811115610c5957610c596111f6565b610c6c601f8201601f191660200161119e565b818152846020838601011115610c80578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215610cab578081fd5b610cb482610bc9565b9392505050565b60008060008060008060006080888a031215610cd5578283fd5b610cde88610bc9565b9650602088013567ffffffffffffffff80821115610cfa578485fd5b610d068b838c01610be5565b909850965060408a0135915080821115610d1e578485fd5b610d2a8b838c01610be5565b909650945060608a0135915080821115610d42578384fd5b818a0191508a601f830112610d55578384fd5b813581811115610d63578485fd5b8b6020828501011115610d74578485fd5b60208301945080935050505092959891949750929550565b60008060008060408587031215610da1578384fd5b843567ffffffffffffffff80821115610db8578586fd5b610dc488838901610be5565b90965094506020870135915080821115610ddc578384fd5b50610de987828801610be5565b95989497509550505050565b600060208284031215610e06578081fd5b81358015158114610cb4578182fd5b60008060408385031215610e27578182fd5b82359150610e3760208401610bc9565b90509250929050565b600080600060608486031215610e54578283fd5b833592506020808501359250604085013567ffffffffffffffff80821115610e7a578384fd5b818701915087601f830112610e8d578384fd5b813581811115610e9f57610e9f6111f6565b8060051b9150610eb084830161119e565b8181528481019084860184860187018c1015610eca578788fd5b8795505b83861015610eec578035835260019590950194918601918601610ece565b508096505050505050509250925092565b60008060408385031215610f0f578182fd5b50508035926020909101359150565b60008060008060608587031215610f33578384fd5b8435935060208501359250604085013567ffffffffffffffff811115610f57578283fd5b610de987828801610be5565b600060208284031215610f74578081fd5b813567ffffffffffffffff811115610f8a578182fd5b610f9684828501610c2f565b949350505050565b600060208284031215610faf578081fd5b5035919050565b60008060408385031215610fc8578182fd5b82359150602083013567ffffffffffffffff811115610fe5578182fd5b610ff185828601610c2f565b9150509250929050565b60006020828403121561100c578081fd5b813560ff81168114610cb4578182fd5b81835260006001600160fb1b03831115611034578081fd5b8260051b80836020870137939093016020019283525090919050565b60008151808452815b8181101561107557602081850181015186830182015201611059565b818111156110865782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03881681526080602082018190526000906110c0908301888a61101c565b82810360408401526110d381878961101c565b905082810360608401528381528385602083013781602085830101526020601f19601f86011682010191505098975050505050505050565b60006040825261111f60408301868861101c565b828103602084015261113281858761101c565b979650505050505050565b600060208252610cb46020830184611050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600083825260406020830152610f966040830184611050565b604051601f8201601f1916810167ffffffffffffffff811182821017156111c7576111c76111f6565b604052919050565b60006000198214156111ef57634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220ffd610241cd9b1582ce95f5cce74d30f4f167448a83fd631294aa9305d2ee30d64736f6c63430008030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc6c4aa2edc1a8a1deb11fb439c36de57bab4c37838252dd5455d692201c76942250000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _nftContract (address): 0x4bB5273326E527c24B6E24aD7E2e774452B0bfC6
Arg [1] : merkleRoot (bytes32): 0xc4aa2edc1a8a1deb11fb439c36de57bab4c37838252dd5455d692201c7694225
Arg [2] : tokenId (uint256): 0
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000004bb5273326e527c24b6e24ad7e2e774452b0bfc6
Arg [1] : c4aa2edc1a8a1deb11fb439c36de57bab4c37838252dd5455d692201c7694225
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.