ETH Price: $3,350.23 (-0.51%)

Token

Ukraine Appreciation Token v1.0 (UAT)
 

Overview

Max Total Supply

3,332,818.2037088608735576 UAT

Holders

202

Total Transfers

-

Market

Onchain Market Cap

$0.00

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

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 5: ClaimableToken.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./ERC20.sol";

contract ClaimableToken is ERC20 {
    mapping(address => bool) private _minted;
    uint256 private _nonowner_minted_wei = 0;
    uint256 private _owner_minted_wei = 0;
    bytes32 private _root;
    address private _creator_address;
    string public official_public_key_fingerprint =
        "0393 E867 815B 3770 7171 6974 58C2 D25B C472 3E97";
    bool public official_ipfs_address_locked = false;
    string public official_ipfs_address;

    constructor(
        string memory name_,
        string memory symbol_,
        bytes32 root_
    ) ERC20(name_, symbol_) {
        _creator_address = msg.sender;
        _root = root_;
    }

    function setIpfs(string memory official_ipfs_address_) public {
        require(!official_ipfs_address_locked, "IPFS Address is locked.");
        require(
            _creator_address == msg.sender,
            "Only the owner can call this function."
        );
        official_ipfs_address = official_ipfs_address_;
    }

    function lockIpfs() public // permanently locks ipfs address
    {
        require(
            _creator_address == msg.sender,
            "Only the owner can call this function."
        );
        official_ipfs_address_locked = true;
    }

    function computeLeafHash(address to, uint256 amount_wei)
        public
        pure
        returns (bytes32)
    {
        // Is it easy to create a collision here?? Need to think
        return keccak256(abi.encodePacked(to, amount_wei));
    }

    function claimable(
        address to,
        uint256 amount_wei,
        bytes32[] memory proof
    ) public view returns (bool) {
        bytes32 computedHash = computeLeafHash(to, amount_wei);
        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];

            if (computedHash <= proofElement) {
                // Hash(current computed hash + current element of the proof)
                computedHash = keccak256(
                    abi.encodePacked(computedHash, proofElement)
                );
            } else {
                // Hash(current element of the proof + current computed hash)
                computedHash = keccak256(
                    abi.encodePacked(proofElement, computedHash)
                );
            }
        }
        return computedHash == _root;
    }

    function claimToken(
        address to,
        uint256 amount_wei,
        bytes32[] memory proof
    ) public {
        require(claimable(to, amount_wei, proof), "Proof is invalid.");
        require(!_minted[to], "Token is already claimed.");
        _minted[to] = true;
        uint256 amount_tokens = amount_wei * 1000;
        _nonowner_minted_wei += amount_tokens;
        super._mint(to, amount_tokens);
    }

    function mineOwnerTokens() public {
        require(
            _creator_address == msg.sender,
            "Only the owner can call this function."
        );
        uint256 owner_supply = _nonowner_minted_wei / 20;
        uint256 owner_mintable_wei = owner_supply - _owner_minted_wei;
        require(
            owner_mintable_wei > 0,
            "All claimable tokens are already claimed."
        );
        _owner_minted_wei += owner_mintable_wei;
        super._mint(_creator_address, owner_mintable_wei);
    }
}

File 2 of 5: Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @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;
    }
}

File 3 of 5: ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, _allowances[owner][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        uint256 currentAllowance = _allowances[owner][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Spend `amount` form the allowance of `owner` toward `spender`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

File 4 of 5: IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * @dev Moves `amount` 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 amount) 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 `amount` 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 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` 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 amount
    ) external returns (bool);

    /**
     * @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);
}

File 5 of 5: IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"bytes32","name":"root_","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount_wei","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount_wei","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"claimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount_wei","type":"uint256"}],"name":"computeLeafHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","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":[{"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":"lockIpfs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mineOwnerTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"official_ipfs_address","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"official_ipfs_address_locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"official_public_key_fingerprint","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"official_ipfs_address_","type":"string"}],"name":"setIpfs","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

6000600681905560075560e06040526031608081815290620016ac60a03980516200003391600a91602090910190620000be565b50600b805460ff191690553480156200004b57600080fd5b50604051620016dd380380620016dd8339810160408190526200006e916200021b565b82518390839062000087906003906020850190620000be565b5080516200009d906004906020840190620000be565b5050600980546001600160a01b031916331790555060085550620002e19050565b828054620000cc906200028e565b90600052602060002090601f016020900481019282620000f057600085556200013b565b82601f106200010b57805160ff19168380011785556200013b565b828001600101855582156200013b579182015b828111156200013b5782518255916020019190600101906200011e565b50620001499291506200014d565b5090565b5b808211156200014957600081556001016200014e565b600082601f8301126200017657600080fd5b81516001600160401b0380821115620001935762000193620002cb565b604051601f8301601f19908116603f01168101908282118183101715620001be57620001be620002cb565b81604052838152602092508683858801011115620001db57600080fd5b600091505b83821015620001ff5785820183015181830184015290820190620001e0565b83821115620002115760008385830101525b9695505050505050565b6000806000606084860312156200023157600080fd5b83516001600160401b03808211156200024957600080fd5b620002578783880162000164565b945060208601519150808211156200026e57600080fd5b506200027d8682870162000164565b925050604084015190509250925092565b600181811c90821680620002a357607f821691505b60208210811415620002c557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6113bb80620002f16000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c8063a317063d116100cd578063c622949b11610081578063dd62ed3e11610066578063dd62ed3e146102f2578063e8e247341461032b578063ec0b167b1461033e57600080fd5b8063c622949b146102e2578063ca4d9328146102ea57600080fd5b8063a9059cbb116100b2578063a9059cbb146102af578063ba3a8119146102c2578063c31fa083146102cf57600080fd5b8063a317063d14610294578063a457c2d71461029c57600080fd5b8063395093511161012457806370a082311161010957806370a082311461020e57806395d89b4114610237578063974595c11461023f57600080fd5b806339509351146101e65780634bcc5c52146101f957600080fd5b806318160ddd1161015557806318160ddd146101b257806323b872dd146101c4578063313ce567146101d757600080fd5b806306fdde0314610171578063095ea7b31461018f575b600080fd5b610179610346565b60405161018691906111f7565b60405180910390f35b6101a261019d36600461106f565b6103d8565b6040519015158152602001610186565b6002545b604051908152602001610186565b6101a26101d2366004611033565b6103f0565b60405160128152602001610186565b6101a26101f436600461106f565b610414565b61020c610207366004611099565b610453565b005b6101b661021c366004610fde565b6001600160a01b031660009081526020819052604090205490565b610179610571565b6101b661024d36600461106f565b6040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260009060540160405160208183030381529060405280519060200120905092915050565b610179610580565b6101a26102aa36600461106f565b61060e565b6101a26102bd36600461106f565b6106b8565b600b546101a29060ff1681565b61020c6102dd366004611162565b6106c6565b610179610799565b61020c6107a6565b6101b6610300366004611000565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101a2610339366004611099565b6108d7565b61020c6109d7565b606060038054610355906112ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610381906112ed565b80156103ce5780601f106103a3576101008083540402835291602001916103ce565b820191906000526020600020905b8154815290600101906020018083116103b157829003601f168201915b5050505050905090565b6000336103e6818585610a4f565b5060019392505050565b6000336103fe858285610ba7565b610409858585610c33565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906103e6908290869061044e90879061127d565b610a4f565b61045e8383836108d7565b6104af5760405162461bcd60e51b815260206004820152601160248201527f50726f6f6620697320696e76616c69642e00000000000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b03831660009081526005602052604090205460ff16156105185760405162461bcd60e51b815260206004820152601960248201527f546f6b656e20697320616c726561647920636c61696d65642e0000000000000060448201526064016104a6565b6001600160a01b0383166000908152600560205260408120805460ff19166001179055610547836103e86112b7565b9050806006600082825461055b919061127d565b9091555061056b90508482610e4a565b50505050565b606060048054610355906112ed565b600c805461058d906112ed565b80601f01602080910402602001604051908101604052809291908181526020018280546105b9906112ed565b80156106065780601f106105db57610100808354040283529160200191610606565b820191906000526020600020905b8154815290600101906020018083116105e957829003601f168201915b505050505081565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156106ab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016104a6565b6104098286868403610a4f565b6000336103e6818585610c33565b600b5460ff16156107195760405162461bcd60e51b815260206004820152601760248201527f495046532041646472657373206973206c6f636b65642e00000000000000000060448201526064016104a6565b6009546001600160a01b031633146107825760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60448201526531ba34b7b71760d11b60648201526084016104a6565b805161079590600c906020840190610f29565b5050565b600a805461058d906112ed565b6009546001600160a01b0316331461080f5760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60448201526531ba34b7b71760d11b60648201526084016104a6565b600060146006546108209190611295565b905060006007548261083291906112d6565b9050600081116108aa5760405162461bcd60e51b815260206004820152602960248201527f416c6c20636c61696d61626c6520746f6b656e732061726520616c726561647960448201527f20636c61696d65642e000000000000000000000000000000000000000000000060648201526084016104a6565b80600760008282546108bc919061127d565b9091555050600954610795906001600160a01b031682610e4a565b60008061092685856040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260009060540160405160208183030381529060405280519060200120905092915050565b905060005b83518110156109ca57600084828151811061094857610948611359565b6020026020010151905080831161098a5760408051602081018590529081018290526060016040516020818303038152906040528051906020012092506109b7565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806109c281611328565b91505061092b565b5060085414949350505050565b6009546001600160a01b03163314610a405760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60448201526531ba34b7b71760d11b60648201526084016104a6565b600b805460ff19166001179055565b6001600160a01b038316610aca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104a6565b6001600160a01b038216610b465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104a6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461056b5781811015610c265760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104a6565b61056b8484848403610a4f565b6001600160a01b038316610caf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104a6565b6001600160a01b038216610d2b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104a6565b6001600160a01b03831660009081526020819052604090205481811015610dba5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104a6565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610df190849061127d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e3d91815260200190565b60405180910390a361056b565b6001600160a01b038216610ea05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104a6565b8060026000828254610eb2919061127d565b90915550506001600160a01b03821660009081526020819052604081208054839290610edf90849061127d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054610f35906112ed565b90600052602060002090601f016020900481019282610f575760008555610f9d565b82601f10610f7057805160ff1916838001178555610f9d565b82800160010185558215610f9d579182015b82811115610f9d578251825591602001919060010190610f82565b50610fa9929150610fad565b5090565b5b80821115610fa95760008155600101610fae565b80356001600160a01b0381168114610fd957600080fd5b919050565b600060208284031215610ff057600080fd5b610ff982610fc2565b9392505050565b6000806040838503121561101357600080fd5b61101c83610fc2565b915061102a60208401610fc2565b90509250929050565b60008060006060848603121561104857600080fd5b61105184610fc2565b925061105f60208501610fc2565b9150604084013590509250925092565b6000806040838503121561108257600080fd5b61108b83610fc2565b946020939093013593505050565b6000806000606084860312156110ae57600080fd5b6110b784610fc2565b92506020808501359250604085013567ffffffffffffffff808211156110dc57600080fd5b818701915087601f8301126110f057600080fd5b8135818111156111025761110261136f565b8060051b915061111384830161124c565b8181528481019084860184860187018c101561112e57600080fd5b600095505b83861015611151578035835260019590950194918601918601611133565b508096505050505050509250925092565b6000602080838503121561117557600080fd5b823567ffffffffffffffff8082111561118d57600080fd5b818501915085601f8301126111a157600080fd5b8135818111156111b3576111b361136f565b6111c584601f19601f8401160161124c565b915080825286848285010111156111db57600080fd5b8084840185840137600090820190930192909252509392505050565b600060208083528351808285015260005b8181101561122457858101830151858201604001528201611208565b81811115611236576000604083870101525b50601f01601f1916929092016040019392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156112755761127561136f565b604052919050565b6000821982111561129057611290611343565b500190565b6000826112b257634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156112d1576112d1611343565b500290565b6000828210156112e8576112e8611343565b500390565b600181811c9082168061130157607f821691505b6020821081141561132257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561133c5761133c611343565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212203a9e382597d2a4d4c8127ff05332fb8fef91e4022474a0677230ac16c75d6da764736f6c6343000807003330333933204538363720383135422033373730203731373120363937342035384332204432354220433437322033453937000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00d2561ed3b58df01e166a303f19d1026c0da413374cb6ef456e9d9ec1357daae000000000000000000000000000000000000000000000000000000000000001f556b7261696e6520417070726563696174696f6e20546f6b656e2076312e300000000000000000000000000000000000000000000000000000000000000000035541540000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061016c5760003560e01c8063a317063d116100cd578063c622949b11610081578063dd62ed3e11610066578063dd62ed3e146102f2578063e8e247341461032b578063ec0b167b1461033e57600080fd5b8063c622949b146102e2578063ca4d9328146102ea57600080fd5b8063a9059cbb116100b2578063a9059cbb146102af578063ba3a8119146102c2578063c31fa083146102cf57600080fd5b8063a317063d14610294578063a457c2d71461029c57600080fd5b8063395093511161012457806370a082311161010957806370a082311461020e57806395d89b4114610237578063974595c11461023f57600080fd5b806339509351146101e65780634bcc5c52146101f957600080fd5b806318160ddd1161015557806318160ddd146101b257806323b872dd146101c4578063313ce567146101d757600080fd5b806306fdde0314610171578063095ea7b31461018f575b600080fd5b610179610346565b60405161018691906111f7565b60405180910390f35b6101a261019d36600461106f565b6103d8565b6040519015158152602001610186565b6002545b604051908152602001610186565b6101a26101d2366004611033565b6103f0565b60405160128152602001610186565b6101a26101f436600461106f565b610414565b61020c610207366004611099565b610453565b005b6101b661021c366004610fde565b6001600160a01b031660009081526020819052604090205490565b610179610571565b6101b661024d36600461106f565b6040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260009060540160405160208183030381529060405280519060200120905092915050565b610179610580565b6101a26102aa36600461106f565b61060e565b6101a26102bd36600461106f565b6106b8565b600b546101a29060ff1681565b61020c6102dd366004611162565b6106c6565b610179610799565b61020c6107a6565b6101b6610300366004611000565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101a2610339366004611099565b6108d7565b61020c6109d7565b606060038054610355906112ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610381906112ed565b80156103ce5780601f106103a3576101008083540402835291602001916103ce565b820191906000526020600020905b8154815290600101906020018083116103b157829003601f168201915b5050505050905090565b6000336103e6818585610a4f565b5060019392505050565b6000336103fe858285610ba7565b610409858585610c33565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906103e6908290869061044e90879061127d565b610a4f565b61045e8383836108d7565b6104af5760405162461bcd60e51b815260206004820152601160248201527f50726f6f6620697320696e76616c69642e00000000000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b03831660009081526005602052604090205460ff16156105185760405162461bcd60e51b815260206004820152601960248201527f546f6b656e20697320616c726561647920636c61696d65642e0000000000000060448201526064016104a6565b6001600160a01b0383166000908152600560205260408120805460ff19166001179055610547836103e86112b7565b9050806006600082825461055b919061127d565b9091555061056b90508482610e4a565b50505050565b606060048054610355906112ed565b600c805461058d906112ed565b80601f01602080910402602001604051908101604052809291908181526020018280546105b9906112ed565b80156106065780601f106105db57610100808354040283529160200191610606565b820191906000526020600020905b8154815290600101906020018083116105e957829003601f168201915b505050505081565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156106ab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016104a6565b6104098286868403610a4f565b6000336103e6818585610c33565b600b5460ff16156107195760405162461bcd60e51b815260206004820152601760248201527f495046532041646472657373206973206c6f636b65642e00000000000000000060448201526064016104a6565b6009546001600160a01b031633146107825760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60448201526531ba34b7b71760d11b60648201526084016104a6565b805161079590600c906020840190610f29565b5050565b600a805461058d906112ed565b6009546001600160a01b0316331461080f5760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60448201526531ba34b7b71760d11b60648201526084016104a6565b600060146006546108209190611295565b905060006007548261083291906112d6565b9050600081116108aa5760405162461bcd60e51b815260206004820152602960248201527f416c6c20636c61696d61626c6520746f6b656e732061726520616c726561647960448201527f20636c61696d65642e000000000000000000000000000000000000000000000060648201526084016104a6565b80600760008282546108bc919061127d565b9091555050600954610795906001600160a01b031682610e4a565b60008061092685856040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260009060540160405160208183030381529060405280519060200120905092915050565b905060005b83518110156109ca57600084828151811061094857610948611359565b6020026020010151905080831161098a5760408051602081018590529081018290526060016040516020818303038152906040528051906020012092506109b7565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806109c281611328565b91505061092b565b5060085414949350505050565b6009546001600160a01b03163314610a405760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60448201526531ba34b7b71760d11b60648201526084016104a6565b600b805460ff19166001179055565b6001600160a01b038316610aca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104a6565b6001600160a01b038216610b465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104a6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461056b5781811015610c265760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104a6565b61056b8484848403610a4f565b6001600160a01b038316610caf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104a6565b6001600160a01b038216610d2b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104a6565b6001600160a01b03831660009081526020819052604090205481811015610dba5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104a6565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610df190849061127d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e3d91815260200190565b60405180910390a361056b565b6001600160a01b038216610ea05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104a6565b8060026000828254610eb2919061127d565b90915550506001600160a01b03821660009081526020819052604081208054839290610edf90849061127d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054610f35906112ed565b90600052602060002090601f016020900481019282610f575760008555610f9d565b82601f10610f7057805160ff1916838001178555610f9d565b82800160010185558215610f9d579182015b82811115610f9d578251825591602001919060010190610f82565b50610fa9929150610fad565b5090565b5b80821115610fa95760008155600101610fae565b80356001600160a01b0381168114610fd957600080fd5b919050565b600060208284031215610ff057600080fd5b610ff982610fc2565b9392505050565b6000806040838503121561101357600080fd5b61101c83610fc2565b915061102a60208401610fc2565b90509250929050565b60008060006060848603121561104857600080fd5b61105184610fc2565b925061105f60208501610fc2565b9150604084013590509250925092565b6000806040838503121561108257600080fd5b61108b83610fc2565b946020939093013593505050565b6000806000606084860312156110ae57600080fd5b6110b784610fc2565b92506020808501359250604085013567ffffffffffffffff808211156110dc57600080fd5b818701915087601f8301126110f057600080fd5b8135818111156111025761110261136f565b8060051b915061111384830161124c565b8181528481019084860184860187018c101561112e57600080fd5b600095505b83861015611151578035835260019590950194918601918601611133565b508096505050505050509250925092565b6000602080838503121561117557600080fd5b823567ffffffffffffffff8082111561118d57600080fd5b818501915085601f8301126111a157600080fd5b8135818111156111b3576111b361136f565b6111c584601f19601f8401160161124c565b915080825286848285010111156111db57600080fd5b8084840185840137600090820190930192909252509392505050565b600060208083528351808285015260005b8181101561122457858101830151858201604001528201611208565b81811115611236576000604083870101525b50601f01601f1916929092016040019392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156112755761127561136f565b604052919050565b6000821982111561129057611290611343565b500190565b6000826112b257634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156112d1576112d1611343565b500290565b6000828210156112e8576112e8611343565b500390565b600181811c9082168061130157607f821691505b6020821081141561132257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561133c5761133c611343565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212203a9e382597d2a4d4c8127ff05332fb8fef91e4022474a0677230ac16c75d6da764736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00d2561ed3b58df01e166a303f19d1026c0da413374cb6ef456e9d9ec1357daae000000000000000000000000000000000000000000000000000000000000001f556b7261696e6520417070726563696174696f6e20546f6b656e2076312e300000000000000000000000000000000000000000000000000000000000000000035541540000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Ukraine Appreciation Token v1.0
Arg [1] : symbol_ (string): UAT
Arg [2] : root_ (bytes32): 0x0d2561ed3b58df01e166a303f19d1026c0da413374cb6ef456e9d9ec1357daae

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0d2561ed3b58df01e166a303f19d1026c0da413374cb6ef456e9d9ec1357daae
Arg [3] : 000000000000000000000000000000000000000000000000000000000000001f
Arg [4] : 556b7261696e6520417070726563696174696f6e20546f6b656e2076312e3000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 5541540000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

138:3274:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2135:98:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4536:233;;;;;;:::i;:::-;;:::i;:::-;;;3946:14:5;;3939:22;3921:41;;3909:2;3894:18;4536:233:2;3781:187:5;3223:106:2;3310:12;;3223:106;;;4119:25:5;;;4107:2;4092:18;3223:106:2;3973:177:5;5331:286:2;;;;;;:::i;:::-;;:::i;3072:91::-;;;3154:2;10158:36:5;;10146:2;10131:18;3072:91:2;10016:184:5;6012:264:2;;;;;;:::i;:::-;;:::i;2463:418:0:-;;;;;;:::i;:::-;;:::i;:::-;;3387:169:2;;;;;;:::i;:::-;-1:-1:-1;;;;;3531:18:2;3501:7;3531:18;;;;;;;;;;;;3387:169;2346:102;;;:::i;1363:247:0:-;;;;;;:::i;:::-;1570:32;;-1:-1:-1;;3372:2:5;3368:15;;;3364:88;1570:32:0;;;3352:101:5;3469:12;;;3462:28;;;1465:7:0;;3506:12:5;;1570:32:0;;;;;;;;;;;;1560:43;;;;;;1553:50;;1363:247;;;;;544:35;;;:::i;6763:491:2:-;;;;;;:::i;:::-;;:::i;3752:225::-;;;;;;:::i;:::-;;:::i;490:48:0:-;;;;;;;;;784:325;;;;;;:::i;:::-;;:::i;377:107::-;;;:::i;2887:523::-;;;:::i;4035:193:2:-;;;;;;:::i;:::-;-1:-1:-1;;;;;4194:18:2;;;4164:7;4194:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4035:193;1616:841:0;;;;;;:::i;:::-;;:::i;1115:242::-;;;:::i;2135:98:2:-;2189:13;2221:5;2214:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2135:98;:::o;4536:233::-;4651:4;719:10:1;4709:32:2;719:10:1;4725:7:2;4734:6;4709:8;:32::i;:::-;-1:-1:-1;4758:4:2;;4536:233;-1:-1:-1;;;4536:233:2:o;5331:286::-;5458:4;719:10:1;5514:38:2;5530:4;719:10:1;5545:6:2;5514:15;:38::i;:::-;5562:27;5572:4;5578:2;5582:6;5562:9;:27::i;:::-;-1:-1:-1;5606:4:2;;5331:286;-1:-1:-1;;;;5331:286:2:o;6012:264::-;719:10:1;6124:4:2;6207:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;6207:27:2;;;;;;;;;;6124:4;;719:10:1;6182:66:2;;719:10:1;;6207:27:2;;:40;;6237:10;;6207:40;:::i;:::-;6182:8;:66::i;2463:418:0:-;2594:32;2604:2;2608:10;2620:5;2594:9;:32::i;:::-;2586:62;;;;-1:-1:-1;;;2586:62:0;;6590:2:5;2586:62:0;;;6572:21:5;6629:2;6609:18;;;6602:30;6668:19;6648:18;;;6641:47;6705:18;;2586:62:0;;;;;;;;;-1:-1:-1;;;;;2667:11:0;;;;;;:7;:11;;;;;;;;2666:12;2658:50;;;;-1:-1:-1;;;2658:50:0;;7343:2:5;2658:50:0;;;7325:21:5;7382:2;7362:18;;;7355:30;7421:27;7401:18;;;7394:55;7466:18;;2658:50:0;7141:349:5;2658:50:0;-1:-1:-1;;;;;2718:11:0;;;;;;:7;:11;;;;;:18;;-1:-1:-1;;2718:18:0;2732:4;2718:18;;;2770:17;:10;2783:4;2770:17;:::i;:::-;2746:41;;2821:13;2797:20;;:37;;;;;;;:::i;:::-;;;;-1:-1:-1;2844:30:0;;-1:-1:-1;2856:2:0;2860:13;2844:11;:30::i;:::-;2576:305;2463:418;;;:::o;2346:102:2:-;2402:13;2434:7;2427:14;;;;;:::i;544:35:0:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6763:491:2:-;719:10:1;6880:4:2;6965:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;6965:27:2;;;;;;;;;;6880:4;;719:10:1;7023:35:2;;;;7002:119;;;;-1:-1:-1;;;7002:119:2;;9270:2:5;7002:119:2;;;9252:21:5;9309:2;9289:18;;;9282:30;9348:34;9328:18;;;9321:62;9419:7;9399:18;;;9392:35;9444:19;;7002:119:2;9068:401:5;7002:119:2;7155:60;7164:5;7171:7;7199:15;7180:16;:34;7155:8;:60::i;3752:225::-;3863:4;719:10:1;3921:28:2;719:10:1;3938:2:2;3942:6;3921:9;:28::i;784:325:0:-;865:28;;;;864:29;856:65;;;;-1:-1:-1;;;856:65:0;;8107:2:5;856:65:0;;;8089:21:5;8146:2;8126:18;;;8119:30;8185:25;8165:18;;;8158:53;8228:18;;856:65:0;7905:347:5;856:65:0;952:16;;-1:-1:-1;;;;;952:16:0;972:10;952:30;931:115;;;;-1:-1:-1;;;931:115:0;;5422:2:5;931:115:0;;;5404:21:5;5461:2;5441:18;;;5434:30;5500:34;5480:18;;;5473:62;-1:-1:-1;;;5551:18:5;;;5544:36;5597:19;;931:115:0;5220:402:5;931:115:0;1056:46;;;;:21;;:46;;;;;:::i;:::-;;784:325;:::o;377:107::-;;;;;;;:::i;2887:523::-;2952:16;;-1:-1:-1;;;;;2952:16:0;2972:10;2952:30;2931:115;;;;-1:-1:-1;;;2931:115:0;;5422:2:5;2931:115:0;;;5404:21:5;5461:2;5441:18;;;5434:30;5500:34;5480:18;;;5473:62;-1:-1:-1;;;5551:18:5;;;5544:36;5597:19;;2931:115:0;5220:402:5;2931:115:0;3056:20;3102:2;3079:20;;:25;;;;:::i;:::-;3056:48;;3114:26;3158:17;;3143:12;:32;;;;:::i;:::-;3114:61;;3227:1;3206:18;:22;3185:110;;;;-1:-1:-1;;;3185:110:0;;7697:2:5;3185:110:0;;;7679:21:5;7736:2;7716:18;;;7709:30;7775:34;7755:18;;;7748:62;7846:11;7826:18;;;7819:39;7875:19;;3185:110:0;7495:405:5;3185:110:0;3326:18;3305:17;;:39;;;;;;;:::i;:::-;;;;-1:-1:-1;;3366:16:0;;3354:49;;-1:-1:-1;;;;;3366:16:0;3384:18;3354:11;:49::i;1616:841::-;1742:4;1758:20;1781:31;1797:2;1801:10;1570:32;;-1:-1:-1;;3372:2:5;3368:15;;;3364:88;1570:32:0;;;3352:101:5;3469:12;;;3462:28;;;1465:7:0;;3506:12:5;;1570:32:0;;;;;;;;;;;;1560:43;;;;;;1553:50;;1363:247;;;;;1781:31;1758:54;;1827:9;1822:591;1846:5;:12;1842:1;:16;1822:591;;;1879:20;1902:5;1908:1;1902:8;;;;;;;;:::i;:::-;;;;;;;1879:31;;1945:12;1929;:28;1925:478;;2101:44;;;;;;3686:19:5;;;3721:12;;;3714:28;;;3758:12;;2101:44:0;;;;;;;;;;;;2070:93;;;;;;2055:108;;1925:478;;;2326:44;;;;;;3686:19:5;;;3721:12;;;3714:28;;;3758:12;;2326:44:0;;;;;;;;;;;;2295:93;;;;;;2280:108;;1925:478;-1:-1:-1;1860:3:0;;;;:::i;:::-;;;;1822:591;;;-1:-1:-1;2445:5:0;;2429:21;;1616:841;-1:-1:-1;;;;1616:841:0:o;1115:242::-;1211:16;;-1:-1:-1;;;;;1211:16:0;1231:10;1211:30;1190:115;;;;-1:-1:-1;;;1190:115:0;;5422:2:5;1190:115:0;;;5404:21:5;5461:2;5441:18;;;5434:30;5500:34;5480:18;;;5473:62;-1:-1:-1;;;5551:18:5;;;5544:36;5597:19;;1190:115:0;5220:402:5;1190:115:0;1315:28;:35;;-1:-1:-1;;1315:35:0;1346:4;1315:35;;;1115:242::o;10386:370:2:-;-1:-1:-1;;;;;10517:19:2;;10509:68;;;;-1:-1:-1;;;10509:68:2;;8865:2:5;10509:68:2;;;8847:21:5;8904:2;8884:18;;;8877:30;8943:34;8923:18;;;8916:62;9014:6;8994:18;;;8987:34;9038:19;;10509:68:2;8663:400:5;10509:68:2;-1:-1:-1;;;;;10595:21:2;;10587:68;;;;-1:-1:-1;;;10587:68:2;;5829:2:5;10587:68:2;;;5811:21:5;5868:2;5848:18;;;5841:30;5907:34;5887:18;;;5880:62;5978:4;5958:18;;;5951:32;6000:19;;10587:68:2;5627:398:5;10587:68:2;-1:-1:-1;;;;;10666:18:2;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10717:32;;4119:25:5;;;10717:32:2;;4092:18:5;10717:32:2;;;;;;;10386:370;;;:::o;11033:487::-;-1:-1:-1;;;;;4194:18:2;;;11163:24;4194:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;11229:37:2;;11225:289;;11327:6;11307:16;:26;;11282:114;;;;-1:-1:-1;;;11282:114:2;;6232:2:5;11282:114:2;;;6214:21:5;6271:2;6251:18;;;6244:30;6310:31;6290:18;;;6283:59;6359:18;;11282:114:2;6030:353:5;11282:114:2;11438:51;11447:5;11454:7;11482:6;11463:16;:25;11438:8;:51::i;7717:685::-;-1:-1:-1;;;;;7843:18:2;;7835:68;;;;-1:-1:-1;;;7835:68:2;;8459:2:5;7835:68:2;;;8441:21:5;8498:2;8478:18;;;8471:30;8537:34;8517:18;;;8510:62;8608:7;8588:18;;;8581:35;8633:19;;7835:68:2;8257:401:5;7835:68:2;-1:-1:-1;;;;;7921:16:2;;7913:64;;;;-1:-1:-1;;;7913:64:2;;5018:2:5;7913:64:2;;;5000:21:5;5057:2;5037:18;;;5030:30;5096:34;5076:18;;;5069:62;5167:5;5147:18;;;5140:33;5190:19;;7913:64:2;4816:399:5;7913:64:2;-1:-1:-1;;;;;8059:15:2;;8037:19;8059:15;;;;;;;;;;;8105:21;;;;8084:106;;;;-1:-1:-1;;;8084:106:2;;6936:2:5;8084:106:2;;;6918:21:5;6975:2;6955:18;;;6948:30;7014:34;6994:18;;;6987:62;7085:8;7065:18;;;7058:36;7111:19;;8084:106:2;6734:402:5;8084:106:2;-1:-1:-1;;;;;8224:15:2;;;:9;:15;;;;;;;;;;;8242:20;;;8224:38;;8282:13;;;;;;;;:23;;8256:6;;8224:9;8282:23;;8256:6;;8282:23;:::i;:::-;;;;;;;;8336:2;-1:-1:-1;;;;;8321:26:2;8330:4;-1:-1:-1;;;;;8321:26:2;;8340:6;8321:26;;;;4119:25:5;;4107:2;4092:18;;3973:177;8321:26:2;;;;;;;;8358:37;12104:121;8678:389;-1:-1:-1;;;;;8761:21:2;;8753:65;;;;-1:-1:-1;;;8753:65:2;;9676:2:5;8753:65:2;;;9658:21:5;9715:2;9695:18;;;9688:30;9754:33;9734:18;;;9727:61;9805:18;;8753:65:2;9474:355:5;8753:65:2;8905:6;8889:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8921:18:2;;:9;:18;;;;;;;;;;:28;;8943:6;;8921:9;:28;;8943:6;;8921:28;:::i;:::-;;;;-1:-1:-1;;8964:37:2;;4119:25:5;;;-1:-1:-1;;;;;8964:37:2;;;8981:1;;8964:37;;4107:2:5;4092:18;8964:37:2;;;;;;;1056:46:0;784:325;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:196:5;82:20;;-1:-1:-1;;;;;131:54:5;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:5:o;406:260::-;474:6;482;535:2;523:9;514:7;510:23;506:32;503:52;;;551:1;548;541:12;503:52;574:29;593:9;574:29;:::i;:::-;564:39;;622:38;656:2;645:9;641:18;622:38;:::i;:::-;612:48;;406:260;;;;;:::o;671:328::-;748:6;756;764;817:2;805:9;796:7;792:23;788:32;785:52;;;833:1;830;823:12;785:52;856:29;875:9;856:29;:::i;:::-;846:39;;904:38;938:2;927:9;923:18;904:38;:::i;:::-;894:48;;989:2;978:9;974:18;961:32;951:42;;671:328;;;;;:::o;1004:254::-;1072:6;1080;1133:2;1121:9;1112:7;1108:23;1104:32;1101:52;;;1149:1;1146;1139:12;1101:52;1172:29;1191:9;1172:29;:::i;:::-;1162:39;1248:2;1233:18;;;;1220:32;;-1:-1:-1;;;1004:254:5:o;1263:1099::-;1365:6;1373;1381;1434:2;1422:9;1413:7;1409:23;1405:32;1402:52;;;1450:1;1447;1440:12;1402:52;1473:29;1492:9;1473:29;:::i;:::-;1463:39;;1521:2;1570;1559:9;1555:18;1542:32;1532:42;;1625:2;1614:9;1610:18;1597:32;1648:18;1689:2;1681:6;1678:14;1675:34;;;1705:1;1702;1695:12;1675:34;1743:6;1732:9;1728:22;1718:32;;1788:7;1781:4;1777:2;1773:13;1769:27;1759:55;;1810:1;1807;1800:12;1759:55;1846:2;1833:16;1868:2;1864;1861:10;1858:36;;;1874:18;;:::i;:::-;1920:2;1917:1;1913:10;1903:20;;1943:28;1967:2;1963;1959:11;1943:28;:::i;:::-;2005:15;;;2036:12;;;;2068:11;;;2098;;;2094:20;;2091:33;-1:-1:-1;2088:53:5;;;2137:1;2134;2127:12;2088:53;2159:1;2150:10;;2169:163;2183:2;2180:1;2177:9;2169:163;;;2240:17;;2228:30;;2201:1;2194:9;;;;;2278:12;;;;2310;;2169:163;;;2173:3;2351:5;2341:15;;;;;;;;1263:1099;;;;;:::o;2367:823::-;2436:6;2467:2;2510;2498:9;2489:7;2485:23;2481:32;2478:52;;;2526:1;2523;2516:12;2478:52;2566:9;2553:23;2595:18;2636:2;2628:6;2625:14;2622:34;;;2652:1;2649;2642:12;2622:34;2690:6;2679:9;2675:22;2665:32;;2735:7;2728:4;2724:2;2720:13;2716:27;2706:55;;2757:1;2754;2747:12;2706:55;2793:2;2780:16;2815:2;2811;2808:10;2805:36;;;2821:18;;:::i;:::-;2863:112;2971:2;-1:-1:-1;;2895:4:5;2891:2;2887:13;2883:86;2879:95;2863:112;:::i;:::-;2850:125;;2998:2;2991:5;2984:17;3038:7;3033:2;3028;3024;3020:11;3016:20;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;3114:2;3109;3105;3101:11;3096:2;3089:5;3085:14;3072:45;3158:1;3137:14;;;3133:23;;;3126:34;;;;-1:-1:-1;3141:5:5;2367:823;-1:-1:-1;;;2367:823:5:o;4155:656::-;4267:4;4296:2;4325;4314:9;4307:21;4357:6;4351:13;4400:6;4395:2;4384:9;4380:18;4373:34;4425:1;4435:140;4449:6;4446:1;4443:13;4435:140;;;4544:14;;;4540:23;;4534:30;4510:17;;;4529:2;4506:26;4499:66;4464:10;;4435:140;;;4593:6;4590:1;4587:13;4584:91;;;4663:1;4658:2;4649:6;4638:9;4634:22;4630:31;4623:42;4584:91;-1:-1:-1;4727:2:5;4715:15;-1:-1:-1;;4711:88:5;4696:104;;;;4802:2;4692:113;;4155:656;-1:-1:-1;;;4155:656:5:o;10205:334::-;10276:2;10270:9;10332:2;10322:13;;-1:-1:-1;;10318:86:5;10306:99;;10435:18;10420:34;;10456:22;;;10417:62;10414:88;;;10482:18;;:::i;:::-;10518:2;10511:22;10205:334;;-1:-1:-1;10205:334:5:o;10544:128::-;10584:3;10615:1;10611:6;10608:1;10605:13;10602:39;;;10621:18;;:::i;:::-;-1:-1:-1;10657:9:5;;10544:128::o;10677:274::-;10717:1;10743;10733:189;;-1:-1:-1;;;10775:1:5;10768:88;10879:4;10876:1;10869:15;10907:4;10904:1;10897:15;10733:189;-1:-1:-1;10936:9:5;;10677:274::o;10956:228::-;10996:7;11122:1;-1:-1:-1;;11050:74:5;11047:1;11044:81;11039:1;11032:9;11025:17;11021:105;11018:131;;;11129:18;;:::i;:::-;-1:-1:-1;11169:9:5;;10956:228::o;11189:125::-;11229:4;11257:1;11254;11251:8;11248:34;;;11262:18;;:::i;:::-;-1:-1:-1;11299:9:5;;11189:125::o;11319:437::-;11398:1;11394:12;;;;11441;;;11462:61;;11516:4;11508:6;11504:17;11494:27;;11462:61;11569:2;11561:6;11558:14;11538:18;11535:38;11532:218;;;-1:-1:-1;;;11603:1:5;11596:88;11707:4;11704:1;11697:15;11735:4;11732:1;11725:15;11532:218;;11319:437;;;:::o;11761:195::-;11800:3;-1:-1:-1;;11824:5:5;11821:77;11818:103;;;11901:18;;:::i;:::-;-1:-1:-1;11948:1:5;11937:13;;11761:195::o;11961:184::-;-1:-1:-1;;;12010:1:5;12003:88;12110:4;12107:1;12100:15;12134:4;12131:1;12124:15;12150:184;-1:-1:-1;;;12199:1:5;12192:88;12299:4;12296:1;12289:15;12323:4;12320:1;12313:15;12339:184;-1:-1:-1;;;12388:1:5;12381:88;12488:4;12485:1;12478:15;12512:4;12509:1;12502:15

Swarm Source

ipfs://3a9e382597d2a4d4c8127ff05332fb8fef91e4022474a0677230ac16c75d6da7
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.