ERC-721
Overview
Max Total Supply
2,000 BAL
Holders
366
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
10 BALLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Minimal Proxy Contract for 0xf3da33d7cba648b07080bb753c0f0375921ff24f
Contract Name:
CollectionA
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity 0.8.11;import "./modules/AffiliableA.sol";import "../interface/ICollectionStruct.sol";import "./ContractMetadata.sol";/// @title CollectionA/// @author Chain Labs/// @notice Main contract that is made up of building blocks and is ready to be used that extends the affiliate functionality./// @dev Inherits all the modules and base collectioncontract CollectionA is ICollectionStruct, AffiliableA, ContractMetadata {/// @notice setup collection/// @dev setup all the modules and base collection/// @param _baseCollection struct conatining setup parameters of base collection/// @param _presaleable struct conatining setup parameters of presale module/// @param _paymentSplitter struct conatining setup parameters of payment splitter module/// @param _projectURIProvenance provenance of revealed project URI/// @param _royalties struct conatining setup parameters of royalties module/// @param _reserveTokens number of tokens to be reservedfunction setup(BaseCollectionStruct memory _baseCollection,PresaleableStruct memory _presaleable,PaymentSplitterStruct memory _paymentSplitter,bytes32 _projectURIProvenance,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity 0.8.11;import "./RoyaltiesA.sol";import "../../../affiliate/Affiliate.sol";/// @title AffiliableA/// @author Chain Labs/// @notice Module that adds functionality of affiliate./// @dev Uses Simplr Affiliate Infrastructurecontract AffiliableA is RoyaltiesA, Affiliate {//------------------------------------------------------////// Modifiers////------------------------------------------------------//modifier affiliatePurchase(bytes memory _signature, address _affiliate) {_;_transferAffiliateShare(_signature, _affiliate, msg.value);}//------------------------------------------------------////// Public function
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity 0.8.11;/*** @title Collection Struct Interface* @dev interface to for all the struct required for setup parameters.* @author Chain Labs Team*//// @title Collection Struct Interface/// @author Chain Labs/// @notice interface for all the struct required for setup parameters.interface ICollectionStruct {struct BaseCollectionStruct {string name;string symbol;address admin;uint256 maximumTokens;uint16 maxPurchase;uint16 maxHolding;uint256 price;uint256 publicSaleStartTime;string projectURI;}struct Whitelist {
12345678910111213141516171819// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity 0.8.11;/// @title Contract Metadata/// @author Chain Labs/// @notice Stores important constant values of contract metadata/// @dev constants that can help identify the collection type and versioncontract ContractMetadata {/// @notice Contract Name/// @dev State used to identify the collection type/// @return CONTRACT_NAME name of contract type as stringstring public constant CONTRACT_NAME = "CollectionA";/// @notice Version/// @dev State used to identify the collection version/// @return VERSION version of contract as stringstring public constant VERSION = "0.1.0"; // contract version}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity ^0.8.11;import "./ReserveableA.sol";import "@openzeppelin/contracts-upgradeable/token/common/ERC2981Upgradeable.sol";/// @title RoyaltiesA/// @author Chain Labs/// @notice Module that adds functionality of royalties as required by EIP-2981./// @dev Core functionality inherited from OpenZeppelin's ERC2981contract RoyaltiesA is ReserveableA, ERC2981Upgradeable {/// @notice event that logs updated royalties info/// @dev emits updated royalty receiver and royalty share fraction/// @param receiver address that should receive royalty/// @param royaltyFraction fraction that should be sent to receiverevent DefaultRoyaltyUpdated(address receiver, uint96 royaltyFraction);//------------------------------------------------------////// Setup////------------------------------------------------------///// @notice set royalties, only one address can receive the royalties, considers 10000 = 100%/// @dev only owner can set royalties
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity 0.8.11;import "./IAffiliateRegistry.sol";import "@openzeppelin/contracts/utils/Address.sol";/*** @title Affiliate* @dev Contract that can be inherited to make any contract interact with AffiliateRegistry.* @author Chain Labs Team*/contract Affiliate {IAffiliateRegistry private _affiliateRegistry;bytes32 private _projectId;event AffiliateShareTransferred(address indexed affiliate,bytes32 indexed project,uint256 value);function getAffiliateRegistry() public view returns (IAffiliateRegistry) {return _affiliateRegistry;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity 0.8.11;import "./RevealableA.sol";/// @title ReserveableA/// @author Chain Labs/// @notice Module that adds functionality of reserving tokens from sale. Reserved tokens cannot be bought./// @dev Reserves tokens from token ID 1, mints them on demandcontract ReserveableA is RevealableA {//------------------------------------------------------////// Owner only functions////------------------------------------------------------///// @notice mint tokens to be reserved/// @dev mint tokens to owner account to be reserved/// @param _reserveTokens number of tokens to be reservedfunction reserveTokens(uint256 _reserveTokens) external onlyOwner {_setReserveTokens(_reserveTokens);}/// @notice mint tokens to be reserved/// @dev internal method to mint tokens to owner account to be reserved
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (token/common/ERC2981.sol)pragma solidity ^0.8.0;import "../../interfaces/IERC2981Upgradeable.sol";import "../../utils/introspection/ERC165Upgradeable.sol";import "../../proxy/utils/Initializable.sol";/*** @dev Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information.** Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for* specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first.** Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the* fee is specified in basis points by default.** IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See* https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to* voluntarily pay royalties together with sales, but note that this standard is not yet widely supported.** _Available since v4.5._*/abstract contract ERC2981Upgradeable is Initializable, IERC2981Upgradeable, ERC165Upgradeable {function __ERC2981_init() internal onlyInitializing {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity 0.8.11;import "./PresaleableA.sol";/// @title RevealableA/// @author Chain Labs/// @notice Module that adds functionality of revealing tokens./// @dev Handles revealing and structuring project URIcontract RevealableA is PresaleableA {using StringsUpgradeable for uint256;//------------------------------------------------------////// Storage////------------------------------------------------------///// @notice checks if collection is revealable or not/// @dev state that shows if Revealable module is active or not/// @return isRevealable checks if collection is revealable or notbool public isRevealable; // is the collection revealable/// @notice checks if collection is revealed or not/// @dev state that shows if collection is revealed/// @return isRevealed checks if collection is revealed or notbool public isRevealed; // is the collection revealed
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity 0.8.11;import "./PaymentSplitableA.sol";import "../../interface/ICollectionStruct.sol";import "@openzeppelin/contracts-upgradeable/utils/cryptography/MerkleProofUpgradeable.sol";/// @title PresaleableA/// @author Chain Labs/// @notice Module that adds functionality of presale with an optional whitelist presale./// @dev Uses merkle proofs for whitelistcontract PresaleableA is PaymentSplitableA, ICollectionStruct {//------------------------------------------------------////// Storage////------------------------------------------------------///// @notice merkle root of tree generated from whitelisted addresses/// @dev list is stored on IPFS and CID is stored in the state/// @return merkleRoot merkle rootbytes32 public merkleRoot;/// @notice CID of file containing list of whitelisted addresses/// @dev IPFS CID of JSON file with list of addresses/// @return whitelistCid IPFS CID
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity 0.8.11;import "@openzeppelin/contracts-upgradeable/finance/PaymentSplitterUpgradeable.sol";import "../base/BaseCollectionA.sol";/// @title Payment SplitableA/// @author Chain Labs/// @notice Module that adds functionality of payment splitting/// @dev Core functionality inherited from OpenZeppelin's Payment Splittercontract PaymentSplitableA is BaseCollectionA, PaymentSplitterUpgradeable {//------------------------------------------------------////// Storage////------------------------------------------------------///// @notice Shares of Simplr in the sale/// @dev percentage (eg. 100% - 10^18) of simplr in the sale/// @return SIMPLR_SHARES shares of simplr currently set to 0.0000000000000001%uint256 public SIMPLR_SHARES; // share of Simplr/// @notice address of Simplr's Fee receiver/// @dev Gnosis Safe Simplr Fee Receiver/// @return SIMPLR_RECEIVER_ADDRESS address that will receive fee i.e. Simplr Sharesaddress public SIMPLR_RECEIVER_ADDRESS; // address of SIMPLR to receive shares
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (utils/cryptography/MerkleProof.sol)pragma solidity ^0.8.0;/*** @dev These functions deal with verification of Merkle Trees proofs.** The proofs can be generated using the JavaScript library* https://github.com/miguelmota/merkletreejs[merkletreejs].* Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.** See `test/utils/cryptography/MerkleProof.test.js` for some examples.** WARNING: You should avoid using leaf values that are 64 bytes long prior to* hashing, or use a hash function other than keccak256 for hashing leaves.* This is because the concatenation of a sorted pair of internal nodes in* the merkle tree could be reinterpreted as a leaf value.*/library MerkleProofUpgradeable {/*** @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.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (finance/PaymentSplitter.sol)pragma solidity ^0.8.0;import "../token/ERC20/utils/SafeERC20Upgradeable.sol";import "../utils/AddressUpgradeable.sol";import "../utils/ContextUpgradeable.sol";import "../proxy/utils/Initializable.sol";/*** @title PaymentSplitter* @dev This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware* that the Ether will be split in this way, since it is handled transparently by the contract.** The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each* account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim* an amount proportional to the percentage of total shares they were assigned.** `PaymentSplitter` follows a _pull payment_ model. This means that payments are not automatically forwarded to the* accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release}* function.** NOTE: This contract assumes that ERC20 tokens will behave similarly to native tokens (Ether). Rebasing tokens, and* tokens that apply fees during transfers, are likely to not be supported as expected. If in doubt, we encourage you* to run tests before sending real value to this contract.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity 0.8.11;import "erc721a-upgradeable/contracts/ERC721AUpgradeable.sol";import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";import "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";import "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol";/// @title Base CollectionA/// @author Chain Labs/// @notice Base contract for CollectionA/// @dev Uses ERC721A (developed by azuki) as NFT standardcontract BaseCollectionA isOwnableUpgradeable,PausableUpgradeable,ERC721AUpgradeable{//------------------------------------------------------////// Storage////------------------------------------------------------///// @notice Maximum tokens that can ever exist/// @dev maximum tokens that can be minted/// @return maximumTokens maximum number of tokens
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)pragma solidity ^0.8.0;import "../IERC20Upgradeable.sol";import "../../../utils/AddressUpgradeable.sol";/*** @title SafeERC20* @dev Wrappers around ERC20 operations that throw on failure (when the token* contract returns false). Tokens that return no value (and instead revert or* throw on failure) are also supported, non-reverting calls are assumed to be* successful.* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.*/library SafeERC20Upgradeable {using AddressUpgradeable for address;function safeTransfer(IERC20Upgradeable token,address to,uint256 value) internal {_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)pragma solidity ^0.8.1;/*** @dev Collection of functions related to the address type*/library AddressUpgradeable {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)pragma solidity ^0.8.0;import "../proxy/utils/Initializable.sol";/*** @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 ContextUpgradeable is Initializable {function __Context_init() internal onlyInitializing {}function __Context_init_unchained() internal onlyInitializing {}function _msgSender() internal view virtual returns (address) {return msg.sender;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (proxy/utils/Initializable.sol)pragma solidity ^0.8.2;import "../../utils/AddressUpgradeable.sol";/*** @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed* behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an* external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer* function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.** The initialization functions use a version number. Once a version number is used, it is consumed and cannot be* reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in* case an upgrade adds a module that needs to be initialized.** For example:** [.hljs-theme-light.nopadding]* ```* contract MyToken is ERC20Upgradeable {* function initialize() initializer public {* __ERC20_init("MyToken", "MTK");* }* }
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC20 standard as defined in the EIP.*/interface IERC20Upgradeable {/*** @dev Emitted when `value` tokens are moved from one account (`from`) to* another (`to`).** Note that `value` may be zero.*/event Transfer(address indexed from, address indexed to, uint256 value);/*** @dev Emitted when the allowance of a `spender` for an `owner` is set by* a call to {approve}. `value` is the new allowance.*/event Approval(address indexed owner, address indexed spender, uint256 value);/*** @dev Returns the amount of tokens in existence.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v3.3.0// Creator: Chiru Labspragma solidity ^0.8.4;import "./IERC721AUpgradeable.sol";import "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol";import "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol";import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";import "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol";import "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol";import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";/*** @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including* the Metadata extension. Built to optimize for lower gas during batch mints.** Assumes serials are sequentially minted starting at _startTokenId() (defaults to 0, e.g. 0, 1, 2, 3..).** Assumes that an owner cannot have more than 2**64 - 1 (max value of uint64) of supply.** Assumes that the maximum token id cannot exceed 2**256 - 1 (max value of uint256).*/contract ERC721AUpgradeable is Initializable, ContextUpgradeable, ERC165Upgradeable, IERC721AUpgradeable {using AddressUpgradeable for address;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)pragma solidity ^0.8.0;import "../utils/ContextUpgradeable.sol";import "../proxy/utils/Initializable.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 OwnableUpgradeable is Initializable, ContextUpgradeable {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/**
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (security/Pausable.sol)pragma solidity ^0.8.0;import "../utils/ContextUpgradeable.sol";import "../proxy/utils/Initializable.sol";/*** @dev Contract module which allows children to implement an emergency stop* mechanism that can be triggered by an authorized account.** This module is used through inheritance. It will make available the* modifiers `whenNotPaused` and `whenPaused`, which can be applied to* the functions of your contract. Note that they will not be pausable by* simply including this module, only once the modifiers are put in place.*/abstract contract PausableUpgradeable is Initializable, ContextUpgradeable {/*** @dev Emitted when the pause is triggered by `account`.*/event Paused(address account);/*** @dev Emitted when the pause is lifted by `account`.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)pragma solidity ^0.8.0;/*** @dev String operations.*/library StringsUpgradeable {bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {// Inspired by OraclizeAPI's implementation - MIT licence// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.solif (value == 0) {return "0";}uint256 temp = value;uint256 digits;while (temp != 0) {digits++;temp /= 10;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v3.3.0// Creator: Chiru Labspragma solidity ^0.8.4;import "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol";import "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol";/*** @dev Interface of an ERC721A compliant contract.*/interface IERC721AUpgradeable is IERC721Upgradeable, IERC721MetadataUpgradeable {/*** The caller must own the token or be an approved operator.*/error ApprovalCallerNotOwnerNorApproved();/*** The token does not exist.*/error ApprovalQueryForNonexistentToken();/*** The caller cannot approve to their own address.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)pragma solidity ^0.8.0;/*** @title ERC721 token receiver interface* @dev Interface for any contract that wants to support safeTransfers* from ERC721 asset contracts.*/interface IERC721ReceiverUpgradeable {/*** @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}* by `operator` from `from`, this function is called.** It must return its Solidity selector to confirm the token transfer.* If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.** The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.*/function onERC721Received(address operator,address from,uint256 tokenId,bytes calldata data) external returns (bytes4);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)pragma solidity ^0.8.0;import "./IERC165Upgradeable.sol";import "../../proxy/utils/Initializable.sol";/*** @dev Implementation of the {IERC165} interface.** Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check* for the additional interface id that will be supported. For example:** ```solidity* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);* }* ```** Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.*/abstract contract ERC165Upgradeable is Initializable, IERC165Upgradeable {function __ERC165_init() internal onlyInitializing {}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721.sol)pragma solidity ^0.8.0;import "../../utils/introspection/IERC165Upgradeable.sol";/*** @dev Required interface of an ERC721 compliant contract.*/interface IERC721Upgradeable is IERC165Upgradeable {/*** @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);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)pragma solidity ^0.8.0;import "../IERC721Upgradeable.sol";/*** @title ERC-721 Non-Fungible Token Standard, optional metadata extension* @dev See https://eips.ethereum.org/EIPS/eip-721*/interface IERC721MetadataUpgradeable is IERC721Upgradeable {/*** @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);
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)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 IERC165Upgradeable {/*** @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);}
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (interfaces/IERC2981.sol)pragma solidity ^0.8.0;import "../utils/introspection/IERC165Upgradeable.sol";/*** @dev Interface for the NFT Royalty Standard.** A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal* support for royalty payments across all NFT marketplaces and ecosystem participants.** _Available since v4.5._*/interface IERC2981Upgradeable is IERC165Upgradeable {/*** @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of* exchange. The royalty amount is denominated and should be paid in that same unit of exchange.*/function royaltyInfo(uint256 tokenId, uint256 salePrice)externalviewreturns (address receiver, uint256 royaltyAmount);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-3.0-or-later// Copyright (C) 2022 Simplrpragma solidity 0.8.11;/*** @title Affiliate Registry Interface* @dev Interface with necessary functionalities of Affiliate Registry.* @author Chain Labs Team*/interface IAffiliateRegistry {function setAffiliateShares(uint256 _affiliateShares, bytes32 _projectId)external;function registerProject(string memory projectName, uint256 affiliateShares)externalreturns (bytes32 projectId);function getProjectId(string memory _projectName, address _projectOwner)externalviewreturns (bytes32 projectId);function getAffiliateShareValue(bytes memory signature,address affiliate,bytes32 projectId,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)pragma solidity ^0.8.1;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*
12345678910111213141516171819202122{"optimizer": {"enabled": true,"runs": 200},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"metadata": {"useLiteralContent": true},"libraries": {}}
Contract ABI
API[{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"ApprovalToCurrentOwner","type":"error"},{"inputs":[],"name":"ApproveToCaller","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"affiliate","type":"address"},{"indexed":true,"internalType":"bytes32","name":"project","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"AffiliateShareTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint96","name":"royaltyFraction","type":"uint96"}],"name":"DefaultRoyaltyUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IERC20Upgradeable","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20PaymentReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"PayeeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"root","type":"bytes32"},{"indexed":false,"internalType":"string","name":"cid","type":"string"}],"name":"WhitelistUpdated","type":"event"},{"inputs":[],"name":"CONTRACT_NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SIMPLR_RECEIVER_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SIMPLR_SHARES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_quantity","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"address","name":"_affiliate","type":"address"}],"name":"affiliateBuy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_proofs","type":"bytes32[]"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_quantity","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"address","name":"_affiliate","type":"address"}],"name":"affiliatePresaleBuy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_buyer","type":"address"},{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getAffiliateRegistry","outputs":[{"internalType":"contract IAffiliateRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPresaleWhitelists","outputs":[{"components":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"string","name":"cid","type":"string"}],"internalType":"struct ICollectionStruct.Whitelist","name":"whitelist","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProjectId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isAffiliateModuleInitialised","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPresaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPresaleAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPresaleWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRevealable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRevealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSetupComplete","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_proofs","type":"bytes32[]"},{"internalType":"address","name":"_account","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHolding","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPurchase","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"metadata","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"payee","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_proofs","type":"bytes32[]"},{"internalType":"address","name":"_buyer","type":"address"},{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"presaleBuy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"presaleMaxHolding","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presalePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleReservedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectURIProvenance","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicSaleStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20Upgradeable","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20Upgradeable","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reserveTokens","type":"uint256"}],"name":"reserveTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reservedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_metadata","type":"string"}],"name":"setMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_projectURI","type":"string"}],"name":"setProjectURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_projectURI","type":"string"}],"name":"setProjectURIAndReveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint96","name":"royaltyFraction","type":"uint96"}],"internalType":"struct ERC2981Upgradeable.RoyaltyInfo","name":"_royalties","type":"tuple"}],"name":"setRoyalties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSaleStartTime","type":"uint256"},{"internalType":"bool","name":"saleType","type":"bool"}],"name":"setSaleStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"maximumTokens","type":"uint256"},{"internalType":"uint16","name":"maxPurchase","type":"uint16"},{"internalType":"uint16","name":"maxHolding","type":"uint16"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"publicSaleStartTime","type":"uint256"},{"internalType":"string","name":"projectURI","type":"string"}],"internalType":"struct ICollectionStruct.BaseCollectionStruct","name":"_baseCollection","type":"tuple"},{"components":[{"internalType":"uint256","name":"presaleReservedTokens","type":"uint256"},{"internalType":"uint256","name":"presalePrice","type":"uint256"},{"internalType":"uint256","name":"presaleStartTime","type":"uint256"},{"internalType":"uint256","name":"presaleMaxHolding","type":"uint256"},{"components":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"string","name":"cid","type":"string"}],"internalType":"struct ICollectionStruct.Whitelist","name":"presaleWhitelist","type":"tuple"}],"internalType":"struct ICollectionStruct.PresaleableStruct","name":"_presaleable","type":"tuple"},{"components":[{"internalType":"address","name":"simplr","type":"address"},{"internalType":"uint256","name":"simplrShares","type":"uint256"},{"internalType":"address[]","name":"payees","type":"address[]"},{"internalType":"uint256[]","name":"shares","type":"uint256[]"}],"internalType":"struct ICollectionStruct.PaymentSplitterStruct","name":"_paymentSplitter","type":"tuple"},{"internalType":"bytes32","name":"_projectURIProvenance","type":"bytes32"},{"components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint96","name":"royaltyFraction","type":"uint96"}],"internalType":"struct ERC2981Upgradeable.RoyaltyInfo","name":"_royalties","type":"tuple"},{"internalType":"uint256","name":"_reserveTokens","type":"uint256"}],"name":"setup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"maximumTokens","type":"uint256"},{"internalType":"uint16","name":"maxPurchase","type":"uint16"},{"internalType":"uint16","name":"maxHolding","type":"uint16"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"publicSaleStartTime","type":"uint256"},{"internalType":"string","name":"projectURI","type":"string"}],"internalType":"struct ICollectionStruct.BaseCollectionStruct","name":"_baseCollection","type":"tuple"},{"components":[{"internalType":"uint256","name":"presaleReservedTokens","type":"uint256"},{"internalType":"uint256","name":"presalePrice","type":"uint256"},{"internalType":"uint256","name":"presaleStartTime","type":"uint256"},{"internalType":"uint256","name":"presaleMaxHolding","type":"uint256"},{"components":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"string","name":"cid","type":"string"}],"internalType":"struct ICollectionStruct.Whitelist","name":"presaleWhitelist","type":"tuple"}],"internalType":"struct ICollectionStruct.PresaleableStruct","name":"_presaleable","type":"tuple"},{"components":[{"internalType":"address","name":"simplr","type":"address"},{"internalType":"uint256","name":"simplrShares","type":"uint256"},{"internalType":"address[]","name":"payees","type":"address[]"},{"internalType":"uint256[]","name":"shares","type":"uint256[]"}],"internalType":"struct ICollectionStruct.PaymentSplitterStruct","name":"_paymentSplitter","type":"tuple"},{"internalType":"bytes32","name":"_projectURIProvenance","type":"bytes32"},{"components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint96","name":"royaltyFraction","type":"uint96"}],"internalType":"struct ERC2981Upgradeable.RoyaltyInfo","name":"_royalties","type":"tuple"},{"internalType":"uint256","name":"_reserveTokens","type":"uint256"},{"internalType":"contract IAffiliateRegistry","name":"_registry","type":"address"},{"internalType":"bytes32","name":"_projectId","type":"bytes32"}],"name":"setupWithAffiliate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20Upgradeable","name":"token","type":"address"}],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"string","name":"cid","type":"string"}],"internalType":"struct ICollectionStruct.Whitelist","name":"_whitelist","type":"tuple"}],"name":"updateWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistCid","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.