Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 12,669 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Mint | 14432130 | 841 days ago | IN | 0 ETH | 0.0009318 | ||||
Mint | 14343796 | 855 days ago | IN | 0 ETH | 0.0009099 | ||||
Mint | 14285758 | 864 days ago | IN | 0 ETH | 0.00123527 | ||||
Mint | 14284290 | 864 days ago | IN | 0 ETH | 0.00098136 | ||||
Mint | 14284290 | 864 days ago | IN | 0 ETH | 0.00104433 | ||||
Mint | 14282099 | 864 days ago | IN | 0 ETH | 0.00122337 | ||||
Mint | 14279580 | 865 days ago | IN | 0 ETH | 0.00064385 | ||||
Mint | 14276676 | 865 days ago | IN | 0 ETH | 0.00212522 | ||||
Mint | 14276290 | 865 days ago | IN | 0 ETH | 0.00659518 | ||||
Mint | 14275947 | 865 days ago | IN | 0 ETH | 0.00533473 | ||||
Mint | 14275941 | 865 days ago | IN | 0 ETH | 0.00547311 | ||||
Mint | 14275921 | 865 days ago | IN | 0 ETH | 0.00354494 | ||||
Mint | 14275915 | 865 days ago | IN | 0 ETH | 0.00396393 | ||||
Mint | 14275899 | 865 days ago | IN | 0 ETH | 0.00330149 | ||||
Mint | 14275899 | 865 days ago | IN | 0 ETH | 0.00458889 | ||||
Mint | 14275896 | 865 days ago | IN | 0 ETH | 0.00405194 | ||||
Mint | 14275563 | 865 days ago | IN | 0 ETH | 0.00543804 | ||||
Mint | 14275559 | 865 days ago | IN | 0 ETH | 0.00585699 | ||||
Mint | 14275543 | 865 days ago | IN | 0 ETH | 0.00462601 | ||||
Mint | 14275452 | 866 days ago | IN | 0 ETH | 0.00441499 | ||||
Mint | 14275342 | 866 days ago | IN | 0 ETH | 0.00353744 | ||||
Mint | 14275342 | 866 days ago | IN | 0 ETH | 0.00285735 | ||||
Mint | 14275341 | 866 days ago | IN | 0 ETH | 0.00315924 | ||||
Mint | 14275336 | 866 days ago | IN | 0 ETH | 0.00312027 | ||||
Mint | 14275330 | 866 days ago | IN | 0 ETH | 0.00242341 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
MorphsEngine
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /* ░░░ ░░░ ░░░░░░ ░░░░░░ ░░░░░░ ░░ ░░ ░░░░░░░ ▒▒▒▒ ▒▒▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒▒▒ ▒▒ ▒▒ ▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ██ ██ ██████ ██ ██ ██ ██ ██ ███████ https://morphs.wtf Drifting through the immateria you find a scroll. You sense something mysterious, cosmic. You feel compelled to take it. After all, what have you got to lose... Designed by @polyforms_ https://playgrounds.wtf https://heyshell.xyz */ import "../engines/ShellBaseEngine.sol"; import "../engines/OnChainMetadataEngine.sol"; import "@openzeppelin/contracts/utils/Strings.sol"; contract MorphsEngine is ShellBaseEngine, OnChainMetadataEngine { error MintingPeriodHasEnded(); // cant mint after midnight 3/1 CST uint256 public constant MINTING_ENDS_AT_TIMESTAMP = 1646114400; function name() external pure returns (string memory) { return "morphs"; } function mint(IShellFramework collection, uint256 flag) external returns (uint256) { // solhint-disable-next-line not-rely-on-time if (block.timestamp >= MINTING_ENDS_AT_TIMESTAMP) { revert MintingPeriodHasEnded(); } IntStorage[] memory intData; // flag is written to token mint data if set if (flag != 0) { intData = new IntStorage[](1); intData[0] = IntStorage({key: "flag", value: flag}); } else { intData = new IntStorage[](0); } uint256 tokenId = collection.mint( MintEntry({ to: msg.sender, amount: 1, options: MintOptions({ storeEngine: false, storeMintedTo: false, storeTimestamp: false, storeBlockNumber: false, stringData: new StringStorage[](0), intData: intData }) }) ); return tokenId; } function getPalette(uint256 tokenId) public pure returns (string memory) { uint256 index = uint256(keccak256(abi.encodePacked(tokenId))) % 6; return string(abi.encodePacked("P00", Strings.toString(index + 1))); } function getVariation(uint256 tokenId, uint256 flag) public pure returns (string memory) { if (flag >= 2) { // celestial // doing >= 2 to let curious geeks mint things with custom flag // values. // I wonder if anybody will do this? 🤔 return "X001"; } else if (flag == 1) { // mythical uint256 i = uint256(keccak256(abi.encodePacked(tokenId))) % 4; return string(abi.encodePacked("M00", Strings.toString(i + 1))); } // citizen uint256 index = uint256(keccak256(abi.encodePacked(tokenId))) % 10; if (index == 9) { return "C010"; // double digit case } else { return string(abi.encodePacked("C00", Strings.toString(index + 1))); } } function getPaletteName(uint256 tokenId) public pure returns (string memory) { uint256 index = uint256(keccak256(abi.encodePacked(tokenId))) % 6; if (index == 0) { return "Greyskull"; } else if (index == 1) { return "Ancient Opinions"; } else if (index == 2) { return "The Desert Sun"; } else if (index == 3) { return "The Deep"; } else if (index == 4) { return "The Jade Prism"; } else if (index == 5) { return "Cosmic Understanding"; } return ""; } function getFlag(IShellFramework collection, uint256 tokenId) public view returns (uint256) { return collection.readTokenInt(StorageLocation.MINT_DATA, tokenId, "flag"); } function _computeName(IShellFramework collection, uint256 tokenId) internal view override returns (string memory) { uint256 flag = getFlag(collection, tokenId); return string( abi.encodePacked( "Morph #", Strings.toString(tokenId), flag == 2 ? ": Cosmic Scroll of " : flag == 1 ? ": Mythical Scroll of " : ": Scroll of ", getPaletteName(tokenId) ) ); } function _computeDescription(IShellFramework collection, uint256 tokenId) internal view override returns (string memory) { uint256 flag = getFlag(collection, tokenId); return string( abi.encodePacked( flag > 1 ? "A mysterious scroll... you feel it pulsating with cosmic energy. Its whispers speak secrets of cosmic significance." : flag > 0 ? "A mysterious scroll... you feel it pulsating with mythical energy. You sense its power is great." : "A mysterious scroll... you feel it pulsating with energy. What secrets might it hold?", "\\n\\nhttps://playgrounds.wtf" ) ); } // compute the metadata image field for a given token function _computeImageUri(IShellFramework collection, uint256 tokenId) internal view override returns (string memory) { uint256 flag = getFlag(collection, tokenId); string memory image = string( abi.encodePacked( "S001-", getPalette(tokenId), "-", getVariation(tokenId, flag), ".png" ) ); return string( abi.encodePacked( "ipfs://ipfs/QmRCKXGuM47BzepjiHu2onshPFRWb7TMVEfd4K87cszg4w/", image ) ); } // compute the external_url field for a given token function _computeExternalUrl(IShellFramework, uint256) internal pure override returns (string memory) { return "https://morphs.wtf"; } function _computeAttributes(IShellFramework collection, uint256 tokenId) internal view override returns (Attribute[] memory) { Attribute[] memory attributes = new Attribute[](3); attributes[0] = Attribute({ key: "Palette", value: getPaletteName(tokenId) }); attributes[1] = Attribute({ key: "Variation", value: getVariation(tokenId, getFlag(collection, tokenId)) }); uint256 flag = getFlag(collection, tokenId); attributes[2] = Attribute({ key: "Affinity", value: flag > 1 ? "Cosmic" : flag > 0 ? "Mythical" : "Citizen" }); return attributes; } }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/interfaces/IERC165.sol"; import "../IEngine.sol"; // simple starting point for engines // - default name // - proper erc165 support // - no royalties // - nop on beforeTokenTransfer and afterEngineSet hooks abstract contract ShellBaseEngine is IEngine { // nop function beforeTokenTransfer( address, address, address, uint256, uint256 ) external pure virtual override { return; } // nop function afterEngineSet(uint256) external view virtual override { return; } // no royalties function getRoyaltyInfo( IShellFramework, uint256, uint256 ) external view virtual returns (address receiver, uint256 royaltyAmount) { receiver = address(0); royaltyAmount = 0; } function supportsInterface(bytes4 interfaceId) public pure virtual override returns (bool) { return interfaceId == type(IEngine).interfaceId || interfaceId == type(IERC165).interfaceId; } }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../libraries/Base64.sol"; import "../IShellFramework.sol"; import "../IEngine.sol"; struct Attribute { string key; string value; } abstract contract OnChainMetadataEngine is IEngine { // Called by the collection to resolve a response for tokenURI function getTokenURI(IShellFramework collection, uint256 tokenId) external view returns (string memory) { string memory name = _computeName(collection, tokenId); string memory description = _computeDescription(collection, tokenId); string memory image = _computeImageUri(collection, tokenId); string memory externalUrl = _computeExternalUrl(collection, tokenId); Attribute[] memory attributes = _computeAttributes(collection, tokenId); string memory attributesInnerJson = ""; for (uint256 i = 0; i < attributes.length; i++) { attributesInnerJson = string( bytes( abi.encodePacked( attributesInnerJson, i > 0 ? ", " : "", '{"trait_type": "', attributes[i].key, '", "value": "', attributes[i].value, '"}' ) ) ); } return string( abi.encodePacked( "data:application/json;base64,", Base64.encode( bytes( abi.encodePacked( '{"name":"', name, '", "description":"', description, '", "image": "', image, '", "external_url": "', externalUrl, '", "attributes": [', attributesInnerJson, "]}" ) ) ) ) ); } // compute the metadata name for a given token function _computeName(IShellFramework collection, uint256 tokenId) internal view virtual returns (string memory); // compute the metadata description for a given token function _computeDescription(IShellFramework collection, uint256 tokenId) internal view virtual returns (string memory); // compute the metadata image field for a given token function _computeImageUri(IShellFramework collection, uint256 tokenId) internal view virtual returns (string memory); // compute the external_url field for a given token function _computeExternalUrl(IShellFramework collection, uint256 tokenId) internal view virtual returns (string memory); function _computeAttributes(IShellFramework collection, uint256 token) internal view virtual returns (Attribute[] memory); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Strings.sol) pragma solidity ^0.8.0; /** * @dev String operations. */ library Strings { 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.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (interfaces/IERC165.sol) pragma solidity ^0.8.0; import "../utils/introspection/IERC165.sol";
//SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/interfaces/IERC165.sol"; import "./IShellFramework.sol"; // Required interface for framework engines // interfaceId = 0x0b1d171c interface IEngine is IERC165 { // Get the name for this engine function name() external pure returns (string memory); // Called by the framework to resolve a response for tokenURI method function getTokenURI(IShellFramework collection, uint256 tokenId) external view returns (string memory); // Called by the framework to resolve a response for royaltyInfo method function getRoyaltyInfo( IShellFramework collection, uint256 tokenId, uint256 salePrice ) external view returns (address receiver, uint256 royaltyAmount); // Called by the framework during a transfer, including mints (from=0) and // burns (to=0). Cannot break transfer even in the case of reverting, as the // collection will wrap the downstream call in a try/catch // collection = msg.sender function beforeTokenTransfer( address operator, address from, address to, uint256 tokenId, uint256 amount ) external; // Called by the framework whenever an engine is set on a fork, including // the collection (fork id = 0). Can be used by engine developers to prevent // an engine from being installed in a collection or non-canonical fork if // desired // collection = msg.sender function afterEngineSet(uint256 forkId) external; }
// 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); }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/interfaces/IERC165.sol"; import "@openzeppelin/contracts/interfaces/IERC2981.sol"; import "./libraries/IOwnable.sol"; import "./IEngine.sol"; // storage flag enum StorageLocation { INVALID, // set by the engine at any time, mutable ENGINE, // set by the engine during minting, immutable MINT_DATA, // set by the framework during minting or collection creation, immutable FRAMEWORK } // string key / value struct StringStorage { string key; string value; } // int key / value struct IntStorage { string key; uint256 value; } // data provided when minting a new token struct MintEntry { address to; uint256 amount; MintOptions options; } // Data provided by engine when minting a new token struct MintOptions { bool storeEngine; bool storeMintedTo; bool storeTimestamp; bool storeBlockNumber; StringStorage[] stringData; IntStorage[] intData; } // Information about a fork struct Fork { IEngine engine; address owner; } // Interface for every collection launched by shell. // Concrete implementations must return true on ERC165 checks for this interface // (as well as erc165 / 2981) // interfaceId = TBD interface IShellFramework is IERC165, IERC2981 { // --- // Framework errors // --- // an engine was provided that did no pass the expected erc165 checks error InvalidEngine(); // a write was attempted that is not allowed error WriteNotAllowed(); // an operation was attempted but msg.sender was not the expected engine error SenderNotEngine(); // an operation was attempted but msg.sender was not the fork owner error SenderNotForkOwner(); // a token fork was attempted by an invalid msg.sender error SenderCannotFork(); // --- // Framework events // --- // a fork was created event ForkCreated(uint256 forkId, IEngine engine, address owner); // a fork had a new engine installed event ForkEngineUpdated(uint256 forkId, IEngine engine); // a fork had a new owner set event ForkOwnerUpdated(uint256 forkId, address owner); // a token has been set to a new fork event TokenForkUpdated(uint256 tokenId, uint256 forkId); // --- // Storage events // --- // A fork string was stored event ForkStringUpdated( StorageLocation location, uint256 forkId, string key, string value ); // A fork int was stored event ForkIntUpdated( StorageLocation location, uint256 forkId, string key, uint256 value ); // A token string was stored event TokenStringUpdated( StorageLocation location, uint256 tokenId, string key, string value ); // A token int was stored event TokenIntUpdated( StorageLocation location, uint256 tokenId, string key, uint256 value ); // --- // Collection base // --- // called immediately after cloning function initialize( string calldata name, string calldata symbol, IEngine engine, address owner ) external; // --- // General collection info / metadata // --- // collection owner (fork 0 owner) function owner() external view returns (address); // collection name function name() external view returns (string memory); // collection name function symbol() external view returns (string memory); // next token id serial number function nextTokenId() external view returns (uint256); // next fork id serial number function nextForkId() external view returns (uint256); // --- // Fork functionality // --- // Create a new fork with a specific engine, fork all the tokenIds to the // new engine, and return the fork ID function createFork( IEngine engine, address owner, uint256[] calldata tokenIds ) external returns (uint256); // Set the engine for a specific fork. Must be fork owner function setForkEngine(uint256 forkId, IEngine engine) external; // Set the fork owner. Must be fork owner function setForkOwner(uint256 forkId, address owner) external; // Set the fork of a specific token. Must be token owner function setTokenFork(uint256 tokenId, uint256 forkId) external; // Set the fork for several tokens. Must own all tokens function setTokenForks(uint256[] memory tokenIds, uint256 forkId) external; // --- // Fork views // --- // Get information about a fork function getFork(uint256 forkId) external view returns (Fork memory); // Get the collection / canonical engine. getFork(0).engine function getForkEngine(uint256 forkId) external view returns (IEngine); // Get a token's fork ID function getTokenForkId(uint256 tokenId) external view returns (uint256); // Get a token's engine. getFork(getTokenForkId(tokenId)).engine function getTokenEngine(uint256 tokenId) external view returns (IEngine); // Determine if a given msg.sender can fork a token function canSenderForkToken(address sender, uint256 tokenId) external view returns (bool); // --- // Engine functionality // --- // mint new tokens. Only callable by collection engine function mint(MintEntry calldata entry) external returns (uint256); // mint new tokens. Only callable by collection engine function batchMint(MintEntry[] calldata entries) external returns (uint256[] memory); // --- // Storage writes // --- // Write a string to collection storage. Only callable by collection engine function writeForkString( StorageLocation location, uint256 forkId, string calldata key, string calldata value ) external; // Write a string to collection storage. Only callable by collection engine function writeForkInt( StorageLocation location, uint256 forkId, string calldata key, uint256 value ) external; // Write a string to token storage. Only callable by token engine function writeTokenString( StorageLocation location, uint256 tokenId, string calldata key, string calldata value ) external; // Write a string to token storage. Only callable by token engine function writeTokenInt( StorageLocation location, uint256 tokenId, string calldata key, uint256 value ) external; // --- // Storage reads // --- // Read a string from collection storage function readForkString( StorageLocation location, uint256 forkId, string calldata key ) external view returns (string memory); // Read a uint256 from collection storage function readForkInt( StorageLocation location, uint256 forkId, string calldata key ) external view returns (uint256); // Read a string from token storage function readTokenString( StorageLocation location, uint256 tokenId, string calldata key ) external view returns (string memory); // Read a uint256 from token storage function readTokenInt( StorageLocation location, uint256 tokenId, string calldata key ) external view returns (uint256); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (interfaces/IERC2981.sol) pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @dev Interface for the NFT Royalty Standard */ interface IERC2981 is IERC165 { /** * @dev Called with the sale price to determine how much royalty is owed and to whom. * @param tokenId - the NFT asset queried for royalty information * @param salePrice - the sale price of the NFT asset specified by `tokenId` * @return receiver - address of who should be sent the royalty payment * @return royaltyAmount - the royalty payment amount for `salePrice` */ function royaltyInfo(uint256 tokenId, uint256 salePrice) external view returns (address receiver, uint256 royaltyAmount); }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // (semi) standard ownable interface interface IOwnable { event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); function owner() external view returns (address); function renounceOwnership() external; function transferOwnership(address newOwner) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // https://github.com/Brechtpd/base64/blob/main/base64.sol /// @title Base64 /// @author Brecht Devos - <[email protected]> /// @notice Provides a function for encoding some bytes in base64 library Base64 { string internal constant TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; function encode(bytes memory data) internal pure returns (string memory) { if (data.length == 0) return ""; // load the table into memory string memory table = TABLE; // multiply by 4/3 rounded up uint256 encodedLen = 4 * ((data.length + 2) / 3); // add some extra buffer at the end required for the writing string memory result = new string(encodedLen + 32); assembly { // set the actual output length mstore(result, encodedLen) // prepare the lookup table let tablePtr := add(table, 1) // input ptr let dataPtr := data let endPtr := add(dataPtr, mload(data)) // result ptr, jump over length let resultPtr := add(result, 32) // run over the input, 3 bytes at a time for { } lt(dataPtr, endPtr) { } { dataPtr := add(dataPtr, 3) // read 3 bytes let input := mload(dataPtr) // write 4 characters mstore( resultPtr, shl(248, mload(add(tablePtr, and(shr(18, input), 0x3F)))) ) resultPtr := add(resultPtr, 1) mstore( resultPtr, shl(248, mload(add(tablePtr, and(shr(12, input), 0x3F)))) ) resultPtr := add(resultPtr, 1) mstore( resultPtr, shl(248, mload(add(tablePtr, and(shr(6, input), 0x3F)))) ) resultPtr := add(resultPtr, 1) mstore( resultPtr, shl(248, mload(add(tablePtr, and(input, 0x3F)))) ) resultPtr := add(resultPtr, 1) } // padding with '=' switch mod(mload(data), 3) case 1 { mstore(sub(resultPtr, 2), shl(240, 0x3d3d)) } case 2 { mstore(sub(resultPtr, 1), shl(248, 0x3d)) } } return result; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"MintingPeriodHasEnded","type":"error"},{"inputs":[],"name":"MINTING_ENDS_AT_TIMESTAMP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"afterEngineSet","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"beforeTokenTransfer","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"contract IShellFramework","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getFlag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getPalette","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getPaletteName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"contract IShellFramework","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"getRoyaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IShellFramework","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"flag","type":"uint256"}],"name":"getVariation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"contract IShellFramework","name":"collection","type":"address"},{"internalType":"uint256","name":"flag","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50611997806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637047007c116100715780637047007c1461018b578063adce53201461019e578063cd0cc7ff146101b1578063d70dee32146101bc578063e0d07021146101d3578063e7504d0d146101e657600080fd5b806301ffc9a7146100b957806306fdde03146100e15780630b63fd621461010c57806336de97421461011f57806340c10f1914610157578063505e570a14610178575b600080fd5b6100cc6100c7366004610fdc565b6101f7565b60405190151581526020015b60405180910390f35b6040805180820190915260068152656d6f7270687360d01b60208201525b6040516100d89190611062565b6100ff61011a36600461108a565b61022e565b61013861012d3660046110b6565b506000928392509050565b604080516001600160a01b0390931683526020830191909152016100d8565b61016a61016536600461108a565b6103c2565b6040519081526020016100d8565b6100ff6101863660046110eb565b610605565b6100ff610199366004611104565b61067d565b61016a6101ac36600461108a565b6107a7565b61016a63621db66081565b6101d16101ca366004611126565b5050505050565b005b6100ff6101e13660046110eb565b610830565b6101d16101f43660046110eb565b50565b60006001600160e01b031982166302c745c760e21b148061022857506001600160e01b031982166301ffc9a760e01b145b92915050565b6060600061023c84846109bb565b9050600061024a8585610aa1565b905060006102588686610b27565b9050600061028b604080518082019091526012815271343a3a38399d1797b6b7b9383439973bba3360711b602082015290565b905060006102998888610b98565b60408051602081019091526000808252919250905b82518110156103645781600082116102d557604051806020016040528060008152506102f1565b60405180604001604052806002815260200161016160f51b8152505b84838151811061030357610303611181565b60200260200101516000015185848151811061032157610321611181565b6020026020010151602001516040516020016103409493929190611197565b6040516020818303038152906040529150808061035c9061124a565b9150506102ae565b506103958686868685604051602001610381959493929190611265565b604051602081830303815290604052610d6e565b6040516020016103a59190611376565b604051602081830303815290604052965050505050505092915050565b600063621db66042106103e857604051638ea4cb3960e01b815260040160405180910390fd5b6060821561047c5760408051600180825281830190925290816020015b60408051808201909152606081526000602082015281526020019060019003908161040557505060408051608081018252600491810191825263666c616760e01b606082015290815260208101859052815191925090829060009061046c5761046c611181565b60200260200101819052506104be565b60408051600080825260208201909252906104ba565b6040805180820190915260608152600060208201528152602001906001900390816104925790505b5090505b6000846001600160a01b031663c5407b8a6040518060600160405280336001600160a01b03168152602001600181526020016040518060c00160405280600015158152602001600015158152602001600015158152602001600015158152602001600067ffffffffffffffff811115610539576105396113bb565b60405190808252806020026020018201604052801561057e57816020015b60408051808201909152606080825260208201528152602001906001900390816105575790505b50815260200187905290526040516001600160e01b031960e084901b1681526105aa91906004016114aa565b602060405180830381600087803b1580156105c457600080fd5b505af11580156105d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fc919061153c565b95945050505050565b6060600060068360405160200161061e91815260200190565b6040516020818303038152906040528051906020012060001c610641919061156b565b905061065661065182600161157f565b610ed6565b6040516020016106669190611597565b604051602081830303815290604052915050919050565b6060600282106106a857506040805180820190915260048152635830303160e01b6020820152610228565b81600114156107225760006004846040516020016106c891815260200190565b6040516020818303038152906040528051906020012060001c6106eb919061156b565b90506106fb61065182600161157f565b60405160200161070b91906115c2565b604051602081830303815290604052915050610228565b6000600a8460405160200161073991815260200190565b6040516020818303038152906040528051906020012060001c61075c919061156b565b905080600914156107895750506040805180820190915260048152630433031360e41b6020820152610228565b61079761065182600161157f565b60405160200161070b91906115e0565b60405163f8bbb59b60e01b81526000906001600160a01b0384169063f8bbb59b906107d99060029086906004016115fe565b60206040518083038186803b1580156107f157600080fd5b505afa158015610805573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610829919061153c565b9392505050565b6060600060068360405160200161084991815260200190565b6040516020818303038152906040528051906020012060001c61086c919061156b565b90508061089a57505060408051808201909152600981526811dc995e5cdadd5b1b60ba1b6020820152919050565b80600114156108d157505060408051808201909152601081526f416e6369656e74204f70696e696f6e7360801b6020820152919050565b806002141561090657505060408051808201909152600e81526d2a3432902232b9b2b93a1029bab760911b6020820152919050565b8060031415610935575050604080518082019091526008815267054686520446565760c41b6020820152919050565b806004141561096a57505060408051808201909152600e81526d546865204a61646520507269736d60901b6020820152919050565b80600514156109a5575050604080518082019091526014815273436f736d696320556e6465727374616e64696e6760601b6020820152919050565b5050604080516020810190915260008152919050565b606060006109c984846107a7565b90506109d483610ed6565b81600214610a415781600114610a0e576040518060400160405280600c81526020016b01d1029b1b937b6361037b3160a51b815250610a6e565b6040518060400160405280601581526020017401d1026bcba3434b1b0b61029b1b937b6361037b31605d1b815250610a6e565b6040518060400160405280601381526020017201d1021b7b9b6b4b19029b1b937b6361037b31606d1b8152505b610a7785610830565b604051602001610a8993929190611649565b60405160208183030381529060405291505092915050565b60606000610aaf84846107a7565b905060018111610afd5760008111610adf576040518060800160405280605581526020016117fa60559139610b17565b60405180608001604052806060815260200161190260609139610b17565b6040518060a001604052806073815260200161184f607391395b604051602001610a8991906116a5565b60606000610b3584846107a7565b90506000610b4284610605565b610b4c858461067d565b604051602001610b5d9291906116e6565b604051602081830303815290604052905080604051602001610b7f9190611744565b6040516020818303038152906040529250505092915050565b6040805160038082526080820190925260609160009190816020015b6040805180820190915260608082526020820152815260200190600190039081610bb45750506040805160808101825260079181019182526650616c6574746560c81b606082015290815290915060208101610c0f85610830565b81525081600081518110610c2557610c25611181565b60200260200101819052506040518060400160405280604051806040016040528060098152602001682b30b934b0ba34b7b760b91b8152508152602001610c708561019988886107a7565b81525081600181518110610c8657610c86611181565b60200260200101819052506000610c9d85856107a7565b60408051608081018252600891810191825267416666696e69747960c01b60608201529081529091506020810160018311610d255760008311610cff576040518060400160405280600781526020016621b4ba34bd32b760c91b815250610d45565b60405180604001604052806008815260200167135e5d1a1a58d85b60c21b815250610d45565b60405180604001604052806006815260200165436f736d696360d01b8152505b81525082600281518110610d5b57610d5b611181565b6020908102919091010152509392505050565b6060815160001415610d8e57505060408051602081019091526000815290565b60006040518060600160405280604081526020016118c26040913990506000600384516002610dbd919061157f565b610dc791906117af565b610dd29060046117c3565b90506000610de182602061157f565b67ffffffffffffffff811115610df957610df96113bb565b6040519080825280601f01601f191660200182016040528015610e23576020820181803683370190505b509050818152600183018586518101602084015b81831015610e915760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b93820193909352600401610e37565b600389510660018114610eab5760028114610ebc57610ec8565b613d3d60f01b600119830152610ec8565b603d60f81b6000198301525b509398975050505050505050565b606081610efa5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610f245780610f0e8161124a565b9150610f1d9050600a836117af565b9150610efe565b60008167ffffffffffffffff811115610f3f57610f3f6113bb565b6040519080825280601f01601f191660200182016040528015610f69576020820181803683370190505b5090505b8415610fd457610f7e6001836117e2565b9150610f8b600a8661156b565b610f9690603061157f565b60f81b818381518110610fab57610fab611181565b60200101906001600160f81b031916908160001a905350610fcd600a866117af565b9450610f6d565b949350505050565b600060208284031215610fee57600080fd5b81356001600160e01b03198116811461082957600080fd5b60005b83811015611021578181015183820152602001611009565b83811115611030576000848401525b50505050565b6000815180845261104e816020860160208601611006565b601f01601f19169290920160200192915050565b6020815260006108296020830184611036565b6001600160a01b03811681146101f457600080fd5b6000806040838503121561109d57600080fd5b82356110a881611075565b946020939093013593505050565b6000806000606084860312156110cb57600080fd5b83356110d681611075565b95602085013595506040909401359392505050565b6000602082840312156110fd57600080fd5b5035919050565b6000806040838503121561111757600080fd5b50508035926020909101359150565b600080600080600060a0868803121561113e57600080fd5b853561114981611075565b9450602086013561115981611075565b9350604086013561116981611075565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052603260045260246000fd5b600085516111a9818460208a01611006565b8551908301906111bd818360208a01611006565b6f3d913a3930b4ba2fba3cb832911d101160811b910190815284516111e9816010840160208901611006565b6c111610113b30b63ab2911d101160991b60109290910191820152835161121781601d840160208801611006565b61227d60f01b601d9290910191820152601f019695505050505050565b634e487b7160e01b600052601160045260246000fd5b600060001982141561125e5761125e611234565b5060010190565b683d913730b6b2911d1160b91b8152855160009061128a816009850160208b01611006565b71111610113232b9b1b934b83a34b7b7111d1160711b60099184019182015286516112bc81601b840160208b01611006565b6c1116101134b6b0b3b2911d101160991b601b929091019182015285516112ea816028840160208a01611006565b731116101132bc3a32b93730b62fbab936111d101160611b60289290910191820152845161131f81603c840160208901611006565b71222c202261747472696275746573223a205b60701b603c9290910191820152835161135281604e840160208801611006565b611369604e82840101615d7d60f01b815260020190565b9998505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516113ae81601d850160208701611006565b91909101601d0192915050565b634e487b7160e01b600052604160045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b8581101561143f57828403895281516040815181875261141182880182611036565b9150508682015191508581038787015261142b8183611036565b9a87019a95505050908401906001016113ef565b5091979650505050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561143f57828403895281516040815181875261148c82880182611036565b9288015196880196909652509885019893509084019060010161146a565b6020815260018060a01b03825116602082015260208201516040820152600060408301516060808401528051151560808401526020810151151560a08401526040810151151560c08401526060810151151560e0840152608081015160c061010085015261151c6101408501826113d1565b905060a08201519150607f19848203016101208501526105fc818361144c565b60006020828403121561154e57600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b60008261157a5761157a611555565b500690565b6000821982111561159257611592611234565b500190565b6205030360ec1b8152600082516115b5816003850160208701611006565b9190910160030192915050565b6204d30360ec1b8152600082516115b5816003850160208701611006565b6204330360ec1b8152600082516115b5816003850160208701611006565b60006004841061161e57634e487b7160e01b600052602160045260246000fd5b50918252602082015260606040820181905260049082015263666c616760e01b608082015260a00190565b664d6f727068202360c81b81526000845161166b816007850160208901611006565b845190830190611682816007840160208901611006565b8451910190611698816007840160208801611006565b0160070195945050505050565b600082516116b7818460208701611006565b7f5c6e5c6e68747470733a2f2f706c617967726f756e64732e7774660000000000920191825250601b01919050565b64533030312d60d81b815260008351611706816005850160208801611006565b602d60f81b6005918401918201528351611727816006840160208801611006565b632e706e6760e01b60069290910191820152600a01949350505050565b7f697066733a2f2f697066732f516d52434b5847754d3437427a65706a6948753281527f6f6e7368504652576237544d56456664344b383763737a6734772f00000000006020820152600082516117a281603b850160208701611006565b91909101603b0192915050565b6000826117be576117be611555565b500490565b60008160001904831182151516156117dd576117dd611234565b500290565b6000828210156117f4576117f4611234565b50039056fe41206d7973746572696f7573207363726f6c6c2e2e2e20796f75206665656c2069742070756c736174696e67207769746820656e657267792e20576861742073656372657473206d6967687420697420686f6c643f41206d7973746572696f7573207363726f6c6c2e2e2e20796f75206665656c2069742070756c736174696e67207769746820636f736d696320656e657267792e2049747320776869737065727320737065616b2073656372657473206f6620636f736d6963207369676e69666963616e63652e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f41206d7973746572696f7573207363726f6c6c2e2e2e20796f75206665656c2069742070756c736174696e672077697468206d7974686963616c20656e657267792e20596f752073656e73652069747320706f7765722069732067726561742ea264697066735822122040df0b40064a50e118c9e38a6a9774d1e2997483f94accb424ad4e030c9155ff64736f6c63430008090033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637047007c116100715780637047007c1461018b578063adce53201461019e578063cd0cc7ff146101b1578063d70dee32146101bc578063e0d07021146101d3578063e7504d0d146101e657600080fd5b806301ffc9a7146100b957806306fdde03146100e15780630b63fd621461010c57806336de97421461011f57806340c10f1914610157578063505e570a14610178575b600080fd5b6100cc6100c7366004610fdc565b6101f7565b60405190151581526020015b60405180910390f35b6040805180820190915260068152656d6f7270687360d01b60208201525b6040516100d89190611062565b6100ff61011a36600461108a565b61022e565b61013861012d3660046110b6565b506000928392509050565b604080516001600160a01b0390931683526020830191909152016100d8565b61016a61016536600461108a565b6103c2565b6040519081526020016100d8565b6100ff6101863660046110eb565b610605565b6100ff610199366004611104565b61067d565b61016a6101ac36600461108a565b6107a7565b61016a63621db66081565b6101d16101ca366004611126565b5050505050565b005b6100ff6101e13660046110eb565b610830565b6101d16101f43660046110eb565b50565b60006001600160e01b031982166302c745c760e21b148061022857506001600160e01b031982166301ffc9a760e01b145b92915050565b6060600061023c84846109bb565b9050600061024a8585610aa1565b905060006102588686610b27565b9050600061028b604080518082019091526012815271343a3a38399d1797b6b7b9383439973bba3360711b602082015290565b905060006102998888610b98565b60408051602081019091526000808252919250905b82518110156103645781600082116102d557604051806020016040528060008152506102f1565b60405180604001604052806002815260200161016160f51b8152505b84838151811061030357610303611181565b60200260200101516000015185848151811061032157610321611181565b6020026020010151602001516040516020016103409493929190611197565b6040516020818303038152906040529150808061035c9061124a565b9150506102ae565b506103958686868685604051602001610381959493929190611265565b604051602081830303815290604052610d6e565b6040516020016103a59190611376565b604051602081830303815290604052965050505050505092915050565b600063621db66042106103e857604051638ea4cb3960e01b815260040160405180910390fd5b6060821561047c5760408051600180825281830190925290816020015b60408051808201909152606081526000602082015281526020019060019003908161040557505060408051608081018252600491810191825263666c616760e01b606082015290815260208101859052815191925090829060009061046c5761046c611181565b60200260200101819052506104be565b60408051600080825260208201909252906104ba565b6040805180820190915260608152600060208201528152602001906001900390816104925790505b5090505b6000846001600160a01b031663c5407b8a6040518060600160405280336001600160a01b03168152602001600181526020016040518060c00160405280600015158152602001600015158152602001600015158152602001600015158152602001600067ffffffffffffffff811115610539576105396113bb565b60405190808252806020026020018201604052801561057e57816020015b60408051808201909152606080825260208201528152602001906001900390816105575790505b50815260200187905290526040516001600160e01b031960e084901b1681526105aa91906004016114aa565b602060405180830381600087803b1580156105c457600080fd5b505af11580156105d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fc919061153c565b95945050505050565b6060600060068360405160200161061e91815260200190565b6040516020818303038152906040528051906020012060001c610641919061156b565b905061065661065182600161157f565b610ed6565b6040516020016106669190611597565b604051602081830303815290604052915050919050565b6060600282106106a857506040805180820190915260048152635830303160e01b6020820152610228565b81600114156107225760006004846040516020016106c891815260200190565b6040516020818303038152906040528051906020012060001c6106eb919061156b565b90506106fb61065182600161157f565b60405160200161070b91906115c2565b604051602081830303815290604052915050610228565b6000600a8460405160200161073991815260200190565b6040516020818303038152906040528051906020012060001c61075c919061156b565b905080600914156107895750506040805180820190915260048152630433031360e41b6020820152610228565b61079761065182600161157f565b60405160200161070b91906115e0565b60405163f8bbb59b60e01b81526000906001600160a01b0384169063f8bbb59b906107d99060029086906004016115fe565b60206040518083038186803b1580156107f157600080fd5b505afa158015610805573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610829919061153c565b9392505050565b6060600060068360405160200161084991815260200190565b6040516020818303038152906040528051906020012060001c61086c919061156b565b90508061089a57505060408051808201909152600981526811dc995e5cdadd5b1b60ba1b6020820152919050565b80600114156108d157505060408051808201909152601081526f416e6369656e74204f70696e696f6e7360801b6020820152919050565b806002141561090657505060408051808201909152600e81526d2a3432902232b9b2b93a1029bab760911b6020820152919050565b8060031415610935575050604080518082019091526008815267054686520446565760c41b6020820152919050565b806004141561096a57505060408051808201909152600e81526d546865204a61646520507269736d60901b6020820152919050565b80600514156109a5575050604080518082019091526014815273436f736d696320556e6465727374616e64696e6760601b6020820152919050565b5050604080516020810190915260008152919050565b606060006109c984846107a7565b90506109d483610ed6565b81600214610a415781600114610a0e576040518060400160405280600c81526020016b01d1029b1b937b6361037b3160a51b815250610a6e565b6040518060400160405280601581526020017401d1026bcba3434b1b0b61029b1b937b6361037b31605d1b815250610a6e565b6040518060400160405280601381526020017201d1021b7b9b6b4b19029b1b937b6361037b31606d1b8152505b610a7785610830565b604051602001610a8993929190611649565b60405160208183030381529060405291505092915050565b60606000610aaf84846107a7565b905060018111610afd5760008111610adf576040518060800160405280605581526020016117fa60559139610b17565b60405180608001604052806060815260200161190260609139610b17565b6040518060a001604052806073815260200161184f607391395b604051602001610a8991906116a5565b60606000610b3584846107a7565b90506000610b4284610605565b610b4c858461067d565b604051602001610b5d9291906116e6565b604051602081830303815290604052905080604051602001610b7f9190611744565b6040516020818303038152906040529250505092915050565b6040805160038082526080820190925260609160009190816020015b6040805180820190915260608082526020820152815260200190600190039081610bb45750506040805160808101825260079181019182526650616c6574746560c81b606082015290815290915060208101610c0f85610830565b81525081600081518110610c2557610c25611181565b60200260200101819052506040518060400160405280604051806040016040528060098152602001682b30b934b0ba34b7b760b91b8152508152602001610c708561019988886107a7565b81525081600181518110610c8657610c86611181565b60200260200101819052506000610c9d85856107a7565b60408051608081018252600891810191825267416666696e69747960c01b60608201529081529091506020810160018311610d255760008311610cff576040518060400160405280600781526020016621b4ba34bd32b760c91b815250610d45565b60405180604001604052806008815260200167135e5d1a1a58d85b60c21b815250610d45565b60405180604001604052806006815260200165436f736d696360d01b8152505b81525082600281518110610d5b57610d5b611181565b6020908102919091010152509392505050565b6060815160001415610d8e57505060408051602081019091526000815290565b60006040518060600160405280604081526020016118c26040913990506000600384516002610dbd919061157f565b610dc791906117af565b610dd29060046117c3565b90506000610de182602061157f565b67ffffffffffffffff811115610df957610df96113bb565b6040519080825280601f01601f191660200182016040528015610e23576020820181803683370190505b509050818152600183018586518101602084015b81831015610e915760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b93820193909352600401610e37565b600389510660018114610eab5760028114610ebc57610ec8565b613d3d60f01b600119830152610ec8565b603d60f81b6000198301525b509398975050505050505050565b606081610efa5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610f245780610f0e8161124a565b9150610f1d9050600a836117af565b9150610efe565b60008167ffffffffffffffff811115610f3f57610f3f6113bb565b6040519080825280601f01601f191660200182016040528015610f69576020820181803683370190505b5090505b8415610fd457610f7e6001836117e2565b9150610f8b600a8661156b565b610f9690603061157f565b60f81b818381518110610fab57610fab611181565b60200101906001600160f81b031916908160001a905350610fcd600a866117af565b9450610f6d565b949350505050565b600060208284031215610fee57600080fd5b81356001600160e01b03198116811461082957600080fd5b60005b83811015611021578181015183820152602001611009565b83811115611030576000848401525b50505050565b6000815180845261104e816020860160208601611006565b601f01601f19169290920160200192915050565b6020815260006108296020830184611036565b6001600160a01b03811681146101f457600080fd5b6000806040838503121561109d57600080fd5b82356110a881611075565b946020939093013593505050565b6000806000606084860312156110cb57600080fd5b83356110d681611075565b95602085013595506040909401359392505050565b6000602082840312156110fd57600080fd5b5035919050565b6000806040838503121561111757600080fd5b50508035926020909101359150565b600080600080600060a0868803121561113e57600080fd5b853561114981611075565b9450602086013561115981611075565b9350604086013561116981611075565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052603260045260246000fd5b600085516111a9818460208a01611006565b8551908301906111bd818360208a01611006565b6f3d913a3930b4ba2fba3cb832911d101160811b910190815284516111e9816010840160208901611006565b6c111610113b30b63ab2911d101160991b60109290910191820152835161121781601d840160208801611006565b61227d60f01b601d9290910191820152601f019695505050505050565b634e487b7160e01b600052601160045260246000fd5b600060001982141561125e5761125e611234565b5060010190565b683d913730b6b2911d1160b91b8152855160009061128a816009850160208b01611006565b71111610113232b9b1b934b83a34b7b7111d1160711b60099184019182015286516112bc81601b840160208b01611006565b6c1116101134b6b0b3b2911d101160991b601b929091019182015285516112ea816028840160208a01611006565b731116101132bc3a32b93730b62fbab936111d101160611b60289290910191820152845161131f81603c840160208901611006565b71222c202261747472696275746573223a205b60701b603c9290910191820152835161135281604e840160208801611006565b611369604e82840101615d7d60f01b815260020190565b9998505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516113ae81601d850160208701611006565b91909101601d0192915050565b634e487b7160e01b600052604160045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b8581101561143f57828403895281516040815181875261141182880182611036565b9150508682015191508581038787015261142b8183611036565b9a87019a95505050908401906001016113ef565b5091979650505050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561143f57828403895281516040815181875261148c82880182611036565b9288015196880196909652509885019893509084019060010161146a565b6020815260018060a01b03825116602082015260208201516040820152600060408301516060808401528051151560808401526020810151151560a08401526040810151151560c08401526060810151151560e0840152608081015160c061010085015261151c6101408501826113d1565b905060a08201519150607f19848203016101208501526105fc818361144c565b60006020828403121561154e57600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b60008261157a5761157a611555565b500690565b6000821982111561159257611592611234565b500190565b6205030360ec1b8152600082516115b5816003850160208701611006565b9190910160030192915050565b6204d30360ec1b8152600082516115b5816003850160208701611006565b6204330360ec1b8152600082516115b5816003850160208701611006565b60006004841061161e57634e487b7160e01b600052602160045260246000fd5b50918252602082015260606040820181905260049082015263666c616760e01b608082015260a00190565b664d6f727068202360c81b81526000845161166b816007850160208901611006565b845190830190611682816007840160208901611006565b8451910190611698816007840160208801611006565b0160070195945050505050565b600082516116b7818460208701611006565b7f5c6e5c6e68747470733a2f2f706c617967726f756e64732e7774660000000000920191825250601b01919050565b64533030312d60d81b815260008351611706816005850160208801611006565b602d60f81b6005918401918201528351611727816006840160208801611006565b632e706e6760e01b60069290910191820152600a01949350505050565b7f697066733a2f2f697066732f516d52434b5847754d3437427a65706a6948753281527f6f6e7368504652576237544d56456664344b383763737a6734772f00000000006020820152600082516117a281603b850160208701611006565b91909101603b0192915050565b6000826117be576117be611555565b500490565b60008160001904831182151516156117dd576117dd611234565b500290565b6000828210156117f4576117f4611234565b50039056fe41206d7973746572696f7573207363726f6c6c2e2e2e20796f75206665656c2069742070756c736174696e67207769746820656e657267792e20576861742073656372657473206d6967687420697420686f6c643f41206d7973746572696f7573207363726f6c6c2e2e2e20796f75206665656c2069742070756c736174696e67207769746820636f736d696320656e657267792e2049747320776869737065727320737065616b2073656372657473206f6620636f736d6963207369676e69666963616e63652e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f41206d7973746572696f7573207363726f6c6c2e2e2e20796f75206665656c2069742070756c736174696e672077697468206d7974686963616c20656e657267792e20596f752073656e73652069747320706f7765722069732067726561742ea264697066735822122040df0b40064a50e118c9e38a6a9774d1e2997483f94accb424ad4e030c9155ff64736f6c63430008090033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.