ETH Price: $3,066.35 (-1.57%)
 

Overview

Max Total Supply

2,000,000,000 TAP

Holders

1

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-09-05
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.27;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is set to the address provided by the deployer. This can
 * later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/**
 * @dev Interface of the ERC-20 standard as defined in the ERC.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the value of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves a `value` amount of tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 value) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    /**
     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the
     * caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);
}

contract DigiTap is Context, IERC20, Ownable {
    mapping(address => uint256) private accountBalances;
    mapping(address => mapping(address => uint256)) private spendingAllowances;
    mapping(address => bool) public isWhitelisted;

    string private tokenName = "DigiTap";
    string private tokenSymbol = "TAP";
    uint8 private tokenDecimals = 18;
    uint256 private tokenTotalSupply = 2_000_000_000 * 10**18;

    bool public isTradingEnabled;

    constructor() Ownable(_msgSender()) {
        isWhitelisted[_msgSender()] = true;
        accountBalances[owner()] = tokenTotalSupply;
        emit Transfer(address(0), owner(), tokenTotalSupply);
    }

    receive() external payable {}

    function name() public view returns (string memory) {
        return tokenName;
    }

    function symbol() public view returns (string memory) {
        return tokenSymbol;
    }

    function decimals() public view returns (uint8) {
        return tokenDecimals;
    }

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

    function balanceOf(address user) public view override returns (uint256) {
        return accountBalances[user];
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        executeTransfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address ownerAddress, address spender)
        public
        view
        override
        returns (uint256)
    {
        return spendingAllowances[ownerAddress][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        setApproval(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        executeTransfer(sender, recipient, amount);
        setApproval(
            sender,
            _msgSender(),
            spendingAllowances[sender][_msgSender()] - amount
        );
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        returns (bool)
    {
        setApproval(
            _msgSender(),
            spender,
            spendingAllowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        returns (bool)
    {
        uint256 currentAllowance = spendingAllowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "DigiTap: cannot decrease allowance below zero"
        );
        setApproval(_msgSender(), spender, currentAllowance - subtractedValue);
        return true;
    }

    function withdrawEther(address receiver) public onlyOwner {
        require(
            receiver != address(0),
            "DigiTap: receiver cannot be zero address"
        );
        payable(receiver).transfer(address(this).balance);
    }

    function withdrawStuckTokens(
        address tokenAddress,
        address receiver,
        uint256 amount
    ) public onlyOwner {
        require(
            tokenAddress != address(0),
            "DigiTap: token address cannot be zero address"
        );
        require(
            receiver != address(0),
            "DigiTap: receiver cannot be zero address"
        );
        IERC20(tokenAddress).transfer(receiver, amount);
    }

    function enableTrading() external onlyOwner {
        require(!isTradingEnabled, "DigiTap: trading is already enabled");
        isTradingEnabled = true;
    }

    function updateWhitelist(address userAddress, bool status)
        external
        onlyOwner
    {
        require(
            userAddress != address(0),
            "DigiTap: user address cannot be zero address"
        );
        isWhitelisted[userAddress] = status;
    }

    function setApproval(
        address ownerAddress,
        address spender,
        uint256 amount
    ) private {
        require(
            ownerAddress != address(0),
            "DigiTap: approval from zero address not allowed"
        );
        require(
            spender != address(0),
            "DigiTap: approval to zero address not allowed"
        );

        spendingAllowances[ownerAddress][spender] = amount;
        emit Approval(ownerAddress, spender, amount);
    }

    function executeTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        require(
            sender != address(0),
            "DigiTap: transfer from zero address not allowed"
        );
        require(
            recipient != address(0),
            "DigiTap: transfer to zero address not allowed"
        );
        require(
            amount > 0,
            "DigiTap: transfer amount must be greater than zero"
        );

        if (!isWhitelisted[sender] && !isWhitelisted[recipient]) {
            require(isTradingEnabled, "DigiTap: trading is currently disabled");
        }

        uint256 senderBalance = accountBalances[sender];
        require(
            senderBalance >= amount,
            "DigiTap: sender has insufficient balance"
        );

        accountBalances[sender] = senderBalance - amount;
        accountBalances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"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":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"ownerAddress","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"updateWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"withdrawEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405260076080908152660446967695461760cc1b60a0526004906100269082610203565b5060408051808201909152600381526205441560ec1b602082015260059061004e9082610203565b506006805460ff191660121790556b06765c793fa10079d0000000600755348015610077575f5ffd5b50338061009d57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100a68161011c565b50335f908152600360209081526040808320805460ff1916600190811790915560075484546001600160a01b03908116865291845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36102bd565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061019357607f821691505b6020821081036101b157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101fe57805f5260205f20601f840160051c810160208510156101dc5750805b601f840160051c820191505b818110156101fb575f81556001016101e8565b50505b505050565b81516001600160401b0381111561021c5761021c61016b565b6102308161022a845461017f565b846101b7565b6020601f821160018114610262575f831561024b5750848201515b5f19600385901b1c1916600184901b1784556101fb565b5f84815260208120601f198516915b828110156102915787850151825560209485019460019092019101610271565b50848210156102ae57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b610f94806102ca5f395ff3fe60806040526004361061011e575f3560e01c8063715018a61161009d578063a9059cbb11610062578063a9059cbb14610318578063af933b5714610337578063dd62ed3e14610356578063f2fde38b1461039a578063fdff785c146103b9575f5ffd5b8063715018a6146102975780638a8c523c146102ab5780638da5cb5b146102bf57806395d89b41146102e5578063a457c2d7146102f9575f5ffd5b806323b872dd116100e357806323b872dd146101d6578063313ce567146101f557806339509351146102165780633af32abf1461023557806370a0823114610263575f5ffd5b8063064a59d01461012957806306fdde0314610157578063095ea7b3146101785780630d392cd91461019757806318160ddd146101b8575f5ffd5b3661012557005b5f5ffd5b348015610134575f5ffd5b506008546101429060ff1681565b60405190151581526020015b60405180910390f35b348015610162575f5ffd5b5061016b6103d8565b60405161014e9190610d44565b348015610183575f5ffd5b50610142610192366004610d94565b610468565b3480156101a2575f5ffd5b506101b66101b1366004610dc9565b61047e565b005b3480156101c3575f5ffd5b506007545b60405190815260200161014e565b3480156101e1575f5ffd5b506101426101f0366004610dfe565b610520565b348015610200575f5ffd5b5060065460405160ff909116815260200161014e565b348015610221575f5ffd5b50610142610230366004610d94565b610570565b348015610240575f5ffd5b5061014261024f366004610e38565b60036020525f908152604090205460ff1681565b34801561026e575f5ffd5b506101c861027d366004610e38565b6001600160a01b03165f9081526001602052604090205490565b3480156102a2575f5ffd5b506101b66105a6565b3480156102b6575f5ffd5b506101b66105b9565b3480156102ca575f5ffd5b505f546040516001600160a01b03909116815260200161014e565b3480156102f0575f5ffd5b5061016b61062f565b348015610304575f5ffd5b50610142610313366004610d94565b61063e565b348015610323575f5ffd5b50610142610332366004610d94565b6106d6565b348015610342575f5ffd5b506101b6610351366004610e38565b6106e2565b348015610361575f5ffd5b506101c8610370366004610e58565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103a5575f5ffd5b506101b66103b4366004610e38565b610746565b3480156103c4575f5ffd5b506101b66103d3366004610dfe565b610783565b6060600480546103e790610e89565b80601f016020809104026020016040519081016040528092919081815260200182805461041390610e89565b801561045e5780601f106104355761010080835404028352916020019161045e565b820191905f5260205f20905b81548152906001019060200180831161044157829003601f168201915b5050505050905090565b5f610474338484610893565b5060015b92915050565b6104866109cd565b6001600160a01b0382166104f65760405162461bcd60e51b815260206004820152602c60248201527f446967695461703a207573657220616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b60648201526084015b60405180910390fd5b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f61052c8484846109f9565b6001600160a01b0384165f90815260026020908152604080832033808552925290912054610566918691610561908690610ed5565b610893565b5060019392505050565b335f8181526002602090815260408083206001600160a01b03871684529091528120549091610474918590610561908690610ee8565b6105ae6109cd565b6105b75f610cf5565b565b6105c16109cd565b60085460ff16156106205760405162461bcd60e51b815260206004820152602360248201527f446967695461703a2074726164696e6720697320616c726561647920656e61626044820152621b195960ea1b60648201526084016104ed565b6008805460ff19166001179055565b6060600580546103e790610e89565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156106c75760405162461bcd60e51b815260206004820152602d60248201527f446967695461703a2063616e6e6f7420646563726561736520616c6c6f77616e60448201526c63652062656c6f77207a65726f60981b60648201526084016104ed565b61056633856105618685610ed5565b5f6104743384846109f9565b6106ea6109cd565b6001600160a01b0381166107105760405162461bcd60e51b81526004016104ed90610efb565b6040516001600160a01b038216904780156108fc02915f818181858888f19350505050158015610742573d5f5f3e3d5ffd5b5050565b61074e6109cd565b6001600160a01b03811661077757604051631e4fbdf760e01b81525f60048201526024016104ed565b61078081610cf5565b50565b61078b6109cd565b6001600160a01b0383166107f75760405162461bcd60e51b815260206004820152602d60248201527f446967695461703a20746f6b656e20616464726573732063616e6e6f7420626560448201526c207a65726f206164647265737360981b60648201526084016104ed565b6001600160a01b03821661081d5760405162461bcd60e51b81526004016104ed90610efb565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610869573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088d9190610f43565b50505050565b6001600160a01b0383166109015760405162461bcd60e51b815260206004820152602f60248201527f446967695461703a20617070726f76616c2066726f6d207a65726f206164647260448201526e195cdcc81b9bdd08185b1b1bddd959608a1b60648201526084016104ed565b6001600160a01b03821661096d5760405162461bcd60e51b815260206004820152602d60248201527f446967695461703a20617070726f76616c20746f207a65726f2061646472657360448201526c1cc81b9bdd08185b1b1bddd959609a1b60648201526084016104ed565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b031633146105b75760405163118cdaa760e01b81523360048201526024016104ed565b6001600160a01b038316610a675760405162461bcd60e51b815260206004820152602f60248201527f446967695461703a207472616e736665722066726f6d207a65726f206164647260448201526e195cdcc81b9bdd08185b1b1bddd959608a1b60648201526084016104ed565b6001600160a01b038216610ad35760405162461bcd60e51b815260206004820152602d60248201527f446967695461703a207472616e7366657220746f207a65726f2061646472657360448201526c1cc81b9bdd08185b1b1bddd959609a1b60648201526084016104ed565b5f8111610b3d5760405162461bcd60e51b815260206004820152603260248201527f446967695461703a207472616e7366657220616d6f756e74206d7573742062656044820152712067726561746572207468616e207a65726f60701b60648201526084016104ed565b6001600160a01b0383165f9081526003602052604090205460ff16158015610b7d57506001600160a01b0382165f9081526003602052604090205460ff16155b15610be35760085460ff16610be35760405162461bcd60e51b815260206004820152602660248201527f446967695461703a2074726164696e672069732063757272656e746c792064696044820152651cd8589b195960d21b60648201526084016104ed565b6001600160a01b0383165f9081526001602052604090205481811015610c5c5760405162461bcd60e51b815260206004820152602860248201527f446967695461703a2073656e6465722068617320696e73756666696369656e746044820152672062616c616e636560c01b60648201526084016104ed565b610c668282610ed5565b6001600160a01b038086165f908152600160205260408082209390935590851681529081208054849290610c9b908490610ee8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ce791815260200190565b60405180910390a350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610d8f575f5ffd5b919050565b5f5f60408385031215610da5575f5ffd5b610dae83610d79565b946020939093013593505050565b8015158114610780575f5ffd5b5f5f60408385031215610dda575f5ffd5b610de383610d79565b91506020830135610df381610dbc565b809150509250929050565b5f5f5f60608486031215610e10575f5ffd5b610e1984610d79565b9250610e2760208501610d79565b929592945050506040919091013590565b5f60208284031215610e48575f5ffd5b610e5182610d79565b9392505050565b5f5f60408385031215610e69575f5ffd5b610e7283610d79565b9150610e8060208401610d79565b90509250929050565b600181811c90821680610e9d57607f821691505b602082108103610ebb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561047857610478610ec1565b8082018082111561047857610478610ec1565b60208082526028908201527f446967695461703a2072656365697665722063616e6e6f74206265207a65726f604082015267206164647265737360c01b606082015260800190565b5f60208284031215610f53575f5ffd5b8151610e5181610dbc56fea264697066735822122008164d1eaec8e3bd89833b96960091570d2a983fcdf99199d17a7ee846c4f49264736f6c634300081b0033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063715018a61161009d578063a9059cbb11610062578063a9059cbb14610318578063af933b5714610337578063dd62ed3e14610356578063f2fde38b1461039a578063fdff785c146103b9575f5ffd5b8063715018a6146102975780638a8c523c146102ab5780638da5cb5b146102bf57806395d89b41146102e5578063a457c2d7146102f9575f5ffd5b806323b872dd116100e357806323b872dd146101d6578063313ce567146101f557806339509351146102165780633af32abf1461023557806370a0823114610263575f5ffd5b8063064a59d01461012957806306fdde0314610157578063095ea7b3146101785780630d392cd91461019757806318160ddd146101b8575f5ffd5b3661012557005b5f5ffd5b348015610134575f5ffd5b506008546101429060ff1681565b60405190151581526020015b60405180910390f35b348015610162575f5ffd5b5061016b6103d8565b60405161014e9190610d44565b348015610183575f5ffd5b50610142610192366004610d94565b610468565b3480156101a2575f5ffd5b506101b66101b1366004610dc9565b61047e565b005b3480156101c3575f5ffd5b506007545b60405190815260200161014e565b3480156101e1575f5ffd5b506101426101f0366004610dfe565b610520565b348015610200575f5ffd5b5060065460405160ff909116815260200161014e565b348015610221575f5ffd5b50610142610230366004610d94565b610570565b348015610240575f5ffd5b5061014261024f366004610e38565b60036020525f908152604090205460ff1681565b34801561026e575f5ffd5b506101c861027d366004610e38565b6001600160a01b03165f9081526001602052604090205490565b3480156102a2575f5ffd5b506101b66105a6565b3480156102b6575f5ffd5b506101b66105b9565b3480156102ca575f5ffd5b505f546040516001600160a01b03909116815260200161014e565b3480156102f0575f5ffd5b5061016b61062f565b348015610304575f5ffd5b50610142610313366004610d94565b61063e565b348015610323575f5ffd5b50610142610332366004610d94565b6106d6565b348015610342575f5ffd5b506101b6610351366004610e38565b6106e2565b348015610361575f5ffd5b506101c8610370366004610e58565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103a5575f5ffd5b506101b66103b4366004610e38565b610746565b3480156103c4575f5ffd5b506101b66103d3366004610dfe565b610783565b6060600480546103e790610e89565b80601f016020809104026020016040519081016040528092919081815260200182805461041390610e89565b801561045e5780601f106104355761010080835404028352916020019161045e565b820191905f5260205f20905b81548152906001019060200180831161044157829003601f168201915b5050505050905090565b5f610474338484610893565b5060015b92915050565b6104866109cd565b6001600160a01b0382166104f65760405162461bcd60e51b815260206004820152602c60248201527f446967695461703a207573657220616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b60648201526084015b60405180910390fd5b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f61052c8484846109f9565b6001600160a01b0384165f90815260026020908152604080832033808552925290912054610566918691610561908690610ed5565b610893565b5060019392505050565b335f8181526002602090815260408083206001600160a01b03871684529091528120549091610474918590610561908690610ee8565b6105ae6109cd565b6105b75f610cf5565b565b6105c16109cd565b60085460ff16156106205760405162461bcd60e51b815260206004820152602360248201527f446967695461703a2074726164696e6720697320616c726561647920656e61626044820152621b195960ea1b60648201526084016104ed565b6008805460ff19166001179055565b6060600580546103e790610e89565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156106c75760405162461bcd60e51b815260206004820152602d60248201527f446967695461703a2063616e6e6f7420646563726561736520616c6c6f77616e60448201526c63652062656c6f77207a65726f60981b60648201526084016104ed565b61056633856105618685610ed5565b5f6104743384846109f9565b6106ea6109cd565b6001600160a01b0381166107105760405162461bcd60e51b81526004016104ed90610efb565b6040516001600160a01b038216904780156108fc02915f818181858888f19350505050158015610742573d5f5f3e3d5ffd5b5050565b61074e6109cd565b6001600160a01b03811661077757604051631e4fbdf760e01b81525f60048201526024016104ed565b61078081610cf5565b50565b61078b6109cd565b6001600160a01b0383166107f75760405162461bcd60e51b815260206004820152602d60248201527f446967695461703a20746f6b656e20616464726573732063616e6e6f7420626560448201526c207a65726f206164647265737360981b60648201526084016104ed565b6001600160a01b03821661081d5760405162461bcd60e51b81526004016104ed90610efb565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610869573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088d9190610f43565b50505050565b6001600160a01b0383166109015760405162461bcd60e51b815260206004820152602f60248201527f446967695461703a20617070726f76616c2066726f6d207a65726f206164647260448201526e195cdcc81b9bdd08185b1b1bddd959608a1b60648201526084016104ed565b6001600160a01b03821661096d5760405162461bcd60e51b815260206004820152602d60248201527f446967695461703a20617070726f76616c20746f207a65726f2061646472657360448201526c1cc81b9bdd08185b1b1bddd959609a1b60648201526084016104ed565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b031633146105b75760405163118cdaa760e01b81523360048201526024016104ed565b6001600160a01b038316610a675760405162461bcd60e51b815260206004820152602f60248201527f446967695461703a207472616e736665722066726f6d207a65726f206164647260448201526e195cdcc81b9bdd08185b1b1bddd959608a1b60648201526084016104ed565b6001600160a01b038216610ad35760405162461bcd60e51b815260206004820152602d60248201527f446967695461703a207472616e7366657220746f207a65726f2061646472657360448201526c1cc81b9bdd08185b1b1bddd959609a1b60648201526084016104ed565b5f8111610b3d5760405162461bcd60e51b815260206004820152603260248201527f446967695461703a207472616e7366657220616d6f756e74206d7573742062656044820152712067726561746572207468616e207a65726f60701b60648201526084016104ed565b6001600160a01b0383165f9081526003602052604090205460ff16158015610b7d57506001600160a01b0382165f9081526003602052604090205460ff16155b15610be35760085460ff16610be35760405162461bcd60e51b815260206004820152602660248201527f446967695461703a2074726164696e672069732063757272656e746c792064696044820152651cd8589b195960d21b60648201526084016104ed565b6001600160a01b0383165f9081526001602052604090205481811015610c5c5760405162461bcd60e51b815260206004820152602860248201527f446967695461703a2073656e6465722068617320696e73756666696369656e746044820152672062616c616e636560c01b60648201526084016104ed565b610c668282610ed5565b6001600160a01b038086165f908152600160205260408082209390935590851681529081208054849290610c9b908490610ee8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ce791815260200190565b60405180910390a350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610d8f575f5ffd5b919050565b5f5f60408385031215610da5575f5ffd5b610dae83610d79565b946020939093013593505050565b8015158114610780575f5ffd5b5f5f60408385031215610dda575f5ffd5b610de383610d79565b91506020830135610df381610dbc565b809150509250929050565b5f5f5f60608486031215610e10575f5ffd5b610e1984610d79565b9250610e2760208501610d79565b929592945050506040919091013590565b5f60208284031215610e48575f5ffd5b610e5182610d79565b9392505050565b5f5f60408385031215610e69575f5ffd5b610e7283610d79565b9150610e8060208401610d79565b90509250929050565b600181811c90821680610e9d57607f821691505b602082108103610ebb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561047857610478610ec1565b8082018082111561047857610478610ec1565b60208082526028908201527f446967695461703a2072656365697665722063616e6e6f74206265207a65726f604082015267206164647265737360c01b606082015260800190565b5f60208284031215610f53575f5ffd5b8151610e5181610dbc56fea264697066735822122008164d1eaec8e3bd89833b96960091570d2a983fcdf99199d17a7ee846c4f49264736f6c634300081b0033

Deployed Bytecode Sourcemap

6788:5718:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7222:28;;;;;;;;;;-1:-1:-1;7222:28:0;;;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;7222:28:0;;;;;;;;7510:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8464:196::-;;;;;;;;;;-1:-1:-1;8464:196:0;;;;;:::i;:::-;;:::i;10685:285::-;;;;;;;;;;-1:-1:-1;10685:285:0;;;;;:::i;:::-;;:::i;:::-;;7799:104;;;;;;;;;;-1:-1:-1;7879:16:0;;7799:104;;;1701:25:1;;;1689:2;1674:18;7799:104:0;1555:177:1;8668:366:0;;;;;;;;;;-1:-1:-1;8668:366:0;;;;;:::i;:::-;;:::i;7704:87::-;;;;;;;;;;-1:-1:-1;7770:13:0;;7704:87;;7770:13;;;;2258:36:1;;2246:2;2231:18;7704:87:0;2116:184:1;9042:290:0;;;;;;;;;;-1:-1:-1;9042:290:0;;;;;:::i;:::-;;:::i;6979:45::-;;;;;;;;;;-1:-1:-1;6979:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7911:119;;;;;;;;;;-1:-1:-1;7911:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8001:21:0;7974:7;8001:21;;;:15;:21;;;;;;;7911:119;3133:103;;;;;;;;;;;;;:::i;10515:162::-;;;;;;;;;;;;;:::i;2458:87::-;;;;;;;;;;-1:-1:-1;2504:7:0;2531:6;2458:87;;-1:-1:-1;;;;;2531:6:0;;;2642:51:1;;2630:2;2615:18;2458:87:0;2496:203:1;7605:91:0;;;;;;;;;;;;;:::i;9340:445::-;;;;;;;;;;-1:-1:-1;9340:445:0;;;;;:::i;:::-;;:::i;8038:205::-;;;;;;;;;;-1:-1:-1;8038:205:0;;;;;:::i;:::-;;:::i;9793:249::-;;;;;;;;;;-1:-1:-1;9793:249:0;;;;;:::i;:::-;;:::i;8251:205::-;;;;;;;;;;-1:-1:-1;8251:205:0;;;;;:::i;:::-;-1:-1:-1;;;;;8407:32:0;;;8375:7;8407:32;;;:18;:32;;;;;;;;:41;;;;;;;;;;;;;8251:205;3391:220;;;;;;;;;;-1:-1:-1;3391:220:0;;;;;:::i;:::-;;:::i;10050:457::-;;;;;;;;;;-1:-1:-1;10050:457:0;;;;;:::i;:::-;;:::i;7510:87::-;7547:13;7580:9;7573:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7510:87;:::o;8464:196::-;8566:4;8588:42;681:10;8614:7;8623:6;8588:11;:42::i;:::-;-1:-1:-1;8648:4:0;8464:196;;;;;:::o;10685:285::-;2344:13;:11;:13::i;:::-;-1:-1:-1;;;;;10819:25:0;::::1;10797:119;;;::::0;-1:-1:-1;;;10797:119:0;;3556:2:1;10797:119:0::1;::::0;::::1;3538:21:1::0;3595:2;3575:18;;;3568:30;3634:34;3614:18;;;3607:62;-1:-1:-1;;;3685:18:1;;;3678:42;3737:19;;10797:119:0::1;;;;;;;;;-1:-1:-1::0;;;;;10927:26:0;;;::::1;;::::0;;;:13:::1;:26;::::0;;;;:35;;-1:-1:-1;;10927:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10685:285::o;8668:366::-;8800:4;8817:42;8833:6;8841:9;8852:6;8817:15;:42::i;:::-;-1:-1:-1;;;;;8944:26:0;;;;;;:18;:26;;;;;;;;681:10;8944:40;;;;;;;;;8870:134;;8896:6;;8944:49;;8987:6;;8944:49;:::i;:::-;8870:11;:134::i;:::-;-1:-1:-1;9022:4:0;8668:366;;;;;:::o;9042:290::-;681:10;9140:4;9237:32;;;:18;:32;;;;;;;;-1:-1:-1;;;;;9237:41:0;;;;;;;;;;9140:4;;9162:140;;9215:7;;9237:54;;9281:10;;9237:54;:::i;3133:103::-;2344:13;:11;:13::i;:::-;3198:30:::1;3225:1;3198:18;:30::i;:::-;3133:103::o:0;10515:162::-;2344:13;:11;:13::i;:::-;10579:16:::1;::::0;::::1;;10578:17;10570:65;;;::::0;-1:-1:-1;;;10570:65:0;;4364:2:1;10570:65:0::1;::::0;::::1;4346:21:1::0;4403:2;4383:18;;;4376:30;4442:34;4422:18;;;4415:62;-1:-1:-1;;;4493:18:1;;;4486:33;4536:19;;10570:65:0::1;4162:399:1::0;10570:65:0::1;10646:16;:23:::0;;-1:-1:-1;;10646:23:0::1;10665:4;10646:23;::::0;;10515:162::o;7605:91::-;7644:13;7677:11;7670:18;;;;;:::i;9340:445::-;681:10;9443:4;9492:32;;;:18;:32;;;;;;;;-1:-1:-1;;;;;9492:41:0;;;;;;;;;;9566:35;;;;9544:130;;;;-1:-1:-1;;;9544:130:0;;4768:2:1;9544:130:0;;;4750:21:1;4807:2;4787:18;;;4780:30;4846:34;4826:18;;;4819:62;-1:-1:-1;;;4897:18:1;;;4890:43;4950:19;;9544:130:0;4566:409:1;9544:130:0;9685:70;681:10;9711:7;9720:34;9739:15;9720:16;:34;:::i;8038:205::-;8143:4;8165:48;681:10;8195:9;8206:6;8165:15;:48::i;9793:249::-;2344:13;:11;:13::i;:::-;-1:-1:-1;;;;;9884:22:0;::::1;9862:112;;;;-1:-1:-1::0;;;9862:112:0::1;;;;;;;:::i;:::-;9985:49;::::0;-1:-1:-1;;;;;9985:26:0;::::1;::::0;10012:21:::1;9985:49:::0;::::1;;;::::0;::::1;::::0;;;10012:21;9985:26;:49;::::1;;;;;;;;;;;;;;;;;;;;9793:249:::0;:::o;3391:220::-;2344:13;:11;:13::i;:::-;-1:-1:-1;;;;;3476:22:0;::::1;3472:93;;3522:31;::::0;-1:-1:-1;;;3522:31:0;;3550:1:::1;3522:31;::::0;::::1;2642:51:1::0;2615:18;;3522:31:0::1;2496:203:1::0;3472:93:0::1;3575:28;3594:8;3575:18;:28::i;:::-;3391:220:::0;:::o;10050:457::-;2344:13;:11;:13::i;:::-;-1:-1:-1;;;;;10219:26:0;::::1;10197:121;;;::::0;-1:-1:-1;;;10197:121:0;;5591:2:1;10197:121:0::1;::::0;::::1;5573:21:1::0;5630:2;5610:18;;;5603:30;5669:34;5649:18;;;5642:62;-1:-1:-1;;;5720:18:1;;;5713:43;5773:19;;10197:121:0::1;5389:409:1::0;10197:121:0::1;-1:-1:-1::0;;;;;10351:22:0;::::1;10329:112;;;;-1:-1:-1::0;;;10329:112:0::1;;;;;;;:::i;:::-;10452:47;::::0;-1:-1:-1;;;10452:47:0;;-1:-1:-1;;;;;5995:32:1;;;10452:47:0::1;::::0;::::1;5977:51:1::0;6044:18;;;6037:34;;;10452:29:0;::::1;::::0;::::1;::::0;5950:18:1;;10452:47:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10050:457:::0;;;:::o;10978:505::-;-1:-1:-1;;;;;11129:26:0;;11107:123;;;;-1:-1:-1;;;11107:123:0;;6534:2:1;11107:123:0;;;6516:21:1;6573:2;6553:18;;;6546:30;6612:34;6592:18;;;6585:62;-1:-1:-1;;;6663:18:1;;;6656:45;6718:19;;11107:123:0;6332:411:1;11107:123:0;-1:-1:-1;;;;;11263:21:0;;11241:116;;;;-1:-1:-1;;;11241:116:0;;6950:2:1;11241:116:0;;;6932:21:1;6989:2;6969:18;;;6962:30;7028:34;7008:18;;;7001:62;-1:-1:-1;;;7079:18:1;;;7072:43;7132:19;;11241:116:0;6748:409:1;11241:116:0;-1:-1:-1;;;;;11370:32:0;;;;;;;:18;:32;;;;;;;;:41;;;;;;;;;;;;;:50;;;11436:39;;1701:25:1;;;11436:39:0;;1674:18:1;11436:39:0;;;;;;;10978:505;;;:::o;2623:166::-;2504:7;2531:6;-1:-1:-1;;;;;2531:6:0;681:10;2683:23;2679:103;;2730:40;;-1:-1:-1;;;2730:40:0;;681:10;2730:40;;;2642:51:1;2615:18;;2730:40:0;2496:203:1;11491:1012:0;-1:-1:-1;;;;;11642:20:0;;11620:117;;;;-1:-1:-1;;;11620:117:0;;7364:2:1;11620:117:0;;;7346:21:1;7403:2;7383:18;;;7376:30;7442:34;7422:18;;;7415:62;-1:-1:-1;;;7493:18:1;;;7486:45;7548:19;;11620:117:0;7162:411:1;11620:117:0;-1:-1:-1;;;;;11770:23:0;;11748:118;;;;-1:-1:-1;;;11748:118:0;;7780:2:1;11748:118:0;;;7762:21:1;7819:2;7799:18;;;7792:30;7858:34;7838:18;;;7831:62;-1:-1:-1;;;7909:18:1;;;7902:43;7962:19;;11748:118:0;7578:409:1;11748:118:0;11908:1;11899:6;:10;11877:110;;;;-1:-1:-1;;;11877:110:0;;8194:2:1;11877:110:0;;;8176:21:1;8233:2;8213:18;;;8206:30;8272:34;8252:18;;;8245:62;-1:-1:-1;;;8323:18:1;;;8316:48;8381:19;;11877:110:0;7992:414:1;11877:110:0;-1:-1:-1;;;;;12005:21:0;;;;;;:13;:21;;;;;;;;12004:22;:51;;;;-1:-1:-1;;;;;;12031:24:0;;;;;;:13;:24;;;;;;;;12030:25;12004:51;12000:151;;;12080:16;;;;12072:67;;;;-1:-1:-1;;;12072:67:0;;8613:2:1;12072:67:0;;;8595:21:1;8652:2;8632:18;;;8625:30;8691:34;8671:18;;;8664:62;-1:-1:-1;;;8742:18:1;;;8735:36;8788:19;;12072:67:0;8411:402:1;12072:67:0;-1:-1:-1;;;;;12187:23:0;;12163:21;12187:23;;;:15;:23;;;;;;12243;;;;12221:113;;;;-1:-1:-1;;;12221:113:0;;9020:2:1;12221:113:0;;;9002:21:1;9059:2;9039:18;;;9032:30;9098:34;9078:18;;;9071:62;-1:-1:-1;;;9149:18:1;;;9142:38;9197:19;;12221:113:0;8818:404:1;12221:113:0;12373:22;12389:6;12373:13;:22;:::i;:::-;-1:-1:-1;;;;;12347:23:0;;;;;;;:15;:23;;;;;;:48;;;;12406:26;;;;;;;;:36;;12436:6;;12347:23;12406:36;;12436:6;;12406:36;:::i;:::-;;;;;;;;12477:9;-1:-1:-1;;;;;12460:35:0;12469:6;-1:-1:-1;;;;;12460:35:0;;12488:6;12460:35;;;;1701:25:1;;1689:2;1674:18;;1555:177;12460:35:0;;;;;;;;11609:894;11491:1012;;;:::o;3771:191::-;3845:16;3864:6;;-1:-1:-1;;;;;3881:17:0;;;-1:-1:-1;;;;;;3881:17:0;;;;;;3914:40;;3864:6;;;;;;;3914:40;;3845:16;3914:40;3834:128;3771:191;:::o;206:418:1:-;355:2;344:9;337:21;318:4;387:6;381:13;430:6;425:2;414:9;410:18;403:34;489:6;484:2;476:6;472:15;467:2;456:9;452:18;446:50;545:1;540:2;531:6;520:9;516:22;512:31;505:42;615:2;608;604:7;599:2;591:6;587:15;583:29;572:9;568:45;564:54;556:62;;;206:418;;;;:::o;629:173::-;697:20;;-1:-1:-1;;;;;746:31:1;;736:42;;726:70;;792:1;789;782:12;726:70;629:173;;;:::o;807:300::-;875:6;883;936:2;924:9;915:7;911:23;907:32;904:52;;;952:1;949;942:12;904:52;975:29;994:9;975:29;:::i;:::-;965:39;1073:2;1058:18;;;;1045:32;;-1:-1:-1;;;807:300:1:o;1112:118::-;1198:5;1191:13;1184:21;1177:5;1174:32;1164:60;;1220:1;1217;1210:12;1235:315;1300:6;1308;1361:2;1349:9;1340:7;1336:23;1332:32;1329:52;;;1377:1;1374;1367:12;1329:52;1400:29;1419:9;1400:29;:::i;:::-;1390:39;;1479:2;1468:9;1464:18;1451:32;1492:28;1514:5;1492:28;:::i;:::-;1539:5;1529:15;;;1235:315;;;;;:::o;1737:374::-;1814:6;1822;1830;1883:2;1871:9;1862:7;1858:23;1854:32;1851:52;;;1899:1;1896;1889:12;1851:52;1922:29;1941:9;1922:29;:::i;:::-;1912:39;;1970:38;2004:2;1993:9;1989:18;1970:38;:::i;:::-;1737:374;;1960:48;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1737:374::o;2305:186::-;2364:6;2417:2;2405:9;2396:7;2392:23;2388:32;2385:52;;;2433:1;2430;2423:12;2385:52;2456:29;2475:9;2456:29;:::i;:::-;2446:39;2305:186;-1:-1:-1;;;2305:186:1:o;2704:260::-;2772:6;2780;2833:2;2821:9;2812:7;2808:23;2804:32;2801:52;;;2849:1;2846;2839:12;2801:52;2872:29;2891:9;2872:29;:::i;:::-;2862:39;;2920:38;2954:2;2943:9;2939:18;2920:38;:::i;:::-;2910:48;;2704:260;;;;;:::o;2969:380::-;3048:1;3044:12;;;;3091;;;3112:61;;3166:4;3158:6;3154:17;3144:27;;3112:61;3219:2;3211:6;3208:14;3188:18;3185:38;3182:161;;3265:10;3260:3;3256:20;3253:1;3246:31;3300:4;3297:1;3290:15;3328:4;3325:1;3318:15;3182:161;;2969:380;;;:::o;3767:127::-;3828:10;3823:3;3819:20;3816:1;3809:31;3859:4;3856:1;3849:15;3883:4;3880:1;3873:15;3899:128;3966:9;;;3987:11;;;3984:37;;;4001:18;;:::i;4032:125::-;4097:9;;;4118:10;;;4115:36;;;4131:18;;:::i;4980:404::-;5182:2;5164:21;;;5221:2;5201:18;;;5194:30;5260:34;5255:2;5240:18;;5233:62;-1:-1:-1;;;5326:2:1;5311:18;;5304:38;5374:3;5359:19;;4980:404::o;6082:245::-;6149:6;6202:2;6190:9;6181:7;6177:23;6173:32;6170:52;;;6218:1;6215;6208:12;6170:52;6250:9;6244:16;6269:28;6291:5;6269:28;:::i

Swarm Source

ipfs://08164d1eaec8e3bd89833b96960091570d2a983fcdf99199d17a7ee846c4f492
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.