Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 15762675 | 714 days ago | IN | 0 ETH | 0.01937662 |
Loading...
Loading
Contract Name:
MethodsExposureFacet
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 99999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; import "@openzeppelin/contracts/access/Ownable.sol"; import "../LibDiamond.sol"; import {IERC721} from "@openzeppelin/contracts/interfaces/IERC721.sol"; import "@openzeppelin/contracts/interfaces/IERC2981.sol"; contract MethodsExposureFacet is Ownable, IDiamondCut, IDiamondLoupe, IERC2981, IERC721 { // ==================== IDiamondLoupe & IDiamondCut ==================== /// @notice Add/replace/remove any number of functions and optionally execute /// a function with delegatecall /// @param _diamondCut Contains the facet addresses and function selectors /// @param _init The address of the contract or facet to execute _calldata /// @param _calldata A function call, including function selector and arguments /// _calldata is executed with delegatecall on _init function diamondCut( IDiamondCut.FacetCut[] calldata _diamondCut, address _init, bytes calldata _calldata ) external onlyOwner {} /// These functions are expected to be called frequently by tools. /// @notice Gets all facets and their selectors. /// @return facets_ Facet function facets() external view override returns (Facet[] memory facets_) { facets_ = new Facet[](0); } /// @notice Gets all the function selectors provided by a facet. /// @param _facet The facet address. /// @return facetFunctionSelectors_ function facetFunctionSelectors(address _facet) external view override returns (bytes4[] memory facetFunctionSelectors_) { facetFunctionSelectors_ = new bytes4[](0); } /// @notice Get all the facet addresses used by a diamond. /// @return facetAddresses_ function facetAddresses() external view override returns (address[] memory facetAddresses_) { facetAddresses_ = new address[](0); } /// @notice Gets the facet that supports the given selector. /// @dev If facet is not found return address(0). /// @param _functionSelector The function selector. /// @return facetAddress_ The facet address. function facetAddress(bytes4 _functionSelector) external view override returns (address facetAddress_) { return address(0); } // This implements ERC-165. function supportsInterface(bytes4 _interfaceId) external view override returns (bool) { return false; } // ==================== ERC721 ==================== /** * @dev See {IERC721Metadata-name}. */ function name() public view virtual returns (string memory) { return ""; } /** * @dev See {IERC721Metadata-symbol}. */ function symbol() public view virtual returns (string memory) { return ""; } /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance) { return 0; } /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner) { return address(0); } /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external {} /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external {} /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external {} /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external {} /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external {} /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator) { return address(0); } /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool) { return false; } // ==================== Management ==================== function setMethodsExposureFacetAddress(string memory _methodsExposureFacetAddress) external onlyOwner {} function setBaseTokenURI(string memory _baseTokenURI) external onlyOwner {} function setRoyaltiesRecipient(address _royaltiesRecipient) external onlyOwner {} function setRoyaltiesBasisPoints(uint256 _royaltiesBasisPoints) external onlyOwner {} function setMintPrice(uint256 _mintPrice) external onlyOwner {} function setMaxMintsPerWallet(uint32 _maxMintsPerWallet) external onlyOwner {} function setMaxMintsTeam(uint32 _maxMintsTeam) external onlyOwner {} function setMaxSupply(uint32 _maxSupply) external onlyOwner {} function setReveal(bool _isReveal) external onlyOwner {} function setPublicMintOpen(bool _publicMintOpen) external onlyOwner {} function setAllowlistMintOpen(bool _allowlistMintOpen) external onlyOwner {} // ==================== Views ==================== function implementation() public view returns (address) { return address(0); } function maxSupply() external view returns (uint32) { return 0; } function baseTokenURI() external view returns (string memory) { return ""; } function mintPrice() external view returns (uint256) { return 0; } function maxMintsPerWallet() external view returns (uint32) { return 0; } function maxMintsTeam() external view returns (uint32) { return 0; } function isReveal() external view returns (bool) { return false; } function royaltiesRecipient() external view returns (address) { return address(0); } function royaltiesBasisPoints() external view returns (uint256) { return 0; } function publicMintOpen() external view returns (bool) { return false; } function allowlistMintOpen() external view returns (bool) { return false; } function numberMinted(address who) public view returns (uint256) {} function totalSupply() public view returns (uint256) {} // =========== EIP2981 =========== function royaltyInfo(uint256, uint256 _salePrice) external view override returns (address receiver, uint256 royaltyAmount) { return (address(0), 0); } // =========== Mint =========== function mint(uint256 quantity) external payable {} function allowlistMint(bytes32[] calldata proof, uint256 quantity) external payable {} function teamMint(uint256 quantity) external payable {} }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; import "@openzeppelin/contracts/access/Ownable.sol"; /******************************************************************************\ * Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen) * EIP-2535 Diamond Standard: https://eips.ethereum.org/EIPS/eip-2535 /******************************************************************************/ interface IDiamondCut { enum FacetCutAction {Add, Replace, Remove} // Add=0, Replace=1, Remove=2 struct FacetCut { address facetAddress; FacetCutAction action; bytes4[] functionSelectors; } /// @notice Add/replace/remove any number of functions and optionally execute /// a function with delegatecall /// @param _diamondCut Contains the facet addresses and function selectors /// @param _init The address of the contract or facet to execute _calldata /// @param _calldata A function call, including function selector and arguments /// _calldata is executed with delegatecall on _init function diamondCut( FacetCut[] calldata _diamondCut, address _init, bytes calldata _calldata ) external; event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata); } /******************************************************************************\ * Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen) * EIP-2535 Diamond Standard: https://eips.ethereum.org/EIPS/eip-2535 /******************************************************************************/ // A loupe is a small magnifying glass used to look at diamonds. // These functions look at diamonds interface IDiamondLoupe { /// These functions are expected to be called frequently /// by tools. struct Facet { address facetAddress; bytes4[] functionSelectors; } /// @notice Gets all facet addresses and their four byte function selectors. /// @return facets_ Facet function facets() external view returns (Facet[] memory facets_); /// @notice Gets all the function selectors supported by a specific facet. /// @param _facet The facet address. /// @return facetFunctionSelectors_ function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory facetFunctionSelectors_); /// @notice Get all the facet addresses used by a diamond. /// @return facetAddresses_ function facetAddresses() external view returns (address[] memory facetAddresses_); /// @notice Gets the facet that supports the given selector. /// @dev If facet is not found return address(0). /// @param _functionSelector The function selector. /// @return facetAddress_ The facet address. function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_); } interface IOpenseaSeaportConduitController { function getConduit(bytes32 conduitKey) external view returns (address conduit, bool exists); function getChannelStatus(address conduit, address channel) external view returns (bool isOpen); } library LibDiamond { bytes32 constant DIAMOND_STORAGE_POSITION = keccak256("diamond.standard.diamond.storage"); bytes32 constant APP_STORAGE_POSITION = keccak256("diamond.standard.app.storage"); uint256 public constant PERCENTAGE_DENOMINATOR = 10000; address public constant X2Y2_ERC721_DELEGATE = 0xF849de01B080aDC3A814FaBE1E2087475cF2E354; address public constant LOOKSRARE_ERC721_TRANSFER_MANAGER = 0xf42aa99F011A1fA7CDA90E5E98b277E306BcA83e; IOpenseaSeaportConduitController public constant OPENSEA_SEAPORT_CONDUIT_CONTROLLER = IOpenseaSeaportConduitController(0x00000000F9490004C11Cef243f5400493c00Ad63); struct FacetAddressAndPosition { address facetAddress; uint16 functionSelectorPosition; // position in facetFunctionSelectors.functionSelectors array } struct FacetFunctionSelectors { bytes4[] functionSelectors; uint16 facetAddressPosition; // position of facetAddress in facetAddresses array } struct DiamondStorage { // maps function selector to the facet address and // the position of the selector in the facetFunctionSelectors.selectors array mapping(bytes4 => FacetAddressAndPosition) selectorToFacetAndPosition; // maps facet addresses to function selectors mapping(address => FacetFunctionSelectors) facetFunctionSelectors; // facet addresses address[] facetAddresses; // Used to query if a contract implements an interface. // Used to implement ERC-165. mapping(bytes4 => bool) supportedInterfaces; } struct AppStorage { string name; string symbol; uint256 royaltiesBasisPoints; string baseTokenURI; string unrevealURI; uint256 mintPrice; address royaltiesRecipient; address signingAddress; bool isReveal; uint32 maxSupply; uint32 maxMintsTeam; uint32 maxMintsPerWallet; address methodsExposureFacetAddress; address seaportAddress; bool publicMintOpen; bool allowlistMintOpen; uint256 totalMintedTeam; } function diamondStorage() internal pure returns (DiamondStorage storage ds) { bytes32 position = DIAMOND_STORAGE_POSITION; assembly { ds.slot := position } } function appStorage() internal pure returns (AppStorage storage _as) { bytes32 position = APP_STORAGE_POSITION; assembly { _as.slot := position } } event DiamondCut(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata); // Internal function version of diamondCut function diamondCut( IDiamondCut.FacetCut[] memory _diamondCut, address _init, bytes memory _calldata ) internal { for (uint256 facetIndex; facetIndex < _diamondCut.length; facetIndex++) { IDiamondCut.FacetCutAction action = _diamondCut[facetIndex].action; if (action == IDiamondCut.FacetCutAction.Add) { addFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else if (action == IDiamondCut.FacetCutAction.Replace) { replaceFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else if (action == IDiamondCut.FacetCutAction.Remove) { removeFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else { revert("LibDiamondCut: Incorrect FacetCutAction"); } } emit DiamondCut(_diamondCut, _init, _calldata); initializeDiamondCut(_init, _calldata); } function addFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut"); DiamondStorage storage ds = diamondStorage(); // uint16 selectorCount = uint16(diamondStorage().selectors.length); require(_facetAddress != address(0), "LibDiamondCut: Add facet can't be address(0)"); uint16 selectorPosition = uint16(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length); // add new facet address if it does not exist if (selectorPosition == 0) { enforceHasContractCode(_facetAddress, "LibDiamondCut: New facet has no code"); ds.facetFunctionSelectors[_facetAddress].facetAddressPosition = uint16(ds.facetAddresses.length); ds.facetAddresses.push(_facetAddress); } for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; require(oldFacetAddress == address(0), "LibDiamondCut: Can't add function that already exists"); ds.facetFunctionSelectors[_facetAddress].functionSelectors.push(selector); ds.selectorToFacetAndPosition[selector].facetAddress = _facetAddress; ds.selectorToFacetAndPosition[selector].functionSelectorPosition = selectorPosition; selectorPosition++; } } function replaceFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut"); DiamondStorage storage ds = diamondStorage(); require(_facetAddress != address(0), "LibDiamondCut: Add facet can't be address(0)"); uint16 selectorPosition = uint16(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length); // add new facet address if it does not exist if (selectorPosition == 0) { enforceHasContractCode(_facetAddress, "LibDiamondCut: New facet has no code"); ds.facetFunctionSelectors[_facetAddress].facetAddressPosition = uint16(ds.facetAddresses.length); ds.facetAddresses.push(_facetAddress); } for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; require(oldFacetAddress != _facetAddress, "LibDiamondCut: Can't replace function with same function"); removeFunction(oldFacetAddress, selector); // add function ds.selectorToFacetAndPosition[selector].functionSelectorPosition = selectorPosition; ds.facetFunctionSelectors[_facetAddress].functionSelectors.push(selector); ds.selectorToFacetAndPosition[selector].facetAddress = _facetAddress; selectorPosition++; } } function removeFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut"); DiamondStorage storage ds = diamondStorage(); // if function does not exist then do nothing and return require(_facetAddress == address(0), "LibDiamondCut: Remove facet address must be address(0)"); for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; removeFunction(oldFacetAddress, selector); } } function removeFunction(address _facetAddress, bytes4 _selector) internal { DiamondStorage storage ds = diamondStorage(); require(_facetAddress != address(0), "LibDiamondCut: Can't remove function that doesn't exist"); // an immutable function is a function defined directly in a diamond require(_facetAddress != address(this), "LibDiamondCut: Can't remove immutable function"); // replace selector with last selector, then delete last selector uint256 selectorPosition = ds.selectorToFacetAndPosition[_selector].functionSelectorPosition; uint256 lastSelectorPosition = ds.facetFunctionSelectors[_facetAddress].functionSelectors.length - 1; // if not the same then replace _selector with lastSelector if (selectorPosition != lastSelectorPosition) { bytes4 lastSelector = ds.facetFunctionSelectors[_facetAddress].functionSelectors[lastSelectorPosition]; ds.facetFunctionSelectors[_facetAddress].functionSelectors[selectorPosition] = lastSelector; ds.selectorToFacetAndPosition[lastSelector].functionSelectorPosition = uint16(selectorPosition); } // delete the last selector ds.facetFunctionSelectors[_facetAddress].functionSelectors.pop(); delete ds.selectorToFacetAndPosition[_selector]; // if no more selectors for facet address then delete the facet address if (lastSelectorPosition == 0) { // replace facet address with last facet address and delete last facet address uint256 lastFacetAddressPosition = ds.facetAddresses.length - 1; uint256 facetAddressPosition = ds.facetFunctionSelectors[_facetAddress].facetAddressPosition; if (facetAddressPosition != lastFacetAddressPosition) { address lastFacetAddress = ds.facetAddresses[lastFacetAddressPosition]; ds.facetAddresses[facetAddressPosition] = lastFacetAddress; ds.facetFunctionSelectors[lastFacetAddress].facetAddressPosition = uint16(facetAddressPosition); } ds.facetAddresses.pop(); delete ds.facetFunctionSelectors[_facetAddress].facetAddressPosition; } } function initializeDiamondCut(address _init, bytes memory _calldata) internal { if (_init == address(0)) { require(_calldata.length == 0, "LibDiamondCut: _init is address(0) but_calldata is not empty"); } else { require(_calldata.length > 0, "LibDiamondCut: _calldata is empty but _init is not address(0)"); if (_init != address(this)) { enforceHasContractCode(_init, "LibDiamondCut: _init address has no code"); } (bool success, bytes memory error) = _init.delegatecall(_calldata); if (!success) { if (error.length > 0) { // bubble up the error revert(string(error)); } else { revert("LibDiamondCut: _init function reverted"); } } } } function enforceHasContractCode(address _contract, string memory _errorMessage) internal view { uint256 contractSize; assembly { contractSize := extcodesize(_contract) } require(contractSize > 0, _errorMessage); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) 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() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { 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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (interfaces/IERC721.sol) pragma solidity ^0.8.0; import "../token/ERC721/IERC721.sol";
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (interfaces/IERC2981.sol) pragma solidity ^0.8.0; import "../utils/introspection/IERC165.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 IERC2981 is IERC165 { /** * @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) external view returns (address receiver, uint256 royaltyAmount); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) 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 // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); }
// 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 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": 99999 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamondCut.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false,"internalType":"struct IDiamondCut.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"indexed":false,"internalType":"address","name":"_init","type":"address"},{"indexed":false,"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"DiamondCut","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":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"},{"inputs":[{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"allowlistMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"allowlistMintOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamondCut.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"internalType":"struct IDiamondCut.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"diamondCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"name":"facetAddress","outputs":[{"internalType":"address","name":"facetAddress_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"facetAddresses","outputs":[{"internalType":"address[]","name":"facetAddresses_","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_facet","type":"address"}],"name":"facetFunctionSelectors","outputs":[{"internalType":"bytes4[]","name":"facetFunctionSelectors_","type":"bytes4[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"facets","outputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"internalType":"struct IDiamondLoupe.Facet[]","name":"facets_","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"isReveal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintsPerWallet","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintsTeam","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"numberMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicMintOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"royaltiesBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"royaltiesRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","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":"bool","name":"_allowlistMintOpen","type":"bool"}],"name":"setAllowlistMintOpen","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":"_baseTokenURI","type":"string"}],"name":"setBaseTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_maxMintsPerWallet","type":"uint32"}],"name":"setMaxMintsPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_maxMintsTeam","type":"uint32"}],"name":"setMaxMintsTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_maxSupply","type":"uint32"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_methodsExposureFacetAddress","type":"string"}],"name":"setMethodsExposureFacetAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintPrice","type":"uint256"}],"name":"setMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_publicMintOpen","type":"bool"}],"name":"setPublicMintOpen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isReveal","type":"bool"}],"name":"setReveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_royaltiesBasisPoints","type":"uint256"}],"name":"setRoyaltiesBasisPoints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_royaltiesRecipient","type":"address"}],"name":"setRoyaltiesRecipient","outputs":[],"stateMutability":"nonpayable","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":"quantity","type":"uint256"}],"name":"teamMint","outputs":[],"stateMutability":"payable","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"}]
Contract Creation Code
608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fcb8061007e6000396000f3fe6080604052600436106103135760003560e01c8063715018a61161019a578063c50b87be116100e1578063ed8610321161008a578063f516a2e611610064578063f516a2e614610685578063f9da3224146104ee578063fae4c7f9146105de57600080fd5b8063ed86103214610685578063f2fde38b146106c4578063f4a0a5281461052b57600080fd5b8063d5abeb01116100bb578063d5abeb0114610685578063dc33e68114610546578063e985e9c5146106a157600080fd5b8063c50b87be1461064f578063cdffacc61461066a578063d547cfb71461034e57600080fd5b8063a22cb46511610143578063adfca15e1161011d578063adfca15e146105f2578063b88d4fde1461062d578063bcc9ca5b146105de57600080fd5b8063a22cb465146105c3578063a368d98f146105de578063a53a84b6146103e957600080fd5b80638da5cb5b116101745780638da5cb5b1461059857806395d89b411461034e578063a0712d68146104c257600080fd5b8063715018a6146105615780637684d0f3146104ee5780637a0ed6271461057657600080fd5b806330176e131161025e5780635c60da1b11610207578063640909c3116101e1578063640909c31461052b5780636817c76c146103e957806370a082311461054657600080fd5b80635c60da1b146104075780636352211e146103755780636387f8041461045657600080fd5b806342842e0e1161023857806342842e0e1461043b57806344969ae9146104ee57806352ef6b2c1461050957600080fd5b806330176e13146104d3578063322474bb14610456578063340aecb5146104d357600080fd5b80631d96a082116102c05780632a3f300c1161029a5780632a3f300c146104565780632a55205a146104765780632fbba115146104c257600080fd5b80631d96a082146104075780631f931c1c1461041b57806323b872dd1461043b57600080fd5b8063095ea7b3116102f1578063095ea7b3146103b55780631338a83f146103d657806318160ddd146103e957600080fd5b806301ffc9a71461031857806306fdde031461034e578063081812fc14610375575b600080fd5b34801561032457600080fd5b50610339610333366004610921565b50600090565b60405190151581526020015b60405180910390f35b34801561035a57600080fd5b5060408051602081018252600081529051610345919061096a565b34801561038157600080fd5b506103906103333660046109dd565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610345565b3480156103c157600080fd5b506103d46103d0366004610a1f565b5050565b005b6103d46103e4366004610a8e565b505050565b3480156103f557600080fd5b5060005b604051908152602001610345565b34801561041357600080fd5b506000610390565b34801561042757600080fd5b506103d4610436366004610b1c565b6106e4565b34801561044757600080fd5b506103d46103e4366004610ba0565b34801561046257600080fd5b506103d4610471366004610bec565b6106ec565b34801561048257600080fd5b50610496610491366004610c07565b6106f4565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610345565b6103d46104d03660046109dd565b50565b3480156104df57600080fd5b506103d4610471366004610c58565b3480156104fa57600080fd5b506103d4610471366004610d27565b34801561051557600080fd5b5061051e6106ff565b6040516103459190610d4d565b34801561053757600080fd5b506103d46104713660046109dd565b34801561055257600080fd5b506103f9610333366004610da7565b34801561056d57600080fd5b506103d4610719565b34801561058257600080fd5b5061058b61072d565b6040516103459190610e1f565b3480156105a457600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610390565b3480156105cf57600080fd5b506103d46103d0366004610ec7565b3480156105ea57600080fd5b506000610339565b3480156105fe57600080fd5b5061062061060d366004610da7565b5060408051600081526020810190915290565b6040516103459190610efa565b34801561063957600080fd5b506103d4610648366004610f0d565b5050505050565b34801561065b57600080fd5b506103d4610471366004610da7565b34801561067657600080fd5b50610390610333366004610921565b34801561069157600080fd5b5060405160008152602001610345565b3480156106ad57600080fd5b506103396106bc366004610f6b565b600092915050565b3480156106d057600080fd5b506103d46106df366004610da7565b610772565b61064861082b565b6104d061082b565b6000805b9250929050565b604080516000808252602082019092526060915b50905090565b61072161082b565b61072b60006108ac565b565b60408051600080825260208201909252606091610713565b60408051808201909152600081526060602082015281526020019060019003908161074557905050905090565b61077a61082b565b73ffffffffffffffffffffffffffffffffffffffff8116610822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104d0816108ac565b60005473ffffffffffffffffffffffffffffffffffffffff16331461072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610819565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561093357600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461096357600080fd5b9392505050565b600060208083528351808285015260005b818110156109975785810183015185820160400152820161097b565b818111156109a9576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156109ef57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a1a57600080fd5b919050565b60008060408385031215610a3257600080fd5b610a3b836109f6565b946020939093013593505050565b60008083601f840112610a5b57600080fd5b50813567ffffffffffffffff811115610a7357600080fd5b6020830191508360208260051b85010111156106f857600080fd5b600080600060408486031215610aa357600080fd5b833567ffffffffffffffff811115610aba57600080fd5b610ac686828701610a49565b909790965060209590950135949350505050565b60008083601f840112610aec57600080fd5b50813567ffffffffffffffff811115610b0457600080fd5b6020830191508360208285010111156106f857600080fd5b600080600080600060608688031215610b3457600080fd5b853567ffffffffffffffff80821115610b4c57600080fd5b610b5889838a01610a49565b9097509550859150610b6c602089016109f6565b94506040880135915080821115610b8257600080fd5b50610b8f88828901610ada565b969995985093965092949392505050565b600080600060608486031215610bb557600080fd5b610bbe846109f6565b9250610bcc602085016109f6565b9150604084013590509250925092565b80358015158114610a1a57600080fd5b600060208284031215610bfe57600080fd5b61096382610bdc565b60008060408385031215610c1a57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610c6a57600080fd5b813567ffffffffffffffff80821115610c8257600080fd5b818401915084601f830112610c9657600080fd5b813581811115610ca857610ca8610c29565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610cee57610cee610c29565b81604052828152876020848701011115610d0757600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215610d3957600080fd5b813563ffffffff8116811461096357600080fd5b6020808252825182820181905260009190848201906040850190845b81811015610d9b57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610d69565b50909695505050505050565b600060208284031215610db957600080fd5b610963826109f6565b600081518084526020808501945080840160005b83811015610e145781517fffffffff000000000000000000000000000000000000000000000000000000001687529582019590820190600101610dd6565b509495945050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015610eb9578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff168452870151878401879052610ea687850182610dc2565b9588019593505090860190600101610e46565b509098975050505050505050565b60008060408385031215610eda57600080fd5b610ee3836109f6565b9150610ef160208401610bdc565b90509250929050565b6020815260006109636020830184610dc2565b600080600080600060808688031215610f2557600080fd5b610f2e866109f6565b9450610f3c602087016109f6565b935060408601359250606086013567ffffffffffffffff811115610f5f57600080fd5b610b8f88828901610ada565b60008060408385031215610f7e57600080fd5b610f87836109f6565b9150610ef1602084016109f656fea2646970667358221220d6e92fa13be9b906720746cb43059f33eef6c6563c1a6a8f06bb36ce1488b7e464736f6c634300080d0033
Deployed Bytecode
0x6080604052600436106103135760003560e01c8063715018a61161019a578063c50b87be116100e1578063ed8610321161008a578063f516a2e611610064578063f516a2e614610685578063f9da3224146104ee578063fae4c7f9146105de57600080fd5b8063ed86103214610685578063f2fde38b146106c4578063f4a0a5281461052b57600080fd5b8063d5abeb01116100bb578063d5abeb0114610685578063dc33e68114610546578063e985e9c5146106a157600080fd5b8063c50b87be1461064f578063cdffacc61461066a578063d547cfb71461034e57600080fd5b8063a22cb46511610143578063adfca15e1161011d578063adfca15e146105f2578063b88d4fde1461062d578063bcc9ca5b146105de57600080fd5b8063a22cb465146105c3578063a368d98f146105de578063a53a84b6146103e957600080fd5b80638da5cb5b116101745780638da5cb5b1461059857806395d89b411461034e578063a0712d68146104c257600080fd5b8063715018a6146105615780637684d0f3146104ee5780637a0ed6271461057657600080fd5b806330176e131161025e5780635c60da1b11610207578063640909c3116101e1578063640909c31461052b5780636817c76c146103e957806370a082311461054657600080fd5b80635c60da1b146104075780636352211e146103755780636387f8041461045657600080fd5b806342842e0e1161023857806342842e0e1461043b57806344969ae9146104ee57806352ef6b2c1461050957600080fd5b806330176e13146104d3578063322474bb14610456578063340aecb5146104d357600080fd5b80631d96a082116102c05780632a3f300c1161029a5780632a3f300c146104565780632a55205a146104765780632fbba115146104c257600080fd5b80631d96a082146104075780631f931c1c1461041b57806323b872dd1461043b57600080fd5b8063095ea7b3116102f1578063095ea7b3146103b55780631338a83f146103d657806318160ddd146103e957600080fd5b806301ffc9a71461031857806306fdde031461034e578063081812fc14610375575b600080fd5b34801561032457600080fd5b50610339610333366004610921565b50600090565b60405190151581526020015b60405180910390f35b34801561035a57600080fd5b5060408051602081018252600081529051610345919061096a565b34801561038157600080fd5b506103906103333660046109dd565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610345565b3480156103c157600080fd5b506103d46103d0366004610a1f565b5050565b005b6103d46103e4366004610a8e565b505050565b3480156103f557600080fd5b5060005b604051908152602001610345565b34801561041357600080fd5b506000610390565b34801561042757600080fd5b506103d4610436366004610b1c565b6106e4565b34801561044757600080fd5b506103d46103e4366004610ba0565b34801561046257600080fd5b506103d4610471366004610bec565b6106ec565b34801561048257600080fd5b50610496610491366004610c07565b6106f4565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610345565b6103d46104d03660046109dd565b50565b3480156104df57600080fd5b506103d4610471366004610c58565b3480156104fa57600080fd5b506103d4610471366004610d27565b34801561051557600080fd5b5061051e6106ff565b6040516103459190610d4d565b34801561053757600080fd5b506103d46104713660046109dd565b34801561055257600080fd5b506103f9610333366004610da7565b34801561056d57600080fd5b506103d4610719565b34801561058257600080fd5b5061058b61072d565b6040516103459190610e1f565b3480156105a457600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610390565b3480156105cf57600080fd5b506103d46103d0366004610ec7565b3480156105ea57600080fd5b506000610339565b3480156105fe57600080fd5b5061062061060d366004610da7565b5060408051600081526020810190915290565b6040516103459190610efa565b34801561063957600080fd5b506103d4610648366004610f0d565b5050505050565b34801561065b57600080fd5b506103d4610471366004610da7565b34801561067657600080fd5b50610390610333366004610921565b34801561069157600080fd5b5060405160008152602001610345565b3480156106ad57600080fd5b506103396106bc366004610f6b565b600092915050565b3480156106d057600080fd5b506103d46106df366004610da7565b610772565b61064861082b565b6104d061082b565b6000805b9250929050565b604080516000808252602082019092526060915b50905090565b61072161082b565b61072b60006108ac565b565b60408051600080825260208201909252606091610713565b60408051808201909152600081526060602082015281526020019060019003908161074557905050905090565b61077a61082b565b73ffffffffffffffffffffffffffffffffffffffff8116610822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104d0816108ac565b60005473ffffffffffffffffffffffffffffffffffffffff16331461072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610819565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561093357600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461096357600080fd5b9392505050565b600060208083528351808285015260005b818110156109975785810183015185820160400152820161097b565b818111156109a9576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156109ef57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a1a57600080fd5b919050565b60008060408385031215610a3257600080fd5b610a3b836109f6565b946020939093013593505050565b60008083601f840112610a5b57600080fd5b50813567ffffffffffffffff811115610a7357600080fd5b6020830191508360208260051b85010111156106f857600080fd5b600080600060408486031215610aa357600080fd5b833567ffffffffffffffff811115610aba57600080fd5b610ac686828701610a49565b909790965060209590950135949350505050565b60008083601f840112610aec57600080fd5b50813567ffffffffffffffff811115610b0457600080fd5b6020830191508360208285010111156106f857600080fd5b600080600080600060608688031215610b3457600080fd5b853567ffffffffffffffff80821115610b4c57600080fd5b610b5889838a01610a49565b9097509550859150610b6c602089016109f6565b94506040880135915080821115610b8257600080fd5b50610b8f88828901610ada565b969995985093965092949392505050565b600080600060608486031215610bb557600080fd5b610bbe846109f6565b9250610bcc602085016109f6565b9150604084013590509250925092565b80358015158114610a1a57600080fd5b600060208284031215610bfe57600080fd5b61096382610bdc565b60008060408385031215610c1a57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610c6a57600080fd5b813567ffffffffffffffff80821115610c8257600080fd5b818401915084601f830112610c9657600080fd5b813581811115610ca857610ca8610c29565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610cee57610cee610c29565b81604052828152876020848701011115610d0757600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215610d3957600080fd5b813563ffffffff8116811461096357600080fd5b6020808252825182820181905260009190848201906040850190845b81811015610d9b57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610d69565b50909695505050505050565b600060208284031215610db957600080fd5b610963826109f6565b600081518084526020808501945080840160005b83811015610e145781517fffffffff000000000000000000000000000000000000000000000000000000001687529582019590820190600101610dd6565b509495945050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015610eb9578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff168452870151878401879052610ea687850182610dc2565b9588019593505090860190600101610e46565b509098975050505050505050565b60008060408385031215610eda57600080fd5b610ee3836109f6565b9150610ef160208401610bdc565b90509250929050565b6020815260006109636020830184610dc2565b600080600080600060808688031215610f2557600080fd5b610f2e866109f6565b9450610f3c602087016109f6565b935060408601359250606086013567ffffffffffffffff811115610f5f57600080fd5b610b8f88828901610ada565b60008060408385031215610f7e57600080fd5b610f87836109f6565b9150610ef1602084016109f656fea2646970667358221220d6e92fa13be9b906720746cb43059f33eef6c6563c1a6a8f06bb36ce1488b7e464736f6c634300080d0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 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.