ETH Price: $3,025.22 (+2.22%)
Gas: 2 Gwei

Token

Dot Decode (DD)
 

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
Filtered by Token Holder
diederik.eth
Balance
20 DD
0x95d4b05a61341592dd0bfa6fd0dcbebbfd0b5da9
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DotDecode

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

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

Contract ABI

[{"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"}]

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.