ETH Price: $2,409.42 (-2.93%)
 

Overview

Max Total Supply

7,777 COMICS

Holders

4,333

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
9 COMICS
0xe3bbb3f22e80d474b936d50493857ab9efba9970
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

0N1 COMICS NFT are part of the next evolution in the storytelling universe that we are building called the 0N1VERSE. The 0N1 COMICS are a direct extension of the original 0N1 FORCE NFT and are bound both in DNA and ownership. 0N1 COMICS are directly linked to it's owner. With ...

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Comics

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : Comics.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8;

import "./Ownable.sol";

interface ERC721TokenReceiver {
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

// @author: jolan.eth
contract Comics is Ownable {
    string public symbol = "COMICS";
    string public name = "0N1 Comics";
    string public CID;

    address public NANOHUB;

    uint256 private currentId = 1;

    mapping(uint256 => uint256) private packedOwnerships;
    mapping(address => uint256) private packedAddressData;

    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    constructor() {}

    function setCID(string memory _CID)
    public onlyOwner {
        CID = _CID;
    }

    function setNANOHUB(address _NANOHUB)
    public onlyOwner {
        NANOHUB = _NANOHUB;
    }

    function mintComics(address to)
    public {
        require(msg.sender == NANOHUB, "error NANOHUB");
        _mint(to, 1);
    }

    function transferFrom(address from, address to, uint tokenId)
    public {
        require(msg.sender == NANOHUB, "error NANOHUB");
        _transfer(from, to, tokenId);
    }

    function exist(uint256 tokenId)
    public view returns (bool) {
        return 1 <= tokenId && tokenId < currentId && (
            packedOwnerships[tokenId] & (1 << 224) == 0
        );
    }

    function supportsInterface(bytes4 interfaceId)
    public pure returns (bool) {
        return interfaceId == 0x80ac58cd || interfaceId == 0x5b5e139f;
    }

    function totalSupply()
    public view returns (uint256) {
        unchecked {
            return currentId - 1;
        }
    }

    function balanceOf(address owner)
    public view returns (uint256) {
        if (owner == address(0)) revert BalanceQueryForZeroAddress();
        return packedAddressData[owner] & ((1 << 64) - 1);
    }

    function ownerOf(uint256 tokenId)
    public view returns (address) {
        return address(uint160(_packedOwnershipOf(tokenId)));
    }

    function tokenURI(uint256 tokenId)
    public view returns (string memory) {
        if (!exist(tokenId)) revert URIQueryForNonexistentToken();
        return string(
            abi.encodePacked("ipfs://", CID, "/", _toString(tokenId))
        );
    }

    function _mint(address to, uint256 quantity)
    internal {
        uint256 startTokenId = currentId;
        if (to == address(0)) revert MintToZeroAddress();
        if (quantity == 0) revert MintZeroQuantity();

        unchecked {
            packedAddressData[to] += quantity * ((1 << 64) | 1);
            packedOwnerships[startTokenId] = (
                _addressToUint256(to) |
                (block.timestamp << 160) |
                (_boolToUint256(quantity == 1) << 225)
            );

            uint256 updatedIndex = startTokenId;
            uint256 end = updatedIndex + quantity;

            while (updatedIndex < end)
                emit Transfer(address(0), to, updatedIndex++);

            currentId = updatedIndex;
        }
    }

    function _transfer(address from, address to, uint256 tokenId)
    private {
        uint256 prevOwnershipPacked = _packedOwnershipOf(tokenId);

        if (address(uint160(prevOwnershipPacked)) != from)
            revert TransferFromIncorrectOwner();
        if (to == address(0))
            revert TransferToZeroAddress();

        unchecked {
            --packedAddressData[from];
            ++packedAddressData[to];

            packedOwnerships[tokenId] =
                _addressToUint256(to) | (block.timestamp << 160) | (1 << 225);

            if (prevOwnershipPacked & (1 << 225) == 0) {
                uint256 nextTokenId = tokenId + 1;
                if (packedOwnerships[nextTokenId] == 0)
                    if (nextTokenId != currentId)
                        packedOwnerships[nextTokenId] = prevOwnershipPacked;
            }
        }

        emit Transfer(from, to, tokenId);

        if (to.code.length != 0)
            if (!_checkContractOnERC721Received(from, to, tokenId, ''))
                revert TransferToNonERC721ReceiverImplementer();
    }

    function _packedOwnershipOf(uint256 tokenId)
    private view returns (uint256) {
        uint256 curr = tokenId;

        unchecked {
            if (1 <= curr)
                if (curr < currentId) {
                    uint256 packed = packedOwnerships[curr];
                    if (packed & (1 << 224) == 0) {
                        while (packed == 0) {
                            packed = packedOwnerships[--curr];
                        }
                        return packed;
                    }
                }
        }
        revert OwnerQueryForNonexistentToken();
    }

    function _unpackedOwnership(uint256 packed)
    private pure returns (address, uint64, bool) {
        return (
            address(uint160(packed)),
            uint64(packed >> 160),
            packed & (1 << 224) != 0
        );
    }

    function _initializeOwnershipAt(uint256 index)
    internal {
        if (packedOwnerships[index] == 0)
            packedOwnerships[index] = _packedOwnershipOf(index);
    }

    function _ownershipOf(uint256 tokenId)
    internal view returns (address, uint64, bool) {
        return _unpackedOwnership(_packedOwnershipOf(tokenId));
    }

    function _checkContractOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        try ERC721TokenReceiver(to).onERC721Received(
            msg.sender, from, tokenId, _data
        ) returns (bytes4 retval) {
            return retval == ERC721TokenReceiver(to).onERC721Received.selector;
        } catch (bytes memory reason) {
            if (reason.length == 0)
                revert TransferToNonERC721ReceiverImplementer();
            else assembly {
                revert(add(32, reason), mload(reason))
            }
        }
    }

    function _toString(uint256 value)
    private pure returns (string memory) {
        if (value == 0) return "0";

        uint256 digits;
        uint256 tmp = value;

        while (tmp != 0) {
            digits++;
            tmp /= 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);
    }

    function _addressToUint256(address value)
    private pure returns (uint256 result) {
        assembly {
            result := value
        }
    }

    function _boolToUint256(bool value)
    private pure returns (uint256 result) {
        assembly {
            result := value
        }
    }

    error TransferToNonERC721ReceiverImplementer();
    error OwnerQueryForNonexistentToken();
    error URIQueryForNonexistentToken();
    error BalanceQueryForZeroAddress();
    error TransferFromIncorrectOwner();
    error TransferToZeroAddress();
    error MintToZeroAddress();
    error MintZeroQuantity();
}

File 2 of 2 : Ownable.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8;

abstract contract Ownable {
    address private _owner;
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    modifier onlyOwner() {
        require(owner() == msg.sender, "error owner()");
        _;
    }

    constructor() { _transferOwnership(msg.sender); }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "error newOwner");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CID","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NANOHUB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"exist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mintComics","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_CID","type":"string"}],"name":"setCID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_NANOHUB","type":"address"}],"name":"setNANOHUB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c06040526006608081905265434f4d49435360d01b60a0908152620000299160019190620000d2565b5060408051808201909152600a80825269304e3120436f6d69637360b01b60209092019182526200005d91600291620000d2565b5060016005553480156200007057600080fd5b506200007c3362000082565b620001b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620000e09062000178565b90600052602060002090601f0160209004810192826200010457600085556200014f565b82601f106200011f57805160ff19168380011785556200014f565b828001600101855582156200014f579182015b828111156200014f57825182559160200191906001019062000132565b506200015d92915062000161565b5090565b5b808211156200015d576000815560010162000162565b600181811c908216806200018d57607f821691505b60208210811415620001af57634e487b7160e01b600052602260045260246000fd5b50919050565b61108c80620001c56000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063b461802211610071578063b461802214610210578063c098004c14610223578063c3d6ee7f1461022b578063c87b56dd1461023e578063f2fde38b1461025157600080fd5b806370a08231146101dc578063715018a6146101ef5780638da5cb5b146101f757806395d89b411461020857600080fd5b806323b872dd116100de57806323b872dd146101785780634add9fb51461018b5780634ebbc92a146101b65780636352211e146101c957600080fd5b806301ffc9a71461011057806306fdde031461013857806318160ddd1461014d5780631ebe8c5814610163575b600080fd5b61012361011e366004610c86565b610264565b60405190151581526020015b60405180910390f35b61014061029b565b60405161012f9190610ed5565b600554600019015b60405190815260200161012f565b610176610171366004610c2f565b610329565b005b610176610186366004610c4a565b610386565b60045461019e906001600160a01b031681565b6040516001600160a01b03909116815260200161012f565b6101236101c4366004610d71565b6103e0565b61019e6101d7366004610d71565b610415565b6101556101ea366004610c2f565b610420565b61017661046f565b6000546001600160a01b031661019e565b6101406104b4565b61017661021e366004610c2f565b6104c1565b61014061051c565b610176610239366004610cc0565b610529565b61014061024c366004610d71565b610579565b61017661025f366004610c2f565b6105d3565b60006380ac58cd60e01b6001600160e01b0319831614806102955750635b5e139f60e01b6001600160e01b03198316145b92915050565b600280546102a890610f7e565b80601f01602080910402602001604051908101604052809291908181526020018280546102d490610f7e565b80156103215780601f106102f657610100808354040283529160200191610321565b820191906000526020600020905b81548152906001019060200180831161030457829003601f168201915b505050505081565b6004546001600160a01b031633146103785760405162461bcd60e51b815260206004820152600d60248201526c32b93937b9102720a727a42aa160991b60448201526064015b60405180910390fd5b61038381600161065c565b50565b6004546001600160a01b031633146103d05760405162461bcd60e51b815260206004820152600d60248201526c32b93937b9102720a727a42aa160991b604482015260640161036f565b6103db838383610740565b505050565b6000816001111580156103f4575060055482105b8015610295575050600090815260066020526040902054600160e01b161590565b6000610295826108bd565b60006001600160a01b038216610449576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526007602052604090205467ffffffffffffffff1690565b336104826000546001600160a01b031690565b6001600160a01b0316146104a85760405162461bcd60e51b815260040161036f90610ee8565b6104b2600061092d565b565b600180546102a890610f7e565b336104d46000546001600160a01b031690565b6001600160a01b0316146104fa5760405162461bcd60e51b815260040161036f90610ee8565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600380546102a890610f7e565b3361053c6000546001600160a01b031690565b6001600160a01b0316146105625760405162461bcd60e51b815260040161036f90610ee8565b8051610575906003906020840190610b7a565b5050565b6060610584826103e0565b6105a157604051630a14c4b560e41b815260040160405180910390fd5b60036105ac8361097d565b6040516020016105bd929190610dd2565b6040516020818303038152906040529050919050565b336105e66000546001600160a01b031690565b6001600160a01b03161461060c5760405162461bcd60e51b815260040161036f90610ee8565b6001600160a01b0381166106535760405162461bcd60e51b815260206004820152600e60248201526d32b93937b9103732bba7bbb732b960911b604482015260640161036f565b6103838161092d565b6005546001600160a01b03831661068557604051622e076360e81b815260040160405180910390fd5b816106a35760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660009081526007602090815260408083208054680100000000000000018702019055838352600690915290204260a01b84176001841460e11b179055808083015b80821015610737576040516001830192906001600160a01b038716906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46106ee565b50600555505050565b600061074b826108bd565b9050836001600160a01b0316816001600160a01b03161461077e5760405162a1148160e81b815260040160405180910390fd5b6001600160a01b0383166107a557604051633a954ecd60e21b815260040160405180910390fd5b6001600160a01b038481166000908152600760205260408082208054600019019055918516815220805460010190554260a01b836000848152600660205260409020600160e11b9290911782179055811661082e576001820160008181526006602052604090205461082c57600554811461082c5760008181526006602052604090208290555b505b81836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46001600160a01b0383163b156108b75761089a84848460405180602001604052806000815250610a83565b6108b7576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b600081600181106109145760055481101561091457600081815260066020526040902054600160e01b8116610912575b8061090b5750600019016000818152600660205260409020546108ed565b9392505050565b505b604051636f96cda160e11b815260040160405180910390fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816109a15750506040805180820190915260018152600360fc1b602082015290565b6000825b80156109cb57816109b581610fb9565b92506109c49050600a82610f27565b90506109a5565b60008267ffffffffffffffff8111156109e6576109e661102a565b6040519080825280601f01601f191660200182016040528015610a10576020820181803683370190505b5090505b8415610a7b57610a25600184610f3b565b9250610a32600a86610fd4565b610a3d906030610f0f565b60f81b818481518110610a5257610a52611014565b60200101906001600160f81b031916908160001a905350610a74600a86610f27565b9450610a14565b949350505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290610ab8903390899088908890600401610ea2565b602060405180830381600087803b158015610ad257600080fd5b505af1925050508015610b02575060408051601f3d908101601f19168201909252610aff91810190610ca3565b60015b610b5d573d808015610b30576040519150601f19603f3d011682016040523d82523d6000602084013e610b35565b606091505b508051610b55576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b828054610b8690610f7e565b90600052602060002090601f016020900481019282610ba85760008555610bee565b82601f10610bc157805160ff1916838001178555610bee565b82800160010185558215610bee579182015b82811115610bee578251825591602001919060010190610bd3565b50610bfa929150610bfe565b5090565b5b80821115610bfa5760008155600101610bff565b80356001600160a01b0381168114610c2a57600080fd5b919050565b600060208284031215610c4157600080fd5b61090b82610c13565b600080600060608486031215610c5f57600080fd5b610c6884610c13565b9250610c7660208501610c13565b9150604084013590509250925092565b600060208284031215610c9857600080fd5b813561090b81611040565b600060208284031215610cb557600080fd5b815161090b81611040565b600060208284031215610cd257600080fd5b813567ffffffffffffffff80821115610cea57600080fd5b818401915084601f830112610cfe57600080fd5b813581811115610d1057610d1061102a565b604051601f8201601f19908116603f01168101908382118183101715610d3857610d3861102a565b81604052828152876020848701011115610d5157600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215610d8357600080fd5b5035919050565b60008151808452610da2816020860160208601610f52565b601f01601f19169290920160200192915050565b60008151610dc8818560208601610f52565b9290920192915050565b66697066733a2f2f60c81b8152600060076000855481600182811c915080831680610dfe57607f831692505b6020808410821415610e1e57634e487b7160e01b86526022600452602486fd5b818015610e325760018114610e4757610e78565b60ff1986168a890152848a0188019650610e78565b60008c81526020902060005b86811015610e6e5781548c82018b0152908501908301610e53565b505087858b010196505b505050505050610e98610e9282602f60f81b815260010190565b86610db6565b9695505050505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610e9890830184610d8a565b60208152600061090b6020830184610d8a565b6020808252600d908201526c6572726f72206f776e6572282960981b604082015260600190565b60008219821115610f2257610f22610fe8565b500190565b600082610f3657610f36610ffe565b500490565b600082821015610f4d57610f4d610fe8565b500390565b60005b83811015610f6d578181015183820152602001610f55565b838111156108b75750506000910152565b600181811c90821680610f9257607f821691505b60208210811415610fb357634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415610fcd57610fcd610fe8565b5060010190565b600082610fe357610fe3610ffe565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461038357600080fdfea264697066735822122025c9929f39a824604955499baaf00bac7ba36abcaad7aa84784cd9cd9ebb532364736f6c63430008050033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063b461802211610071578063b461802214610210578063c098004c14610223578063c3d6ee7f1461022b578063c87b56dd1461023e578063f2fde38b1461025157600080fd5b806370a08231146101dc578063715018a6146101ef5780638da5cb5b146101f757806395d89b411461020857600080fd5b806323b872dd116100de57806323b872dd146101785780634add9fb51461018b5780634ebbc92a146101b65780636352211e146101c957600080fd5b806301ffc9a71461011057806306fdde031461013857806318160ddd1461014d5780631ebe8c5814610163575b600080fd5b61012361011e366004610c86565b610264565b60405190151581526020015b60405180910390f35b61014061029b565b60405161012f9190610ed5565b600554600019015b60405190815260200161012f565b610176610171366004610c2f565b610329565b005b610176610186366004610c4a565b610386565b60045461019e906001600160a01b031681565b6040516001600160a01b03909116815260200161012f565b6101236101c4366004610d71565b6103e0565b61019e6101d7366004610d71565b610415565b6101556101ea366004610c2f565b610420565b61017661046f565b6000546001600160a01b031661019e565b6101406104b4565b61017661021e366004610c2f565b6104c1565b61014061051c565b610176610239366004610cc0565b610529565b61014061024c366004610d71565b610579565b61017661025f366004610c2f565b6105d3565b60006380ac58cd60e01b6001600160e01b0319831614806102955750635b5e139f60e01b6001600160e01b03198316145b92915050565b600280546102a890610f7e565b80601f01602080910402602001604051908101604052809291908181526020018280546102d490610f7e565b80156103215780601f106102f657610100808354040283529160200191610321565b820191906000526020600020905b81548152906001019060200180831161030457829003601f168201915b505050505081565b6004546001600160a01b031633146103785760405162461bcd60e51b815260206004820152600d60248201526c32b93937b9102720a727a42aa160991b60448201526064015b60405180910390fd5b61038381600161065c565b50565b6004546001600160a01b031633146103d05760405162461bcd60e51b815260206004820152600d60248201526c32b93937b9102720a727a42aa160991b604482015260640161036f565b6103db838383610740565b505050565b6000816001111580156103f4575060055482105b8015610295575050600090815260066020526040902054600160e01b161590565b6000610295826108bd565b60006001600160a01b038216610449576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526007602052604090205467ffffffffffffffff1690565b336104826000546001600160a01b031690565b6001600160a01b0316146104a85760405162461bcd60e51b815260040161036f90610ee8565b6104b2600061092d565b565b600180546102a890610f7e565b336104d46000546001600160a01b031690565b6001600160a01b0316146104fa5760405162461bcd60e51b815260040161036f90610ee8565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600380546102a890610f7e565b3361053c6000546001600160a01b031690565b6001600160a01b0316146105625760405162461bcd60e51b815260040161036f90610ee8565b8051610575906003906020840190610b7a565b5050565b6060610584826103e0565b6105a157604051630a14c4b560e41b815260040160405180910390fd5b60036105ac8361097d565b6040516020016105bd929190610dd2565b6040516020818303038152906040529050919050565b336105e66000546001600160a01b031690565b6001600160a01b03161461060c5760405162461bcd60e51b815260040161036f90610ee8565b6001600160a01b0381166106535760405162461bcd60e51b815260206004820152600e60248201526d32b93937b9103732bba7bbb732b960911b604482015260640161036f565b6103838161092d565b6005546001600160a01b03831661068557604051622e076360e81b815260040160405180910390fd5b816106a35760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660009081526007602090815260408083208054680100000000000000018702019055838352600690915290204260a01b84176001841460e11b179055808083015b80821015610737576040516001830192906001600160a01b038716906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46106ee565b50600555505050565b600061074b826108bd565b9050836001600160a01b0316816001600160a01b03161461077e5760405162a1148160e81b815260040160405180910390fd5b6001600160a01b0383166107a557604051633a954ecd60e21b815260040160405180910390fd5b6001600160a01b038481166000908152600760205260408082208054600019019055918516815220805460010190554260a01b836000848152600660205260409020600160e11b9290911782179055811661082e576001820160008181526006602052604090205461082c57600554811461082c5760008181526006602052604090208290555b505b81836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46001600160a01b0383163b156108b75761089a84848460405180602001604052806000815250610a83565b6108b7576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b600081600181106109145760055481101561091457600081815260066020526040902054600160e01b8116610912575b8061090b5750600019016000818152600660205260409020546108ed565b9392505050565b505b604051636f96cda160e11b815260040160405180910390fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816109a15750506040805180820190915260018152600360fc1b602082015290565b6000825b80156109cb57816109b581610fb9565b92506109c49050600a82610f27565b90506109a5565b60008267ffffffffffffffff8111156109e6576109e661102a565b6040519080825280601f01601f191660200182016040528015610a10576020820181803683370190505b5090505b8415610a7b57610a25600184610f3b565b9250610a32600a86610fd4565b610a3d906030610f0f565b60f81b818481518110610a5257610a52611014565b60200101906001600160f81b031916908160001a905350610a74600a86610f27565b9450610a14565b949350505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290610ab8903390899088908890600401610ea2565b602060405180830381600087803b158015610ad257600080fd5b505af1925050508015610b02575060408051601f3d908101601f19168201909252610aff91810190610ca3565b60015b610b5d573d808015610b30576040519150601f19603f3d011682016040523d82523d6000602084013e610b35565b606091505b508051610b55576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b828054610b8690610f7e565b90600052602060002090601f016020900481019282610ba85760008555610bee565b82601f10610bc157805160ff1916838001178555610bee565b82800160010185558215610bee579182015b82811115610bee578251825591602001919060010190610bd3565b50610bfa929150610bfe565b5090565b5b80821115610bfa5760008155600101610bff565b80356001600160a01b0381168114610c2a57600080fd5b919050565b600060208284031215610c4157600080fd5b61090b82610c13565b600080600060608486031215610c5f57600080fd5b610c6884610c13565b9250610c7660208501610c13565b9150604084013590509250925092565b600060208284031215610c9857600080fd5b813561090b81611040565b600060208284031215610cb557600080fd5b815161090b81611040565b600060208284031215610cd257600080fd5b813567ffffffffffffffff80821115610cea57600080fd5b818401915084601f830112610cfe57600080fd5b813581811115610d1057610d1061102a565b604051601f8201601f19908116603f01168101908382118183101715610d3857610d3861102a565b81604052828152876020848701011115610d5157600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215610d8357600080fd5b5035919050565b60008151808452610da2816020860160208601610f52565b601f01601f19169290920160200192915050565b60008151610dc8818560208601610f52565b9290920192915050565b66697066733a2f2f60c81b8152600060076000855481600182811c915080831680610dfe57607f831692505b6020808410821415610e1e57634e487b7160e01b86526022600452602486fd5b818015610e325760018114610e4757610e78565b60ff1986168a890152848a0188019650610e78565b60008c81526020902060005b86811015610e6e5781548c82018b0152908501908301610e53565b505087858b010196505b505050505050610e98610e9282602f60f81b815260010190565b86610db6565b9695505050505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610e9890830184610d8a565b60208152600061090b6020830184610d8a565b6020808252600d908201526c6572726f72206f776e6572282960981b604082015260600190565b60008219821115610f2257610f22610fe8565b500190565b600082610f3657610f36610ffe565b500490565b600082821015610f4d57610f4d610fe8565b500390565b60005b83811015610f6d578181015183820152602001610f55565b838111156108b75750506000910152565b600181811c90821680610f9257607f821691505b60208210811415610fb357634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415610fcd57610fcd610fe8565b5060010190565b600082610fe357610fe3610ffe565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461038357600080fdfea264697066735822122025c9929f39a824604955499baaf00bac7ba36abcaad7aa84784cd9cd9ebb532364736f6c63430008050033

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.