ETH Price: $1,949.46 (-1.89%)
 

Overview

Max Total Supply

5,000 TDP

Holders

2,178

Transfers

-
20

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

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:
TDP

Compiler Version
v0.8.33+commit.64118f21

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: MIT
pragma solidity 0.8.33;

contract TDP {
    // Errors
    error NotOwner();
    error NoScripts();
    error SoldOut();
    error FreeMintSoldOut();
    error AlreadyFreeMinted();
    error InsufficientPayment();
    error ZeroQuantity();
    error NonexistentToken();
    error NotApproved();
    error InvalidTransfer();
    error FreeMintBlockCooldown();

    // Events
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    // Constants
    uint256 public constant MAX_SUPPLY = 5000;
    uint256 public constant COST = 0.0001 ether;
    string public constant NAME = "The Del Punkos";
    string public constant SYMBOL = "TDP";

    // State - packed into fewer slots
    address private _owner;
    uint96 private _currentIndex;

    string private _baseURI = "bafybeic33whrpywqwu4am4bqysj2o6c4cwiftivjn36z4imvynes3xpssi";
    uint128 public MAX_FREE = 5000;
    uint128 public MAX_FREE_PER_WALLET = 1;

    // Free mint throttle state
    uint256 public freeMintThrottleThreshold = 1000;
    uint256 private _lastFreeMintBlock;

    // ERC721A-style: only store ownership at batch start
    mapping(uint256 => address) private _owners;
    mapping(address => uint256) private _balances;
    mapping(uint256 => address) private _tokenApprovals;
    mapping(address => mapping(address => bool)) private _operatorApprovals;
    mapping(address => uint256) public minted;

    modifier onlyOwner() {
        if (msg.sender != _owner) revert NotOwner();
        _;
    }

    modifier noContracts() {
        if (tx.origin != msg.sender) revert NoScripts();
        _;
    }

    constructor() {
        _owner = msg.sender;
    }

    // ============ MINT FUNCTIONS ============
    mapping(uint256 => uint256) private _blockMintCount;
    function freemint() external noContracts {
        uint256 amount = MAX_FREE_PER_WALLET;
        uint256 current = _currentIndex;
        if (current + amount > MAX_FREE) revert FreeMintSoldOut();
        if (current + amount > MAX_SUPPLY) revert SoldOut();
        if (minted[msg.sender] != 0) revert AlreadyFreeMinted();

        // After threshold, enforce 10 free mints per block
        if (current >= freeMintThrottleThreshold) {
            if (block.number == _lastFreeMintBlock) {
                if (_blockMintCount[block.number] >= 10) revert FreeMintBlockCooldown();
            } else {
                _lastFreeMintBlock = block.number;
            }
            _blockMintCount[block.number]++;
        }

        minted[msg.sender] = amount;
        _mint(msg.sender, amount);
    }

    function mint(uint256 amount) external payable {
        if (_currentIndex + amount > MAX_SUPPLY) revert SoldOut();
        if (msg.value < amount * COST) revert InsufficientPayment();
        _mint(msg.sender, amount);
    }

    function teamMint(uint256 amount) external onlyOwner {
        if (_currentIndex + amount > MAX_SUPPLY) revert SoldOut();
        _mint(msg.sender, amount);
    }

    /// @dev ERC721A-style: only write owner at start of batch
    function _mint(address to, uint256 quantity) internal {
        if (quantity == 0) revert ZeroQuantity();

        uint256 startId = _currentIndex;

        // Single SSTORE for ownership (ERC721A optimization)
        _owners[startId] = to;
        _balances[to] += quantity;

        // Emit events (required by ERC721 spec)
        for (uint256 i; i < quantity;) {
            emit Transfer(address(0), to, startId + i);
            unchecked { ++i; }
        }

        _currentIndex = uint96(startId + quantity);
    }

    // ============ VIEW FUNCTIONS ============

    function totalSupply() public view returns (uint256) {
        return _currentIndex;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    /// @dev ERC721A-style: walk backwards to find owner
    function ownerOf(uint256 tokenId) public view returns (address) {
        if (tokenId >= _currentIndex) revert NonexistentToken();

        // Walk backwards to find the owner
        for (uint256 i = tokenId; ; ) {
            address tokenOwner = _owners[i];
            if (tokenOwner != address(0)) {
                return tokenOwner;
            }
            unchecked { --i; }
        }
    }

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

    /// @dev View function to check if a free mint is available in the current block
    function isFreeMintAvailableThisBlock() public view returns (bool) {
        if (_currentIndex >= freeMintThrottleThreshold) {
            return block.number != _lastFreeMintBlock;
        }
        return true;
    }

    /// @dev View the last block a free mint occurred
    function lastFreeMintBlock() public view returns (uint256) {
        return _lastFreeMintBlock;
    }

    function name() public pure returns (string memory) {
        return NAME;
    }

    function symbol() public pure returns (string memory) {
        return SYMBOL;
    }

    function tokenURI(uint256 tokenId) public view returns (string memory) {
        if (tokenId >= _currentIndex) revert NonexistentToken();
        return string(abi.encodePacked("ipfs://", _baseURI, "/", _toString(tokenId), ".json"));
    }

    // ============ APPROVALS ============

    function approve(address to, uint256 tokenId) public {
        address tokenOwner = ownerOf(tokenId);
        if (msg.sender != tokenOwner && !_operatorApprovals[tokenOwner][msg.sender])
            revert NotApproved();
        _tokenApprovals[tokenId] = to;
        emit Approval(tokenOwner, to, tokenId);
    }

    function setApprovalForAll(address operator, bool approved) public {
        _operatorApprovals[msg.sender][operator] = approved;
        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function getApproved(uint256 tokenId) public view returns (address) {
        if (tokenId >= _currentIndex) revert NonexistentToken();
        return _tokenApprovals[tokenId];
    }

    function isApprovedForAll(address account, address operator) public view returns (bool) {
        return _operatorApprovals[account][operator];
    }

    // ============ TRANSFERS ============

    function transferFrom(address from, address to, uint256 tokenId) public {
        _transfer(from, to, tokenId);
    }

    function safeTransferFrom(address from, address to, uint256 tokenId) public {
        _transfer(from, to, tokenId);
    }

    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata) public {
        _transfer(from, to, tokenId);
    }

    function _transfer(address from, address to, uint256 tokenId) internal {
        if (ownerOf(tokenId) != from) revert InvalidTransfer();
        if (msg.sender != from && !_operatorApprovals[from][msg.sender] && _tokenApprovals[tokenId] != msg.sender)
            revert NotApproved();

        delete _tokenApprovals[tokenId];
        unchecked {
            --_balances[from];
            ++_balances[to];
        }

        // Write new owner
        _owners[tokenId] = to;

        // Initialize next slot if needed (ERC721A pattern)
        uint256 nextId = tokenId + 1;
        if (nextId < _currentIndex && _owners[nextId] == address(0)) {
            _owners[nextId] = from;
        }

        emit Transfer(from, to, tokenId);
    }

    // ============ ERC165 & ERC2981 ============

    function supportsInterface(bytes4 interfaceId) public pure returns (bool) {
        return interfaceId == 0x01ffc9a7 || // ERC165
               interfaceId == 0x80ac58cd || // ERC721
               interfaceId == 0x5b5e139f || // ERC721Metadata
               interfaceId == 0x2a55205a;   // ERC2981
    }

    function royaltyInfo(uint256, uint256 salePrice) external view returns (address, uint256) {
        return (_owner, (salePrice * 500) / 10000);
    }

    // ============ ADMIN ============

    function setData(string calldata base, uint128 maxFree, uint128 maxFreePerWallet) external onlyOwner {
        _baseURI = base;
        MAX_FREE = maxFree;
        MAX_FREE_PER_WALLET = maxFreePerWallet;
    }

    /// @dev Set the mint count threshold after which only 1 free mint per block is allowed
    /// @param threshold The new threshold value (e.g., 250 means throttling starts at mint #250)
    function setFreeMintThrottleThreshold(uint256 threshold) external onlyOwner {
        freeMintThrottleThreshold = threshold;
    }

    function withdraw() external onlyOwner {
        (bool success, ) = msg.sender.call{value: address(this).balance}("");
        require(success);
    }

    // ============ UTILS ============

    function _toString(uint256 value) internal pure returns (string memory) {
        if (value == 0) return "0";
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) { digits++; temp /= 10; }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            buffer[--digits] = bytes1(uint8(48 + value % 10));
            value /= 10;
        }
        return string(buffer);
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyFreeMinted","type":"error"},{"inputs":[],"name":"FreeMintBlockCooldown","type":"error"},{"inputs":[],"name":"FreeMintSoldOut","type":"error"},{"inputs":[],"name":"InsufficientPayment","type":"error"},{"inputs":[],"name":"InvalidTransfer","type":"error"},{"inputs":[],"name":"NoScripts","type":"error"},{"inputs":[],"name":"NonexistentToken","type":"error"},{"inputs":[],"name":"NotApproved","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"SoldOut","type":"error"},{"inputs":[],"name":"ZeroQuantity","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"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":"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":"COST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_FREE","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_FREE_PER_WALLET","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freeMintThrottleThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freemint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isFreeMintAvailableThisBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastFreeMintBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"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":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"","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":"string","name":"base","type":"string"},{"internalType":"uint128","name":"maxFree","type":"uint128"},{"internalType":"uint128","name":"maxFreePerWallet","type":"uint128"}],"name":"setData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setFreeMintThrottleThreshold","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":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"teamMint","outputs":[],"stateMutability":"nonpayable","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":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e0604052603b60808181529061184660a03960019061001f9082610100565b507001000000000000000000000000000013886002556103e8600355348015610046575f5ffd5b505f80546001600160a01b031916331790556101be565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061008557607f821691505b6020821081036100a357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156100fb57828211156100fb57805f5260205f20601f840160051c60208510156100d457505f5b90810190601f840160051c035f5b818110156100f7575f838201556001016100e2565b5050505b505050565b81516001600160401b038111156101195761011961005d565b61012d816101278454610071565b846100a9565b6020601f82116001811461015f575f83156101485750848201515b5f19600385901b1c1916600184901b1784556101b7565b5f84815260208120601f198516915b8281101561018e578785015182556020948501946001909201910161016e565b50848210156101ab57868401515f19600387901b60f8161c191681555b505060018360011b0184555b5050505050565b61167b806101cb5f395ff3fe6080604052600436106101db575f3560e01c80638da5cb5b116100fd578063b88d4fde11610092578063ed6661c211610062578063ed6661c2146105ee578063f76f8d781461060d578063f99dfeba1461063b578063f9cb63ac14610650575f5ffd5b8063b88d4fde14610550578063bf8fbbd21461056f578063c87b56dd14610588578063e985e9c5146105a7575f5ffd5b8063a22cb465116100cd578063a22cb465146104c5578063a3f4df7e146104e4578063abd0a5521461051d578063b09d0b5e1461053c575f5ffd5b80638da5cb5b1461042d57806395d89b411461044957806398710d1e14610474578063a0712d68146104b2575f5ffd5b80632a55205a1161017357806342842e0e1161014357806342842e0e146103165780636352211e146103bb578063656042d0146103da57806370a08231146103f9575f5ffd5b80632a55205a146103355780632fbba1151461037357806332cb6b0c146103925780633ccfd60b146103a7575f5ffd5b8063095ea7b3116101ae578063095ea7b31461029d57806318160ddd146102be5780631e7269c5146102eb57806323b872dd14610316575f5ffd5b806301ffc9a7146101df5780630226f3291461021357806306fdde0314610227578063081812fc14610266575b5f5ffd5b3480156101ea575f5ffd5b506101fe6101f93660046110ad565b610664565b60405190151581526020015b60405180910390f35b34801561021e575f5ffd5b506101fe6106d0565b348015610232575f5ffd5b5060408051808201909152600e81526d5468652044656c2050756e6b6f7360901b60208201525b60405161020a91906110db565b348015610271575f5ffd5b50610285610280366004611110565b610707565b6040516001600160a01b03909116815260200161020a565b3480156102a8575f5ffd5b506102bc6102b7366004611142565b610754565b005b3480156102c9575f5ffd5b505f54600160a01b90046001600160601b03165b60405190815260200161020a565b3480156102f6575f5ffd5b506102dd61030536600461116a565b60096020525f908152604090205481565b348015610321575f5ffd5b506102bc610330366004611183565b610815565b348015610340575f5ffd5b5061035461034f3660046111bd565b610825565b604080516001600160a01b03909316835260208301919091520161020a565b34801561037e575f5ffd5b506102bc61038d366004611110565b610858565b34801561039d575f5ffd5b506102dd61138881565b3480156103b2575f5ffd5b506102bc6108cf565b3480156103c6575f5ffd5b506102856103d5366004611110565b61094a565b3480156103e5575f5ffd5b506102bc6103f4366004611110565b6109ab565b348015610404575f5ffd5b506102dd61041336600461116a565b6001600160a01b03165f9081526006602052604090205490565b348015610438575f5ffd5b505f546001600160a01b0316610285565b348015610454575f5ffd5b5060408051808201909152600381526205444560ec1b6020820152610259565b34801561047f575f5ffd5b5060025461049a90600160801b90046001600160801b031681565b6040516001600160801b03909116815260200161020a565b6102bc6104c0366004611110565b6109da565b3480156104d0575f5ffd5b506102bc6104df3660046111dd565b610a4a565b3480156104ef575f5ffd5b506102596040518060400160405280600e81526020016d5468652044656c2050756e6b6f7360901b81525081565b348015610528575f5ffd5b506102bc61053736600461126a565b610ab5565b348015610547575f5ffd5b506004546102dd565b34801561055b575f5ffd5b506102bc61056a3660046112cb565b610b08565b34801561057a575f5ffd5b506102dd655af3107a400081565b348015610593575f5ffd5b506102596105a2366004611110565b610b1a565b3480156105b2575f5ffd5b506101fe6105c1366004611335565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205460ff1690565b3480156105f9575f5ffd5b5060025461049a906001600160801b031681565b348015610618575f5ffd5b506102596040518060400160405280600381526020016205444560ec1b81525081565b348015610646575f5ffd5b506102dd60035481565b34801561065b575f5ffd5b506102bc610b80565b5f6301ffc9a760e01b6001600160e01b03198316148061069457506380ac58cd60e01b6001600160e01b03198316145b806106af5750635b5e139f60e01b6001600160e01b03198316145b806106ca575063152a902d60e11b6001600160e01b03198316145b92915050565b5f6003545f60149054906101000a90046001600160601b03166001600160601b031610610701575060045443141590565b50600190565b5f8054600160a01b90046001600160601b031682106107395760405163163a09e160e31b815260040160405180910390fd5b505f908152600760205260409020546001600160a01b031690565b5f61075e8261094a565b9050336001600160a01b0382161480159061079c57506001600160a01b0381165f90815260086020908152604080832033845290915290205460ff16155b156107ba5760405163c19f17a960e01b815260040160405180910390fd5b5f8281526007602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610820838383610cd8565b505050565b5f805481906001600160a01b0316612710610842856101f461137a565b61084c91906113a5565b915091505b9250929050565b5f546001600160a01b03163314610882576040516330cd747160e01b815260040160405180910390fd5b5f54611388906108a3908390600160a01b90046001600160601b03166113b8565b11156108c2576040516352df9fe560e01b815260040160405180910390fd5b6108cc3382610ea6565b50565b5f546001600160a01b031633146108f9576040516330cd747160e01b815260040160405180910390fd5b6040515f90339047908381818185875af1925050503d805f8114610938576040519150601f19603f3d011682016040523d82523d5f602084013e61093d565b606091505b50509050806108cc575f5ffd5b5f8054600160a01b90046001600160601b0316821061097c5760405163163a09e160e31b815260040160405180910390fd5b815b5f818152600560205260409020546001600160a01b031680156109a2579392505050565b505f190161097e565b5f546001600160a01b031633146109d5576040516330cd747160e01b815260040160405180910390fd5b600355565b5f54611388906109fb908390600160a01b90046001600160601b03166113b8565b1115610a1a576040516352df9fe560e01b815260040160405180910390fd5b610a2a655af3107a40008261137a565b3410156108c25760405163cd1c886760e01b815260040160405180910390fd5b335f8181526008602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b5f546001600160a01b03163314610adf576040516330cd747160e01b815260040160405180910390fd5b6001610aec84868361146d565b506001600160801b03908116600160801b029116176002555050565b610b13858585610cd8565b5050505050565b5f54606090600160a01b90046001600160601b03168210610b4e5760405163163a09e160e31b815260040160405180910390fd5b6001610b5983610faa565b604051602001610b6a92919061153e565b6040516020818303038152906040529050919050565b323314610ba05760405163377401db60e11b815260040160405180910390fd5b6002545f54600160801b82046001600160801b0390811692600160a01b9092046001600160601b03169116610bd583836113b8565b1115610bf457604051631fcc27c360e11b815260040160405180910390fd5b611388610c0183836113b8565b1115610c20576040516352df9fe560e01b815260040160405180910390fd5b335f9081526009602052604090205415610c4d576040516398bdb27b60e01b815260040160405180910390fd5b6003548110610cb9576004544303610c9457435f908152600a602081905260409091205410610c8f5760405163b202967360e01b815260040160405180910390fd5b610c99565b436004555b435f908152600a60205260408120805491610cb3836115f1565b91905055505b335f818152600960205260409020839055610cd49083610ea6565b5050565b826001600160a01b0316610ceb8261094a565b6001600160a01b031614610d1257604051632f35253160e01b815260040160405180910390fd5b336001600160a01b03841614801590610d4e57506001600160a01b0383165f90815260086020908152604080832033845290915290205460ff16155b8015610d7057505f818152600760205260409020546001600160a01b03163314155b15610d8e5760405163c19f17a960e01b815260040160405180910390fd5b5f81815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0387811685526006845282852080545f19019055861680855282852080546001908101909155868652600590945291842080549091169091179055610dfc9083906113b8565b5f54909150600160a01b90046001600160601b031681108015610e3357505f818152600560205260409020546001600160a01b0316155b15610e5f575f81815260056020526040902080546001600160a01b0319166001600160a01b0386161790555b81836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b805f03610ec65760405163f4f5b73360e01b815260040160405180910390fd5b5f8054600160a01b90046001600160601b031680825260056020908152604080842080546001600160a01b0319166001600160a01b038816908117909155845260069091528220805491928492610f1e9084906113b8565b909155505f90505b82811015610f7557610f3881836113b8565b6040516001600160a01b038616905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4600101610f26565b50610f8082826113b8565b5f60146101000a8154816001600160601b0302191690836001600160601b03160217905550505050565b6060815f03610fd05750506040805180820190915260018152600360fc1b602082015290565b815f5b8115610ff95780610fe3816115f1565b9150610ff29050600a836113a5565b9150610fd3565b5f8167ffffffffffffffff811115611013576110136113cb565b6040519080825280601f01601f19166020018201604052801561103d576020820181803683370190505b5090505b84156110a557611052600a86611609565b61105d9060306113b8565b60f81b8161106a8461161c565b9350838151811061107d5761107d611631565b60200101906001600160f81b03191690815f1a90535061109e600a866113a5565b9450611041565b949350505050565b5f602082840312156110bd575f5ffd5b81356001600160e01b0319811681146110d4575f5ffd5b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611120575f5ffd5b5035919050565b80356001600160a01b038116811461113d575f5ffd5b919050565b5f5f60408385031215611153575f5ffd5b61115c83611127565b946020939093013593505050565b5f6020828403121561117a575f5ffd5b6110d482611127565b5f5f5f60608486031215611195575f5ffd5b61119e84611127565b92506111ac60208501611127565b929592945050506040919091013590565b5f5f604083850312156111ce575f5ffd5b50508035926020909101359150565b5f5f604083850312156111ee575f5ffd5b6111f783611127565b91506020830135801515811461120b575f5ffd5b809150509250929050565b5f5f83601f840112611226575f5ffd5b50813567ffffffffffffffff81111561123d575f5ffd5b602083019150836020828501011115610851575f5ffd5b80356001600160801b038116811461113d575f5ffd5b5f5f5f5f6060858703121561127d575f5ffd5b843567ffffffffffffffff811115611293575f5ffd5b61129f87828801611216565b90955093506112b2905060208601611254565b91506112c060408601611254565b905092959194509250565b5f5f5f5f5f608086880312156112df575f5ffd5b6112e886611127565b94506112f660208701611127565b935060408601359250606086013567ffffffffffffffff811115611318575f5ffd5b61132488828901611216565b969995985093965092949392505050565b5f5f60408385031215611346575f5ffd5b61134f83611127565b915061135d60208401611127565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106ca576106ca611366565b634e487b7160e01b5f52601260045260245ffd5b5f826113b3576113b3611391565b500490565b808201808211156106ca576106ca611366565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806113f357607f821691505b60208210810361141157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610820578282111561082057805f5260205f20601f840160051c602085101561144257505f5b90810190601f840160051c035f5b81811015611465575f83820155600101611450565b505050505050565b67ffffffffffffffff831115611485576114856113cb565b6114998361149383546113df565b83611417565b5f601f8411600181146114ca575f85156114b35750838201355b5f19600387901b1c1916600186901b178355610b13565b5f83815260208120601f198716915b828110156114f957868501358255602094850194600190920191016114d9565b5086821015611515575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f81518060208401855e5f93019283525090919050565b66697066733a2f2f60c81b81525f5f8454611558816113df565b60018216801561156f576001811461158a576115bd565b60ff19831660078701526007821515830287010193506115bd565b875f5260205f205f5b838110156115b257815488820160070152600190910190602001611593565b505060078287010193505b505050602f60f81b81526115e86115d76001830186611527565b64173539b7b760d91b815260050190565b95945050505050565b5f6001820161160257611602611366565b5060010190565b5f8261161757611617611391565b500690565b5f8161162a5761162a611366565b505f190190565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220c96443947554ab5cf44c9313e329dd62cfb1a9173b28d8ef1f4883c349374fc564736f6c634300082100336261667962656963333377687270797771777534616d34627179736a326f366334637769667469766a6e33367a34696d76796e6573337870737369

Deployed Bytecode

0x6080604052600436106101db575f3560e01c80638da5cb5b116100fd578063b88d4fde11610092578063ed6661c211610062578063ed6661c2146105ee578063f76f8d781461060d578063f99dfeba1461063b578063f9cb63ac14610650575f5ffd5b8063b88d4fde14610550578063bf8fbbd21461056f578063c87b56dd14610588578063e985e9c5146105a7575f5ffd5b8063a22cb465116100cd578063a22cb465146104c5578063a3f4df7e146104e4578063abd0a5521461051d578063b09d0b5e1461053c575f5ffd5b80638da5cb5b1461042d57806395d89b411461044957806398710d1e14610474578063a0712d68146104b2575f5ffd5b80632a55205a1161017357806342842e0e1161014357806342842e0e146103165780636352211e146103bb578063656042d0146103da57806370a08231146103f9575f5ffd5b80632a55205a146103355780632fbba1151461037357806332cb6b0c146103925780633ccfd60b146103a7575f5ffd5b8063095ea7b3116101ae578063095ea7b31461029d57806318160ddd146102be5780631e7269c5146102eb57806323b872dd14610316575f5ffd5b806301ffc9a7146101df5780630226f3291461021357806306fdde0314610227578063081812fc14610266575b5f5ffd5b3480156101ea575f5ffd5b506101fe6101f93660046110ad565b610664565b60405190151581526020015b60405180910390f35b34801561021e575f5ffd5b506101fe6106d0565b348015610232575f5ffd5b5060408051808201909152600e81526d5468652044656c2050756e6b6f7360901b60208201525b60405161020a91906110db565b348015610271575f5ffd5b50610285610280366004611110565b610707565b6040516001600160a01b03909116815260200161020a565b3480156102a8575f5ffd5b506102bc6102b7366004611142565b610754565b005b3480156102c9575f5ffd5b505f54600160a01b90046001600160601b03165b60405190815260200161020a565b3480156102f6575f5ffd5b506102dd61030536600461116a565b60096020525f908152604090205481565b348015610321575f5ffd5b506102bc610330366004611183565b610815565b348015610340575f5ffd5b5061035461034f3660046111bd565b610825565b604080516001600160a01b03909316835260208301919091520161020a565b34801561037e575f5ffd5b506102bc61038d366004611110565b610858565b34801561039d575f5ffd5b506102dd61138881565b3480156103b2575f5ffd5b506102bc6108cf565b3480156103c6575f5ffd5b506102856103d5366004611110565b61094a565b3480156103e5575f5ffd5b506102bc6103f4366004611110565b6109ab565b348015610404575f5ffd5b506102dd61041336600461116a565b6001600160a01b03165f9081526006602052604090205490565b348015610438575f5ffd5b505f546001600160a01b0316610285565b348015610454575f5ffd5b5060408051808201909152600381526205444560ec1b6020820152610259565b34801561047f575f5ffd5b5060025461049a90600160801b90046001600160801b031681565b6040516001600160801b03909116815260200161020a565b6102bc6104c0366004611110565b6109da565b3480156104d0575f5ffd5b506102bc6104df3660046111dd565b610a4a565b3480156104ef575f5ffd5b506102596040518060400160405280600e81526020016d5468652044656c2050756e6b6f7360901b81525081565b348015610528575f5ffd5b506102bc61053736600461126a565b610ab5565b348015610547575f5ffd5b506004546102dd565b34801561055b575f5ffd5b506102bc61056a3660046112cb565b610b08565b34801561057a575f5ffd5b506102dd655af3107a400081565b348015610593575f5ffd5b506102596105a2366004611110565b610b1a565b3480156105b2575f5ffd5b506101fe6105c1366004611335565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205460ff1690565b3480156105f9575f5ffd5b5060025461049a906001600160801b031681565b348015610618575f5ffd5b506102596040518060400160405280600381526020016205444560ec1b81525081565b348015610646575f5ffd5b506102dd60035481565b34801561065b575f5ffd5b506102bc610b80565b5f6301ffc9a760e01b6001600160e01b03198316148061069457506380ac58cd60e01b6001600160e01b03198316145b806106af5750635b5e139f60e01b6001600160e01b03198316145b806106ca575063152a902d60e11b6001600160e01b03198316145b92915050565b5f6003545f60149054906101000a90046001600160601b03166001600160601b031610610701575060045443141590565b50600190565b5f8054600160a01b90046001600160601b031682106107395760405163163a09e160e31b815260040160405180910390fd5b505f908152600760205260409020546001600160a01b031690565b5f61075e8261094a565b9050336001600160a01b0382161480159061079c57506001600160a01b0381165f90815260086020908152604080832033845290915290205460ff16155b156107ba5760405163c19f17a960e01b815260040160405180910390fd5b5f8281526007602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610820838383610cd8565b505050565b5f805481906001600160a01b0316612710610842856101f461137a565b61084c91906113a5565b915091505b9250929050565b5f546001600160a01b03163314610882576040516330cd747160e01b815260040160405180910390fd5b5f54611388906108a3908390600160a01b90046001600160601b03166113b8565b11156108c2576040516352df9fe560e01b815260040160405180910390fd5b6108cc3382610ea6565b50565b5f546001600160a01b031633146108f9576040516330cd747160e01b815260040160405180910390fd5b6040515f90339047908381818185875af1925050503d805f8114610938576040519150601f19603f3d011682016040523d82523d5f602084013e61093d565b606091505b50509050806108cc575f5ffd5b5f8054600160a01b90046001600160601b0316821061097c5760405163163a09e160e31b815260040160405180910390fd5b815b5f818152600560205260409020546001600160a01b031680156109a2579392505050565b505f190161097e565b5f546001600160a01b031633146109d5576040516330cd747160e01b815260040160405180910390fd5b600355565b5f54611388906109fb908390600160a01b90046001600160601b03166113b8565b1115610a1a576040516352df9fe560e01b815260040160405180910390fd5b610a2a655af3107a40008261137a565b3410156108c25760405163cd1c886760e01b815260040160405180910390fd5b335f8181526008602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b5f546001600160a01b03163314610adf576040516330cd747160e01b815260040160405180910390fd5b6001610aec84868361146d565b506001600160801b03908116600160801b029116176002555050565b610b13858585610cd8565b5050505050565b5f54606090600160a01b90046001600160601b03168210610b4e5760405163163a09e160e31b815260040160405180910390fd5b6001610b5983610faa565b604051602001610b6a92919061153e565b6040516020818303038152906040529050919050565b323314610ba05760405163377401db60e11b815260040160405180910390fd5b6002545f54600160801b82046001600160801b0390811692600160a01b9092046001600160601b03169116610bd583836113b8565b1115610bf457604051631fcc27c360e11b815260040160405180910390fd5b611388610c0183836113b8565b1115610c20576040516352df9fe560e01b815260040160405180910390fd5b335f9081526009602052604090205415610c4d576040516398bdb27b60e01b815260040160405180910390fd5b6003548110610cb9576004544303610c9457435f908152600a602081905260409091205410610c8f5760405163b202967360e01b815260040160405180910390fd5b610c99565b436004555b435f908152600a60205260408120805491610cb3836115f1565b91905055505b335f818152600960205260409020839055610cd49083610ea6565b5050565b826001600160a01b0316610ceb8261094a565b6001600160a01b031614610d1257604051632f35253160e01b815260040160405180910390fd5b336001600160a01b03841614801590610d4e57506001600160a01b0383165f90815260086020908152604080832033845290915290205460ff16155b8015610d7057505f818152600760205260409020546001600160a01b03163314155b15610d8e5760405163c19f17a960e01b815260040160405180910390fd5b5f81815260076020908152604080832080546001600160a01b03199081169091556001600160a01b0387811685526006845282852080545f19019055861680855282852080546001908101909155868652600590945291842080549091169091179055610dfc9083906113b8565b5f54909150600160a01b90046001600160601b031681108015610e3357505f818152600560205260409020546001600160a01b0316155b15610e5f575f81815260056020526040902080546001600160a01b0319166001600160a01b0386161790555b81836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b805f03610ec65760405163f4f5b73360e01b815260040160405180910390fd5b5f8054600160a01b90046001600160601b031680825260056020908152604080842080546001600160a01b0319166001600160a01b038816908117909155845260069091528220805491928492610f1e9084906113b8565b909155505f90505b82811015610f7557610f3881836113b8565b6040516001600160a01b038616905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4600101610f26565b50610f8082826113b8565b5f60146101000a8154816001600160601b0302191690836001600160601b03160217905550505050565b6060815f03610fd05750506040805180820190915260018152600360fc1b602082015290565b815f5b8115610ff95780610fe3816115f1565b9150610ff29050600a836113a5565b9150610fd3565b5f8167ffffffffffffffff811115611013576110136113cb565b6040519080825280601f01601f19166020018201604052801561103d576020820181803683370190505b5090505b84156110a557611052600a86611609565b61105d9060306113b8565b60f81b8161106a8461161c565b9350838151811061107d5761107d611631565b60200101906001600160f81b03191690815f1a90535061109e600a866113a5565b9450611041565b949350505050565b5f602082840312156110bd575f5ffd5b81356001600160e01b0319811681146110d4575f5ffd5b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611120575f5ffd5b5035919050565b80356001600160a01b038116811461113d575f5ffd5b919050565b5f5f60408385031215611153575f5ffd5b61115c83611127565b946020939093013593505050565b5f6020828403121561117a575f5ffd5b6110d482611127565b5f5f5f60608486031215611195575f5ffd5b61119e84611127565b92506111ac60208501611127565b929592945050506040919091013590565b5f5f604083850312156111ce575f5ffd5b50508035926020909101359150565b5f5f604083850312156111ee575f5ffd5b6111f783611127565b91506020830135801515811461120b575f5ffd5b809150509250929050565b5f5f83601f840112611226575f5ffd5b50813567ffffffffffffffff81111561123d575f5ffd5b602083019150836020828501011115610851575f5ffd5b80356001600160801b038116811461113d575f5ffd5b5f5f5f5f6060858703121561127d575f5ffd5b843567ffffffffffffffff811115611293575f5ffd5b61129f87828801611216565b90955093506112b2905060208601611254565b91506112c060408601611254565b905092959194509250565b5f5f5f5f5f608086880312156112df575f5ffd5b6112e886611127565b94506112f660208701611127565b935060408601359250606086013567ffffffffffffffff811115611318575f5ffd5b61132488828901611216565b969995985093965092949392505050565b5f5f60408385031215611346575f5ffd5b61134f83611127565b915061135d60208401611127565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106ca576106ca611366565b634e487b7160e01b5f52601260045260245ffd5b5f826113b3576113b3611391565b500490565b808201808211156106ca576106ca611366565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806113f357607f821691505b60208210810361141157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610820578282111561082057805f5260205f20601f840160051c602085101561144257505f5b90810190601f840160051c035f5b81811015611465575f83820155600101611450565b505050505050565b67ffffffffffffffff831115611485576114856113cb565b6114998361149383546113df565b83611417565b5f601f8411600181146114ca575f85156114b35750838201355b5f19600387901b1c1916600186901b178355610b13565b5f83815260208120601f198716915b828110156114f957868501358255602094850194600190920191016114d9565b5086821015611515575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f81518060208401855e5f93019283525090919050565b66697066733a2f2f60c81b81525f5f8454611558816113df565b60018216801561156f576001811461158a576115bd565b60ff19831660078701526007821515830287010193506115bd565b875f5260205f205f5b838110156115b257815488820160070152600190910190602001611593565b505060078287010193505b505050602f60f81b81526115e86115d76001830186611527565b64173539b7b760d91b815260050190565b95945050505050565b5f6001820161160257611602611366565b5060010190565b5f8261161757611617611391565b500690565b5f8161162a5761162a611366565b505f190190565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220c96443947554ab5cf44c9313e329dd62cfb1a9173b28d8ef1f4883c349374fc564736f6c63430008210033

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.