ETH Price: $2,511.34 (+0.80%)

Token

🧦.sol ()
 

Overview

Max Total Supply

94

Holders

60

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
0xB578405Df1F9D4dFdD46a0BD152D518d4c5Fe0aC
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:
Socks

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 999 runs

Other Settings:
default evmVersion
File 1 of 2 : Socks.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.17;

import {ERC1155} from "solmate/tokens/ERC1155.sol";

enum Sock {
    Left,
    Right
}

/// When the duration of the mint has finished.
error MintFinished();

/// @title Solidity 🧦 from Devcon Bogota.
contract Socks is ERC1155 {
    /// The name of the contract
    string public constant name = unicode"🧦.sol";

    /// Timestamp when the mint ends
    uint256 public immutable endTime = block.timestamp + 4 weeks;

    function uri(uint256 id) public pure override returns (string memory) {
        return Sock(id) == Sock.Left
            ? "ipfs://QmbxXn6GQcP2KbKbu3Sd5UFqS1uzXkEXdhXC5myc5MY2wu"
            : "ipfs://QmSnSkRmaQmAC5Dtc8qmEuvZNiznHKLrkX8kM8iCQhYYHV";
    }

    /// Mints a psuedo-random 🧦.sol
    function mint() external {
        if (block.timestamp > endTime) revert MintFinished();

        Sock sock = Sock(block.difficulty % 2);
        _mint({to: msg.sender, id: uint256(sock), amount: 1, data: ""});
    }
}

File 2 of 2 : ERC1155.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Minimalist and gas efficient standard ERC1155 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol)
abstract contract ERC1155 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event TransferSingle(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256 id,
        uint256 amount
    );

    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] amounts
    );

    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    event URI(string value, uint256 indexed id);

    /*//////////////////////////////////////////////////////////////
                             ERC1155 STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(address => mapping(uint256 => uint256)) public balanceOf;

    mapping(address => mapping(address => bool)) public isApprovedForAll;

    /*//////////////////////////////////////////////////////////////
                             METADATA LOGIC
    //////////////////////////////////////////////////////////////*/

    function uri(uint256 id) public view virtual returns (string memory);

    /*//////////////////////////////////////////////////////////////
                              ERC1155 LOGIC
    //////////////////////////////////////////////////////////////*/

    function setApprovalForAll(address operator, bool approved) public virtual {
        isApprovedForAll[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes calldata data
    ) public virtual {
        require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED");

        balanceOf[from][id] -= amount;
        balanceOf[to][id] += amount;

        emit TransferSingle(msg.sender, from, to, id, amount);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, from, id, amount, data) ==
                    ERC1155TokenReceiver.onERC1155Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) public virtual {
        require(ids.length == amounts.length, "LENGTH_MISMATCH");

        require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED");

        // Storing these outside the loop saves ~15 gas per iteration.
        uint256 id;
        uint256 amount;

        for (uint256 i = 0; i < ids.length; ) {
            id = ids[i];
            amount = amounts[i];

            balanceOf[from][id] -= amount;
            balanceOf[to][id] += amount;

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, from, to, ids, amounts);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, from, ids, amounts, data) ==
                    ERC1155TokenReceiver.onERC1155BatchReceived.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function balanceOfBatch(address[] calldata owners, uint256[] calldata ids)
        public
        view
        virtual
        returns (uint256[] memory balances)
    {
        require(owners.length == ids.length, "LENGTH_MISMATCH");

        balances = new uint256[](owners.length);

        // Unchecked because the only math done is incrementing
        // the array index counter which cannot possibly overflow.
        unchecked {
            for (uint256 i = 0; i < owners.length; ++i) {
                balances[i] = balanceOf[owners[i]][ids[i]];
            }
        }
    }

    /*//////////////////////////////////////////////////////////////
                              ERC165 LOGIC
    //////////////////////////////////////////////////////////////*/

    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0xd9b67a26 || // ERC165 Interface ID for ERC1155
            interfaceId == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal virtual {
        balanceOf[to][id] += amount;

        emit TransferSingle(msg.sender, address(0), to, id, amount);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, address(0), id, amount, data) ==
                    ERC1155TokenReceiver.onERC1155Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _batchMint(
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        uint256 idsLength = ids.length; // Saves MLOADs.

        require(idsLength == amounts.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < idsLength; ) {
            balanceOf[to][ids[i]] += amounts[i];

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, address(0), to, ids, amounts);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, address(0), ids, amounts, data) ==
                    ERC1155TokenReceiver.onERC1155BatchReceived.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _batchBurn(
        address from,
        uint256[] memory ids,
        uint256[] memory amounts
    ) internal virtual {
        uint256 idsLength = ids.length; // Saves MLOADs.

        require(idsLength == amounts.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < idsLength; ) {
            balanceOf[from][ids[i]] -= amounts[i];

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, from, address(0), ids, amounts);
    }

    function _burn(
        address from,
        uint256 id,
        uint256 amount
    ) internal virtual {
        balanceOf[from][id] -= amount;

        emit TransferSingle(msg.sender, from, address(0), id, amount);
    }
}

/// @notice A generic interface for a contract which properly accepts ERC1155 tokens.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol)
abstract contract ERC1155TokenReceiver {
    function onERC1155Received(
        address,
        address,
        uint256,
        uint256,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC1155TokenReceiver.onERC1155Received.selector;
    }

    function onERC1155BatchReceived(
        address,
        address,
        uint256[] calldata,
        uint256[] calldata,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC1155TokenReceiver.onERC1155BatchReceived.selector;
    }
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "solmate/=lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 999
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "viaIR": true,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"name":"MintFinished","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}]

60a0806040523461004c576224ea00420180421161003657608052610e98908161005282396080518181816104a6015261075e0152f35b634e487b7160e01b600052601160045260246000fd5b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c908162fdd58e14610b355750806301ffc9a714610a7c57806306fdde03146109f85780630e89341c146108e75780631249c58b1461074b5780632eb2c2d6146104c95780633197cbb61461048e5780634e1273f41461033a578063a22cb465146102b4578063e985e9c5146102625763f242432a1461009b57600080fd5b3461025e5760a036600319011261025e576100b4610b71565b90836100be610b8c565b9260643560443560843567ffffffffffffffff811161025a576100e49036908701610c67565b94906001600160a01b0380951690813314801561023b575b61010590610c95565b8183526020958387528a842085855287528a8420610124878254610ce0565b90558916988984528387528a842085855287528a8420610145878254610d03565b905589838c7fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628151918983528a8c8401523392a43b61019557505050505050505061019291501515610d51565b80f35b906101da869798999493928b51998a978896879563f23a6e6160e01b9e8f8852339088015260248701526044860152606485015260a0608485015260a4840191610d30565b03925af19384156102325750926001600160e01b031991610192948692610205575b50501614610d51565b6102249250803d1061022b575b61021c8183610bd4565b810190610d10565b38806101fc565b503d610212565b513d86823e3d90fd5b50818352600160209081528a842033855290528983205460ff166100fc565b8480fd5b8280fd5b5050346102b057806003193601126102b05760ff81602093610282610b71565b61028a610b8c565b6001600160a01b0391821683526001875283832091168252855220549151911615158152f35b5080fd5b5050346102b057806003193601126102b0576102ce610b71565b90602435908115158092036103365733845260016020526001600160a01b0381852093169283855260205280842060ff1981541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b8380fd5b508290346102b057826003193601126102b05767ffffffffffffffff9181358381116102b05761036d9036908401610c36565b919093602490813590811161025e579184869261038e899536908401610c36565b94909261039c868914610d9c565b6103a588610e4a565b936103b288519586610bd4565b8885526103be89610e4a565b602099868b019891601f1901368a37875b818110610418575050505050505083519485948186019282875251809352850193925b82811061040157505050500390f35b8351855286955093810193928101926001016103f2565b6104298183889e9b9a9c9d9e610de7565b356001600160a01b03811680910361048a5788528789528b882061044e828587610de7565b35895289528b8820548a5182101561047857600582901b8b018a0152979a999896976001016103cf565b8789603288634e487b7160e01b835252fd5b8880fd5b5050346102b057816003193601126102b057602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b503461025e5760a036600319011261025e576104e3610b71565b906104ec610b8c565b67ffffffffffffffff906044358281116107475761050d9036908501610c36565b91909260643581811161048a576105279036908701610c36565b916084359081116107435761053f9036908801610c67565b91909261054d818714610d9c565b6001600160a01b03988916946105733387148c8e8215610724575b509b90918992610c95565b8d8a819285169d8e925b8585106106c1575091938a93507f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb916105be91845194808652850191610e0d565b918083036020820152806105d43394898b610e0d565b0390a43b6105f057505050505050505061019291501515610d51565b89989697985197889687967fbc197c81000000000000000000000000000000000000000000000000000000009b8c8952339089015260248801526044870160a0905260a487019061064092610e0d565b9060031986830301606487015261065692610e0d565b9060031984830301608485015261066c92610d30565b0381875a94602095f19283156106b85750610192926001600160e01b031991859161069a575b501614610d51565b6106b2915060203d811161022b5761021c8183610bd4565b38610692565b513d85823e3d90fd5b6106d18560019761071595610de7565b356106dd868a8c610de7565b35948d835260209083825284842083855282528484206106fe888254610ce0565b905583528281528383209183525220918254610d03565b90550187908b8a8f8f9061057d565b60ff925089815260016020528181203382526020522054168c8e610568565b8980fd5b8680fd5b503461025e578260031936011261025e577f000000000000000000000000000000000000000000000000000000000000000042116108c0576001441660028110156108ad5782519060209081830183811067ffffffffffffffff82111761089a578552858352338652858252848620818752825284862080549060018201809211610887575584518181526001838201528633917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62883392a4333b61081a575050505050610192331515610d51565b61085b9282918651948592839263f23a6e6160e01b9889855233908501528a602485015260448401526001606484015260a0608484015260a4830190610bf6565b038188335af19384156102325750926001600160e01b0319916101929486926102055750501614610d51565b602488601188634e487b7160e01b835252fd5b602487604187634e487b7160e01b835252fd5b602484602184634e487b7160e01b835252fd5b90517fae5184fb000000000000000000000000000000000000000000000000000000008152fd5b5091346109f55760203660031901126109f55782359060028210156109e2575061097e925061098257805161091b81610ba2565b603581527f697066733a2f2f516d6278586e3647516350324b624b6275335364355546715360208201527f31757a586b455864685843356d7963354d59327775000000000000000000000082820152905b51918291602083526020830190610bf6565b0390f35b805161098d81610ba2565b603581527f697066733a2f2f516d536e536b526d61516d41433544746338716d4575765a4e60208201527f697a6e484b4c726b58386b4d3869435168595948560000000000000000000000828201529061096c565b80602185634e487b7160e01b6024945252fd5b80fd5b509190346102b057816003193601126102b0578051918183019083821067ffffffffffffffff831117610a69575061097e93508152600882527ff09fa7a62e736f6c000000000000000000000000000000000000000000000000602083015251918291602083526020830190610bf6565b80604186634e487b7160e01b6024945252fd5b503461025e57602036600319011261025e5735906001600160e01b0319821680920361025e57602092507f01ffc9a7000000000000000000000000000000000000000000000000000000008214918215610b0b575b8215610ae1575b50519015158152f35b7f0e89341c0000000000000000000000000000000000000000000000000000000014915038610ad8565b7fd9b67a260000000000000000000000000000000000000000000000000000000081149250610ad1565b8490843461025e578060031936011261025e576020926001600160a01b03610b5b610b71565b1681528084528181206024358252845220548152f35b600435906001600160a01b0382168203610b8757565b600080fd5b602435906001600160a01b0382168203610b8757565b6060810190811067ffffffffffffffff821117610bbe57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610bbe57604052565b919082519283825260005b848110610c22575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610c01565b9181601f84011215610b875782359167ffffffffffffffff8311610b87576020808501948460051b010111610b8757565b9181601f84011215610b875782359167ffffffffffffffff8311610b875760208381860195010111610b8757565b15610c9c57565b606460405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152fd5b91908203918211610ced57565b634e487b7160e01b600052601160045260246000fd5b91908201809211610ced57565b90816020910312610b8757516001600160e01b031981168103610b875790565b908060209392818452848401376000828201840152601f01601f1916010190565b15610d5857565b606460405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152fd5b15610da357565b606460405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152fd5b9190811015610df75760051b0190565b634e487b7160e01b600052603260045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311610b875760209260051b809284830137010190565b67ffffffffffffffff8111610bbe5760051b6020019056fea26469706673582212204e2c5e38ceef18e2f55b86509667d9e5cf47269f7c4044bab7b5a17d9603fd0764736f6c63430008110033

Deployed Bytecode

0x6080604081815260048036101561001557600080fd5b600092833560e01c908162fdd58e14610b355750806301ffc9a714610a7c57806306fdde03146109f85780630e89341c146108e75780631249c58b1461074b5780632eb2c2d6146104c95780633197cbb61461048e5780634e1273f41461033a578063a22cb465146102b4578063e985e9c5146102625763f242432a1461009b57600080fd5b3461025e5760a036600319011261025e576100b4610b71565b90836100be610b8c565b9260643560443560843567ffffffffffffffff811161025a576100e49036908701610c67565b94906001600160a01b0380951690813314801561023b575b61010590610c95565b8183526020958387528a842085855287528a8420610124878254610ce0565b90558916988984528387528a842085855287528a8420610145878254610d03565b905589838c7fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628151918983528a8c8401523392a43b61019557505050505050505061019291501515610d51565b80f35b906101da869798999493928b51998a978896879563f23a6e6160e01b9e8f8852339088015260248701526044860152606485015260a0608485015260a4840191610d30565b03925af19384156102325750926001600160e01b031991610192948692610205575b50501614610d51565b6102249250803d1061022b575b61021c8183610bd4565b810190610d10565b38806101fc565b503d610212565b513d86823e3d90fd5b50818352600160209081528a842033855290528983205460ff166100fc565b8480fd5b8280fd5b5050346102b057806003193601126102b05760ff81602093610282610b71565b61028a610b8c565b6001600160a01b0391821683526001875283832091168252855220549151911615158152f35b5080fd5b5050346102b057806003193601126102b0576102ce610b71565b90602435908115158092036103365733845260016020526001600160a01b0381852093169283855260205280842060ff1981541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b8380fd5b508290346102b057826003193601126102b05767ffffffffffffffff9181358381116102b05761036d9036908401610c36565b919093602490813590811161025e579184869261038e899536908401610c36565b94909261039c868914610d9c565b6103a588610e4a565b936103b288519586610bd4565b8885526103be89610e4a565b602099868b019891601f1901368a37875b818110610418575050505050505083519485948186019282875251809352850193925b82811061040157505050500390f35b8351855286955093810193928101926001016103f2565b6104298183889e9b9a9c9d9e610de7565b356001600160a01b03811680910361048a5788528789528b882061044e828587610de7565b35895289528b8820548a5182101561047857600582901b8b018a0152979a999896976001016103cf565b8789603288634e487b7160e01b835252fd5b8880fd5b5050346102b057816003193601126102b057602090517f00000000000000000000000000000000000000000000000000000000636ba2878152f35b503461025e5760a036600319011261025e576104e3610b71565b906104ec610b8c565b67ffffffffffffffff906044358281116107475761050d9036908501610c36565b91909260643581811161048a576105279036908701610c36565b916084359081116107435761053f9036908801610c67565b91909261054d818714610d9c565b6001600160a01b03988916946105733387148c8e8215610724575b509b90918992610c95565b8d8a819285169d8e925b8585106106c1575091938a93507f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb916105be91845194808652850191610e0d565b918083036020820152806105d43394898b610e0d565b0390a43b6105f057505050505050505061019291501515610d51565b89989697985197889687967fbc197c81000000000000000000000000000000000000000000000000000000009b8c8952339089015260248801526044870160a0905260a487019061064092610e0d565b9060031986830301606487015261065692610e0d565b9060031984830301608485015261066c92610d30565b0381875a94602095f19283156106b85750610192926001600160e01b031991859161069a575b501614610d51565b6106b2915060203d811161022b5761021c8183610bd4565b38610692565b513d85823e3d90fd5b6106d18560019761071595610de7565b356106dd868a8c610de7565b35948d835260209083825284842083855282528484206106fe888254610ce0565b905583528281528383209183525220918254610d03565b90550187908b8a8f8f9061057d565b60ff925089815260016020528181203382526020522054168c8e610568565b8980fd5b8680fd5b503461025e578260031936011261025e577f00000000000000000000000000000000000000000000000000000000636ba28742116108c0576001441660028110156108ad5782519060209081830183811067ffffffffffffffff82111761089a578552858352338652858252848620818752825284862080549060018201809211610887575584518181526001838201528633917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62883392a4333b61081a575050505050610192331515610d51565b61085b9282918651948592839263f23a6e6160e01b9889855233908501528a602485015260448401526001606484015260a0608484015260a4830190610bf6565b038188335af19384156102325750926001600160e01b0319916101929486926102055750501614610d51565b602488601188634e487b7160e01b835252fd5b602487604187634e487b7160e01b835252fd5b602484602184634e487b7160e01b835252fd5b90517fae5184fb000000000000000000000000000000000000000000000000000000008152fd5b5091346109f55760203660031901126109f55782359060028210156109e2575061097e925061098257805161091b81610ba2565b603581527f697066733a2f2f516d6278586e3647516350324b624b6275335364355546715360208201527f31757a586b455864685843356d7963354d59327775000000000000000000000082820152905b51918291602083526020830190610bf6565b0390f35b805161098d81610ba2565b603581527f697066733a2f2f516d536e536b526d61516d41433544746338716d4575765a4e60208201527f697a6e484b4c726b58386b4d3869435168595948560000000000000000000000828201529061096c565b80602185634e487b7160e01b6024945252fd5b80fd5b509190346102b057816003193601126102b0578051918183019083821067ffffffffffffffff831117610a69575061097e93508152600882527ff09fa7a62e736f6c000000000000000000000000000000000000000000000000602083015251918291602083526020830190610bf6565b80604186634e487b7160e01b6024945252fd5b503461025e57602036600319011261025e5735906001600160e01b0319821680920361025e57602092507f01ffc9a7000000000000000000000000000000000000000000000000000000008214918215610b0b575b8215610ae1575b50519015158152f35b7f0e89341c0000000000000000000000000000000000000000000000000000000014915038610ad8565b7fd9b67a260000000000000000000000000000000000000000000000000000000081149250610ad1565b8490843461025e578060031936011261025e576020926001600160a01b03610b5b610b71565b1681528084528181206024358252845220548152f35b600435906001600160a01b0382168203610b8757565b600080fd5b602435906001600160a01b0382168203610b8757565b6060810190811067ffffffffffffffff821117610bbe57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610bbe57604052565b919082519283825260005b848110610c22575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610c01565b9181601f84011215610b875782359167ffffffffffffffff8311610b87576020808501948460051b010111610b8757565b9181601f84011215610b875782359167ffffffffffffffff8311610b875760208381860195010111610b8757565b15610c9c57565b606460405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152fd5b91908203918211610ced57565b634e487b7160e01b600052601160045260246000fd5b91908201809211610ced57565b90816020910312610b8757516001600160e01b031981168103610b875790565b908060209392818452848401376000828201840152601f01601f1916010190565b15610d5857565b606460405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152fd5b15610da357565b606460405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152fd5b9190811015610df75760051b0190565b634e487b7160e01b600052603260045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311610b875760209260051b809284830137010190565b67ffffffffffffffff8111610bbe5760051b6020019056fea26469706673582212204e2c5e38ceef18e2f55b86509667d9e5cf47269f7c4044bab7b5a17d9603fd0764736f6c63430008110033

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.