Feature Tip: Add private address tag to any address under My Name Tag !
ERC-721
Overview
Max Total Supply
35,991 DD
Holders
2,781
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
5 DDLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DotDecode
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-03 */ // SPDX-License-Identifier: MIT // File: contracts/ERC721Community.sol // Sources flattened with hardhat v2.9.3 https://hardhat.org // File @openzeppelin/contracts/proxy/[email protected] // License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol) pragma solidity ^0.8.0; /** * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to * be specified by overriding the virtual {_implementation} function. * * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a * different contract through the {_delegate} function. * * The success and return data of the delegated call will be returned back to the caller of the proxy. */ abstract contract Proxy { /** * @dev Delegates the current call to `implementation`. * * This function does not return to its internal call site, it will return directly to the external caller. */ function _delegate(address implementation) internal virtual { assembly { // Copy msg.data. We take full control of memory in this inline assembly // block because it will not return to Solidity code. We overwrite the // Solidity scratch pad at memory position 0. calldatacopy(0, 0, calldatasize()) // Call the implementation. // out and outsize are 0 because we don't know the size yet. let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) // Copy the returned data. returndatacopy(0, 0, returndatasize()) switch result // delegatecall returns 0 on error. case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } /** * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function * and {_fallback} should delegate. */ function _implementation() internal view virtual returns (address); /** * @dev Delegates the current call to the address returned by `_implementation()`. * * This function does not return to its internal call site, it will return directly to the external caller. */ function _fallback() internal virtual { _beforeFallback(); _delegate(_implementation()); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other * function in the contract matches the call data. */ fallback() external payable virtual { _fallback(); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data * is empty. */ receive() external payable virtual { _fallback(); } /** * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` * call, or as part of the Solidity `fallback` or `receive` functions. * * If overridden should call `super._beforeFallback()`. */ function _beforeFallback() internal virtual {} } // File @openzeppelin/contracts/utils/[email protected] // License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol) pragma solidity ^0.8.1; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } // File @openzeppelin/contracts/utils/introspection/[email protected] // 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); } // File @openzeppelin/contracts/token/ERC721/[email protected] // License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; /** * @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); } // File contracts/interfaces/IERC721Community.sol // License-Identifier: MIT pragma solidity ^0.8.9; /** @dev config includes values have setters and can be changed later */ struct MintConfig { uint256 publicPrice; uint256 maxTokensPerMint; uint256 maxTokensPerWallet; uint256 royaltyFee; address payoutReceiver; bool shouldLockPayoutReceiver; bool shouldStartSale; bool shouldUseJsonExtension; } interface IERC721Community { function DEVELOPER() external pure returns (string memory _url); function DEVELOPER_ADDRESS() external pure returns (address payable _dev); // ------ View functions ------ function saleStarted() external view returns (bool); function isExtensionAdded(address extension) external view returns (bool); /** Extra information stored for each tokenId. Optional, provided on mint */ function data(uint256 tokenId) external view returns (bytes32); // ------ Mint functions ------ /** Mint from NFTExtension contract. Optionally provide data parameter. */ function mintExternal( uint256 amount, address to, bytes32 data ) external payable; // ------ Admin functions ------ function addExtension(address extension) external; function revokeExtension(address extension) external; function withdraw() external; // ------ View functions ------ /** Recommended royalty for tokenId sale. */ function royaltyInfo(uint256 tokenId, uint256 salePrice) external view returns (address receiver, uint256 royaltyAmount); // ------ Admin functions ------ function setRoyaltyReceiver(address receiver) external; function setRoyaltyFee(uint256 fee) external; } interface IERC721CommunityImplementation { function initialize( string memory _name, string memory _symbol, uint256 _maxSupply, uint256 _nReserved, bool _startAtOne, string memory uri, MintConfig memory config ) external; } // File contracts/ERC721Community.sol // License-Identifier: MIT pragma solidity ^0.8.0; /** * @title made by buildship.xyz * @dev ERC721Community is extendable implementation of ERC721 based on ERC721A and ERC721CommunityImplementation. */ // Want to launch your own collection? // Check out https://buildship.xyz // ,:loxO0KXXc // ,cdOKKKOxol:lKWl // ;oOXKko:, ;KNc // ox0X0d: cNK, // ;xXX0x: dWk // ,cdO0KKKKKXKo, ,0Nl // ;oOXKko:,;kWMNl dWO' // ,o0XKd:' oNMMK: cXX: // 'ckNNk: ;KMN0c cXXl // 'OWMMWKOdl; cl; oXXc // ;cclldxOKXKkl, ;kNO; // ;cdk0kl' ;clxXXo // ':oxo' c0WMMMMK; // :l: lNMWXxOWWo // '; :xdc' :XWd // , cXK; // ':, xXl // ;: ' o0c // ;c;,,,,' lx; // ''' cc // ,' type StartFromTokenIdOne is bool; contract ERC721Community is Proxy { address internal constant proxyImplementation = 0xf3E07A5cBDFE6a257A7caa4Fcb3187A1C2Ec6a2E; StartFromTokenIdOne internal constant START_FROM_ONE = StartFromTokenIdOne.wrap(true); StartFromTokenIdOne internal constant START_FROM_ZERO = StartFromTokenIdOne.wrap(false); constructor( string memory name, string memory symbol, uint256 maxSupply, uint256 nReserved, StartFromTokenIdOne startAtOne, string memory uri, MintConfig memory configValues ) { Address.functionDelegateCall( proxyImplementation, abi.encodeWithSelector( IERC721CommunityImplementation.initialize.selector, name, symbol, maxSupply, nReserved, startAtOne, uri, configValues ) ); } function implementation() public pure returns (address) { return _implementation(); } function _implementation() internal pure override returns (address) { return address(proxyImplementation); } } // File: contracts/dotdecode.sol pragma solidity ^0.8.9; // name: Dot Decode // contract by: buildship.xyz contract DotDecode is ERC721Community { constructor() ERC721Community("Dot Decode", "DD", 36000, 360, START_FROM_ONE, "ipfs://bafybeiegh3mkxom6ylm5c7ndre565eopc7dctkkg5ohahuenptjqkxghuy/", MintConfig(0.0001 ether, 10, 50, 0, 0x8003B00e7849182A85fFE1c16737964913c79083, false, false, true)) {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f446f74204465636f6465000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f4444000000000000000000000000000000000000000000000000000000000000815250618ca0610168600160405180608001604052806043815260200162000c1860439139604051806101000160405280655af3107a40008152602001600a81526020016032815260200160008152602001738003b00e7849182a85ffe1c16737964913c7908373ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160001515815260200160011515815250620001c473f3e07a5cbdfe6a257a7caa4fcb3187a1c2ec6a2e639d26c21060e01b898989898989896040516024016200015697969594939291906200057a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050620001d260201b6200008f1760201c565b50505050505050506200072f565b606062000200838360405180606001604052806027815260200162000bf1602791396200020860201b60201c565b905092915050565b60606200021b84620002ec60201b60201c565b6200025d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002549062000683565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1685604051620002879190620006f2565b600060405180830381855af49150503d8060008114620002c4576040519150601f19603f3d011682016040523d82523d6000602084013e620002c9565b606091505b5091509150620002e18282866200030f60201b60201c565b925050509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315620003215782905062000374565b600083511115620003355782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200036b91906200070b565b60405180910390fd5b9392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620003b75780820151818401526020810190506200039a565b60008484015250505050565b6000601f19601f8301169050919050565b6000620003e1826200037b565b620003ed818562000386565b9350620003ff81856020860162000397565b6200040a81620003c3565b840191505092915050565b6000819050919050565b6200042a8162000415565b82525050565b60008115159050919050565b6000620004498262000430565b9050919050565b6200045b816200043c565b82525050565b6200046c8162000415565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200049f8262000472565b9050919050565b620004b18162000492565b82525050565b620004c28162000430565b82525050565b61010082016000820151620004e1600085018262000461565b506020820151620004f6602085018262000461565b5060408201516200050b604085018262000461565b50606082015162000520606085018262000461565b506080820151620005356080850182620004a6565b5060a08201516200054a60a0850182620004b7565b5060c08201516200055f60c0850182620004b7565b5060e08201516200057460e0850182620004b7565b50505050565b60006101c082019050818103600083015262000597818a620003d4565b90508181036020830152620005ad8189620003d4565b9050620005be60408301886200041f565b620005cd60608301876200041f565b620005dc608083018662000450565b81810360a0830152620005f08185620003d4565b90506200060160c0830184620004c8565b98975050505050505050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006200066b60268362000386565b915062000678826200060d565b604082019050919050565b600060208201905081810360008301526200069e816200065c565b9050919050565b600081519050919050565b600081905092915050565b6000620006c882620006a5565b620006d48185620006b0565b9350620006e681856020860162000397565b80840191505092915050565b6000620007008284620006bb565b915081905092915050565b60006020820190508181036000830152620007278184620003d4565b905092915050565b6104b2806200073f6000396000f3fe6080604052600436106100225760003560e01c80635c60da1b1461003b57610031565b366100315761002f610066565b005b610039610066565b005b34801561004757600080fd5b50610050610080565b60405161005d9190610298565b60405180910390f35b61006e6100bc565b61007e6100796100be565b6100da565b565b600061008a6100be565b905090565b60606100b4838360405180606001604052806027815260200161045660279139610100565b905092915050565b565b600073f3e07a5cbdfe6a257a7caa4fcb3187a1c2ec6a2e905090565b3660008037600080366000845af43d6000803e80600081146100fb573d6000f35b3d6000fd5b606061010b846101cd565b61014a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014190610336565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168560405161017291906103c7565b600060405180830381855af49150503d80600081146101ad576040519150601f19603f3d011682016040523d82523d6000602084013e6101b2565b606091505b50915091506101c28282866101f0565b925050509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060831561020057829050610250565b6000835111156102135782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102479190610433565b60405180910390fd5b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061028282610257565b9050919050565b61029281610277565b82525050565b60006020820190506102ad6000830184610289565b92915050565b600082825260208201905092915050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006103206026836102b3565b915061032b826102c4565b604082019050919050565b6000602082019050818103600083015261034f81610313565b9050919050565b600081519050919050565b600081905092915050565b60005b8381101561038a57808201518184015260208101905061036f565b60008484015250505050565b60006103a182610356565b6103ab8185610361565b93506103bb81856020860161036c565b80840191505092915050565b60006103d38284610396565b915081905092915050565b600081519050919050565b6000601f19601f8301169050919050565b6000610405826103de565b61040f81856102b3565b935061041f81856020860161036c565b610428816103e9565b840191505092915050565b6000602082019050818103600083015261044d81846103fa565b90509291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207ac2a143184357bab09ac849ffcc45db0b93cadf4f9b94528b516829670c718f64736f6c63430008120033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564697066733a2f2f62616679626569656768336d6b786f6d36796c6d3563376e647265353635656f7063376463746b6b67356f68616875656e70746a716b78676875792f
Deployed Bytecode
0x6080604052600436106100225760003560e01c80635c60da1b1461003b57610031565b366100315761002f610066565b005b610039610066565b005b34801561004757600080fd5b50610050610080565b60405161005d9190610298565b60405180910390f35b61006e6100bc565b61007e6100796100be565b6100da565b565b600061008a6100be565b905090565b60606100b4838360405180606001604052806027815260200161045660279139610100565b905092915050565b565b600073f3e07a5cbdfe6a257a7caa4fcb3187a1c2ec6a2e905090565b3660008037600080366000845af43d6000803e80600081146100fb573d6000f35b3d6000fd5b606061010b846101cd565b61014a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014190610336565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168560405161017291906103c7565b600060405180830381855af49150503d80600081146101ad576040519150601f19603f3d011682016040523d82523d6000602084013e6101b2565b606091505b50915091506101c28282866101f0565b925050509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060831561020057829050610250565b6000835111156102135782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102479190610433565b60405180910390fd5b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061028282610257565b9050919050565b61029281610277565b82525050565b60006020820190506102ad6000830184610289565b92915050565b600082825260208201905092915050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006103206026836102b3565b915061032b826102c4565b604082019050919050565b6000602082019050818103600083015261034f81610313565b9050919050565b600081519050919050565b600081905092915050565b60005b8381101561038a57808201518184015260208101905061036f565b60008484015250505050565b60006103a182610356565b6103ab8185610361565b93506103bb81856020860161036c565b80840191505092915050565b60006103d38284610396565b915081905092915050565b600081519050919050565b6000601f19601f8301169050919050565b6000610405826103de565b61040f81856102b3565b935061041f81856020860161036c565b610428816103e9565b840191505092915050565b6000602082019050818103600083015261044d81846103fa565b90509291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207ac2a143184357bab09ac849ffcc45db0b93cadf4f9b94528b516829670c718f64736f6c63430008120033
Deployed Bytecode Sourcemap
22829:335:0:-:0;;;;;;;;;;;;;;;;;;;;;;;3169:11;:9;:11::i;:::-;22829:335;;2938:11;:9;:11::i;:::-;22829:335;22468:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2575:113;2624:17;:15;:17::i;:::-;2652:28;2662:17;:15;:17::i;:::-;2652:9;:28::i;:::-;2575:113::o;22468:99::-;22515:7;22542:17;:15;:17::i;:::-;22535:24;;22468:99;:::o;10331:200::-;10414:12;10446:77;10467:6;10475:4;10446:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;10439:84;;10331:200;;;;:::o;3478:46::-;:::o;22575:122::-;22634:7;21577:42;22654:35;;22575:122;:::o;1165:918::-;1508:14;1505:1;1502;1489:34;1726:1;1723;1707:14;1704:1;1688:14;1681:5;1668:60;1805:16;1802:1;1799;1784:38;1845:6;1919:1;1914:68;;;;2033:16;2030:1;2023:27;1914:68;1950:16;1947:1;1940:27;10725:396;10870:12;10903:18;10914:6;10903:10;:18::i;:::-;10895:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10978:12;10992:23;11019:6;:19;;11039:4;11019:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10977:67;;;;11062:51;11079:7;11088:10;11100:12;11062:16;:51::i;:::-;11055:58;;;;10725:396;;;;;:::o;4798:326::-;4858:4;5115:1;5093:7;:19;;;:23;5086:30;;4798:326;;;:::o;11349:762::-;11499:12;11528:7;11524:580;;;11559:10;11552:17;;;;11524:580;11693:1;11673:10;:17;:21;11669:424;;;11921:10;11915:17;11982:15;11969:10;11965:2;11961:19;11954:44;11669:424;12064:12;12057:20;;;;;;;;;;;:::i;:::-;;;;;;;;11349:762;;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:169::-;677:11;711:6;706:3;699:19;751:4;746:3;742:14;727:29;;593:169;;;;:::o;768:225::-;908:34;904:1;896:6;892:14;885:58;977:8;972:2;964:6;960:15;953:33;768:225;:::o;999:366::-;1141:3;1162:67;1226:2;1221:3;1162:67;:::i;:::-;1155:74;;1238:93;1327:3;1238:93;:::i;:::-;1356:2;1351:3;1347:12;1340:19;;999:366;;;:::o;1371:419::-;1537:4;1575:2;1564:9;1560:18;1552:26;;1624:9;1618:4;1614:20;1610:1;1599:9;1595:17;1588:47;1652:131;1778:4;1652:131;:::i;:::-;1644:139;;1371:419;;;:::o;1796:98::-;1847:6;1881:5;1875:12;1865:22;;1796:98;;;:::o;1900:147::-;2001:11;2038:3;2023:18;;1900:147;;;;:::o;2053:246::-;2134:1;2144:113;2158:6;2155:1;2152:13;2144:113;;;2243:1;2238:3;2234:11;2228:18;2224:1;2219:3;2215:11;2208:39;2180:2;2177:1;2173:10;2168:15;;2144:113;;;2291:1;2282:6;2277:3;2273:16;2266:27;2115:184;2053:246;;;:::o;2305:386::-;2409:3;2437:38;2469:5;2437:38;:::i;:::-;2491:88;2572:6;2567:3;2491:88;:::i;:::-;2484:95;;2588:65;2646:6;2641:3;2634:4;2627:5;2623:16;2588:65;:::i;:::-;2678:6;2673:3;2669:16;2662:23;;2413:278;2305:386;;;;:::o;2697:271::-;2827:3;2849:93;2938:3;2929:6;2849:93;:::i;:::-;2842:100;;2959:3;2952:10;;2697:271;;;;:::o;2974:99::-;3026:6;3060:5;3054:12;3044:22;;2974:99;;;:::o;3079:102::-;3120:6;3171:2;3167:7;3162:2;3155:5;3151:14;3147:28;3137:38;;3079:102;;;:::o;3187:377::-;3275:3;3303:39;3336:5;3303:39;:::i;:::-;3358:71;3422:6;3417:3;3358:71;:::i;:::-;3351:78;;3438:65;3496:6;3491:3;3484:4;3477:5;3473:16;3438:65;:::i;:::-;3528:29;3550:6;3528:29;:::i;:::-;3523:3;3519:39;3512:46;;3279:285;3187:377;;;;:::o;3570:313::-;3683:4;3721:2;3710:9;3706:18;3698:26;;3770:9;3764:4;3760:20;3756:1;3745:9;3741:17;3734:47;3798:78;3871:4;3862:6;3798:78;:::i;:::-;3790:86;;3570:313;;;;:::o
Swarm Source
ipfs://7ac2a143184357bab09ac849ffcc45db0b93cadf4f9b94528b516829670c718f
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.