Contract 0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb31 8

Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x2ab823bf932213ce332dc77063da9ef4007cb62cdb16ef23fc2b857e963acde2Approve406696242023-09-30 4:13:304 days 8 hrs ago0x2723ac532f1932ee8a182c81f9143d690dc6cb45 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.001395250049 57.401162199
0x3ef7d45eb3973e783584816d2a5d90dda92c2f773ad6e7231ad5be7306ef935bApprove403929222023-09-22 14:09:0511 days 22 hrs ago0x9cc5d718730e2316c306451a1eaf16257c43aa56 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.000059887586 2.463800001
0x974a16aef08076a32692c31cffc31490f553a5ad11b577cac6f9d266e773a5b6Approve402843732023-09-19 15:25:1214 days 21 hrs ago0x97b5779116eacdbe0870f756ee2f5590586bf26e IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.00004078314 1.677835228
0x96f06b6fc173a234d6200ad80a6cec24d0e65dd6a428eaca24de738f6dd82e52Approve402696412023-09-19 6:22:3915 days 6 hrs ago0x6308ee612ac0ce68e00dbba12f946685bfcee3fc IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000016
0x60dde0f4a4ff0f2b34632de541eebd020829e6b182402c35c4a8bf79a41cfaacApprove396468892023-09-01 19:50:5732 days 16 hrs ago0x6d80b274a8531524c3660ad33c52437f1caad2c6 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.000059226453 2.436600719
0x7ae3c6cecce7e2e46c4ac489e148aaa3051159aa2f8b3bb07b2788929deda355Approve396034572023-08-31 15:21:4433 days 21 hrs ago0xa71d8a23bed8ff46d265bab7693f22f991ee2be1 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.000058472919 2.405599997
0x9eb4916d6b6a5892eed6246aff8baefbe6f413992cb58caa43d6d831174273bfApprove395283312023-08-29 14:46:3135 days 21 hrs ago0x40f46b402d971a6147b6b77c47cee6ed386fb6d7 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000019
0xfeda8ce7378a3be4c0846ae6fa6bae9e502e27b352db99a5ed253734bfd05fb0Approve394957652023-08-28 16:36:3736 days 20 hrs ago0x40f46b402d971a6147b6b77c47cee6ed386fb6d7 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.00005163536 2.1243
0x228730f50200da38b57115461941d4c029253ac0a479afaff90518140cdcb957Approve392860962023-08-22 19:58:5042 days 16 hrs ago0x495c63d7c9da50347aad0c4aa1f7294d06e56692 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000694365 1.500000015
0x55fac93709edc1dce929941af84af2de17792ac0054af96c3c51375696b3866aApprove392015682023-08-20 14:07:1744 days 22 hrs ago0xd5a825ab88ec02e8be32fea39bcd89918f955fd2 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000017
0x233d5ca1e43948366201e13be4944356bc29761b1f7e52bfcde7cc2daa5dd308Approve390100092023-08-15 4:57:1650 days 7 hrs ago0x83acbea6fe71352b0acf87108bc4231200203392 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000016
0x490dce5189b71c2f276c2875756b053abd53f6e7c93fd55ead9e1bc4e68b56a7Approve389601792023-08-13 18:48:1351 days 17 hrs ago0xea4003d46dff51821213e6e85a47ae11a861dbba IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000016
0x861a4b872de351e1ffd3fda6d4b522c2ee692e9ca33658e151848b90a7fa86e2Approve387641222023-08-08 6:53:4557 days 5 hrs ago0x65c0a5efbaf3e08a53a50e027aefb52a328344c6 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000019
0xb27eb2df1d3f1abdb490009e7aef6fc57a5064882ee13049ae7118e33d4e3e48Approve386420292023-08-04 20:28:5160 days 16 hrs ago0xdadb4350bd0f64ec85a53247be3a4823c8e9afa2 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000027
0xa97bc4b21858bfa97b0a7fb8c9f36edd1dd571929925c3322627621b373cddb6Approve384957432023-07-31 17:32:4764 days 19 hrs ago0x54ff471928afa616a7150c3c7dbbd37ec9d10c1b IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000016
0xdae769af35e13ec19cad9d1b55bd58a145a955fa552f4074a1015fff8eab786dApprove384762882023-07-31 4:56:2265 days 7 hrs ago0x4a0f4801eddb825d712f33d6e8121739ab646b5f IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.000037724464 1.552
0x3ad1fb3963e104eb2f99d70d0c1dc395bfe7de188f073c04689f526f5cf5e3c7Approve381785992023-07-21 20:33:0774 days 16 hrs ago0xed257ec3492faa67e9d3f9a0aff8245c3ce8b147 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000016
0x2f4742f44424437a03c27f62acf9dd21d3523b4705238469a67ff0bf848fa6ffApprove381785932023-07-21 20:32:5574 days 16 hrs ago0xed257ec3492faa67e9d3f9a0aff8245c3ce8b147 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000016
0xb5e2c0e91bb09531116ae9f2fb6f5f1133fec4161a9ff4c21827d04756f240e2Approve379980712023-07-16 11:00:3780 days 1 hr ago0xb0de21eceec9b1eedceda4d1467e79f7a7c8aebd IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000016
0x7ed96e0c7821014b1761992cb030b068f9efc922aa4182f6fc83febf44e403b2Approve378360712023-07-12 4:23:4584 days 8 hrs ago0x8854da8cda29b077e7d14431936fb4fe9ed3b870 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000016
0x33600d3c5a4440d83098718bca89208c99a0f26a3a392fc42d2e9a62f2262f4dApprove376577432023-07-07 10:14:5389 days 2 hrs ago0x891d7dd2d24eda3d25a25ee0b8271866e274b236 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000016
0xf6ce5acbe3217c4dc04283764f9105e1bb242f74387f5b37debf3d91dc798adeApprove373454282023-06-27 21:57:0298 days 14 hrs ago0x8b90d1c9b80f138e83ca4d73a5499291bc0bc30c IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.000058944475 2.425
0x43727f9a6c66b967c239dc724fdbae9a03bacfa468d84992ca47ff56dc634f4cApprove373454272023-06-27 21:56:5898 days 14 hrs ago0x8b90d1c9b80f138e83ca4d73a5499291bc0bc30c IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.0000364605 1.500000016
0x7b17c9510a09fc6a3cbd9293b1dd9f7ea833fa6e7904ddd53db0408febaea426Approve373282942023-06-27 9:43:4899 days 2 hrs ago0xb290a5ce8b3837393d9a6fd7f06816b1f59853c3 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.00004715558 1.940000004
0xcc89574ff539c1562cf67d8a7097baad8f59e618f5c201714990fb9925056eecApprove372836892023-06-26 5:10:28100 days 7 hrs ago0x51fe92073ccd8aa707296c6fc07815abe7b7e4a1 IN  0xb4f2db5fefa67c4a57e1e652b63d4e2762e8fb310 MATIC0.000055117016 2.267536782
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Similar Match Source Code
This contract matches the deployed ByteCode of the Source Code for Contract 0x2851443Ea0B302626C1d79d0f90272a5fa5CC97B
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
TestnetERC20

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
Yes with 800 runs

Other Settings:
istanbul EvmVersion, Apache-2.0 license
File 1 of 7 : TestnetERC20.sol
// SPDX-License-Identifier: Apache-2.0
pragma solidity 0.8.2;

import "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol"; //for test

contract TestnetERC20 is ERC20PresetFixedSupply {
    address public admin;

    modifier onlyAdmin() {
        require(msg.sender == admin, "OA");
        _;
    }

    constructor(
        string memory __name,
        string memory __sym,
        uint256 __totalSupply,
        address to
    ) ERC20PresetFixedSupply(__name, __sym, __totalSupply, to) {
        admin = msg.sender;
    }

    function adminTransfer(
        address from,
        address to,
        uint256 amount
    ) external onlyAdmin {
        _transfer(from, to, amount);
    }

    function changeAdmin(address newAdmin) external onlyAdmin {
        admin = newAdmin;
    }
}

File 2 of 7 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/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, 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;
        }
        _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 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 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 3 of 7 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

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

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

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

pragma solidity ^0.8.0;

import "../ERC20.sol";
import "../../../utils/Context.sol";

/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }
}

File 5 of 7 : 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);
}

File 6 of 7 : ERC20PresetFixedSupply.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/presets/ERC20PresetFixedSupply.sol)
pragma solidity ^0.8.0;

import "../extensions/ERC20Burnable.sol";

/**
 * @dev {ERC20} token, including:
 *
 *  - Preminted initial supply
 *  - Ability for holders to burn (destroy) their tokens
 *  - No access control mechanism (for minting/pausing) and hence no governance
 *
 * This contract uses {ERC20Burnable} to include burn capabilities - head to
 * its documentation for details.
 *
 * _Available since v3.4._
 *
 * _Deprecated in favor of https://wizard.openzeppelin.com/[Contracts Wizard]._
 */
contract ERC20PresetFixedSupply is ERC20Burnable {
    /**
     * @dev Mints `initialSupply` amount of token and transfers them to `owner`.
     *
     * See {ERC20-constructor}.
     */
    constructor(
        string memory name,
        string memory symbol,
        uint256 initialSupply,
        address owner
    ) ERC20(name, symbol) {
        _mint(owner, initialSupply);
    }
}

File 7 of 7 : 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;
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 800
  },
  "evmVersion": "istanbul",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"string","name":"__name","type":"string"},{"internalType":"string","name":"__sym","type":"string"},{"internalType":"uint256","name":"__totalSupply","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"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":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"adminTransfer","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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"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"}]

60806040523480156200001157600080fd5b506040516200104e3803806200104e8339810160408190526200003491620002df565b83838383838381600390805190602001906200005292919062000186565b5080516200006890600490602084019062000186565b5050506200007d81836200009e60201b60201c565b5050600580546001600160a01b0319163317905550620003e8945050505050565b6001600160a01b038216620000f95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200010d919062000370565b90915550506001600160a01b038216600090815260208190526040812080548392906200013c90849062000370565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001949062000395565b90600052602060002090601f016020900481019282620001b8576000855562000203565b82601f10620001d357805160ff191683800117855562000203565b8280016001018555821562000203579182015b8281111562000203578251825591602001919060010190620001e6565b506200021192915062000215565b5090565b5b8082111562000211576000815560010162000216565b600082601f8301126200023d578081fd5b81516001600160401b03808211156200025a576200025a620003d2565b604051601f8301601f19908116603f01168101908282118183101715620002855762000285620003d2565b81604052838152602092508683858801011115620002a1578485fd5b8491505b83821015620002c45785820183015181830184015290820190620002a5565b83821115620002d557848385830101525b9695505050505050565b60008060008060808587031215620002f5578384fd5b84516001600160401b03808211156200030c578586fd5b6200031a888389016200022c565b9550602087015191508082111562000330578485fd5b506200033f878288016200022c565b60408701516060880151919550935090506001600160a01b038116811462000365578182fd5b939692955090935050565b600082198211156200039057634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680620003aa57607f821691505b60208210811415620003cc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610c5680620003f86000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806379cc679011610097578063a9059cbb11610066578063a9059cbb146101f6578063da72c1e814610209578063dd62ed3e1461021c578063f851a4401461025557610100565b806379cc6790146101b55780638f283970146101c857806395d89b41146101db578063a457c2d7146101e357610100565b8063313ce567116100d3578063313ce5671461016b578063395093511461017a57806342966c681461018d57806370a08231146101a257610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461014657806323b872dd14610158575b600080fd5b61010d610280565b60405161011a9190610b4d565b60405180910390f35b610136610131366004610b0c565b610312565b604051901515815260200161011a565b6002545b60405190815260200161011a565b610136610166366004610ad1565b61032a565b6040516012815260200161011a565b610136610188366004610b0c565b61034e565b6101a061019b366004610b35565b61038d565b005b61014a6101b0366004610a7e565b61039a565b6101a06101c3366004610b0c565b6103b9565b6101a06101d6366004610a7e565b6103d2565b61010d610450565b6101366101f1366004610b0c565b61045f565b610136610204366004610b0c565b610509565b6101a0610217366004610ad1565b610517565b61014a61022a366004610a9f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600554610268906001600160a01b031681565b6040516001600160a01b03909116815260200161011a565b60606003805461028f90610bcf565b80601f01602080910402602001604051908101604052809291908181526020018280546102bb90610bcf565b80156103085780601f106102dd57610100808354040283529160200191610308565b820191906000526020600020905b8154815290600101906020018083116102eb57829003601f168201915b5050505050905090565b600033610320818585610566565b5060019392505050565b60003361033885828561068a565b61034385858561071c565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906103209082908690610388908790610ba0565b610566565b6103973382610919565b50565b6001600160a01b0381166000908152602081905260409020545b919050565b6103c482338361068a565b6103ce8282610919565b5050565b6005546001600160a01b031633146104165760405162461bcd60e51b81526020600482015260026024820152614f4160f01b60448201526064015b60405180910390fd5b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60606004805461028f90610bcf565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156104fc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161040d565b6103438286868403610566565b60003361032081858561071c565b6005546001600160a01b031633146105565760405162461bcd60e51b81526020600482015260026024820152614f4160f01b604482015260640161040d565b61056183838361071c565b505050565b6001600160a01b0383166105c85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161040d565b6001600160a01b0382166106295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161040d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461071657818110156107095760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161040d565b6107168484848403610566565b50505050565b6001600160a01b0383166107985760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161040d565b6001600160a01b0382166107fa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161040d565b6001600160a01b038316600090815260208190526040902054818110156108895760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161040d565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906108c0908490610ba0565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161090c91815260200190565b60405180910390a3610716565b6001600160a01b0382166109795760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161040d565b6001600160a01b038216600090815260208190526040902054818110156109ed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161040d565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610a1c908490610bb8565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610561565b80356001600160a01b03811681146103b457600080fd5b600060208284031215610a8f578081fd5b610a9882610a67565b9392505050565b60008060408385031215610ab1578081fd5b610aba83610a67565b9150610ac860208401610a67565b90509250929050565b600080600060608486031215610ae5578081fd5b610aee84610a67565b9250610afc60208501610a67565b9150604084013590509250925092565b60008060408385031215610b1e578182fd5b610b2783610a67565b946020939093013593505050565b600060208284031215610b46578081fd5b5035919050565b6000602080835283518082850152825b81811015610b7957858101830151858201604001528201610b5d565b81811115610b8a5783604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610bb357610bb3610c0a565b500190565b600082821015610bca57610bca610c0a565b500390565b600281046001821680610be357607f821691505b60208210811415610c0457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220368fe0d0cc28f214ff1389512f6f5d284a3cd2c85ce4f1d7f1c765199d8b55fd64736f6c63430008020033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000005ea409399e47f0df9fac47488a4010bfd04718a4000000000000000000000000000000000000000000000000000000000000001e57726170706564204d61746963202d20566972747553776170205465737400000000000000000000000000000000000000000000000000000000000000000006574d415449430000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

161:681:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1894:14:7;;1887:22;1869:41;;1857:2;1842:18;4433:197:1;1824:92:7;3244:106:1;3331:12;;3244:106;;;6599:25:7;;;6587:2;6572:18;3244:106:1;6554:76:7;5192:286:1;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;6777:36:7;;6765:2;6750:18;3093:91:1;6732:87:7;5873:234:1;;;;;;:::i;:::-;;:::i;578:89:3:-;;;;;;:::i;:::-;;:::i;:::-;;3408:125:1;;;;;;:::i;:::-;;:::i;973:161:3:-;;;;;;:::i;:::-;;:::i;746:93:0:-;;;;;;:::i;:::-;;:::i;2367:102:1:-;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;574:164:0:-;;;;;;:::i;:::-;;:::i;3976:149:1:-;;;;;;:::i;:::-;-1:-1:-1;;;;;4091:18:1;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;216:20:0;;;;;-1:-1:-1;;;;;216:20:0;;;;;;-1:-1:-1;;;;;1662:55:7;;;1644:74;;1632:2;1617:18;216:20:0;1599:125:7;2156:98:1;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:6;4570:32:1;719:10:6;4586:7:1;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:1;;4433:197;-1:-1:-1;;;4433:197:1:o;5192:286::-;5319:4;719:10:6;5375:38:1;5391:4;719:10:6;5406:6:1;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:1;;5192:286;-1:-1:-1;;;;5192:286:1:o;5873:234::-;719:10:6;5961:4:1;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:1;;;;;;;;;;5961:4;;719:10:6;6015:64:1;;719:10:6;;4091:27:1;;6040:38;;6068:10;;6040:38;:::i;:::-;6015:8;:64::i;578:89:3:-;633:27;719:10:6;653:6:3;633:5;:27::i;:::-;578:89;:::o;3408:125:1:-;-1:-1:-1;;;;;3508:18:1;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;973:161:3:-;1049:46;1065:7;719:10:6;1088:6:3;1049:15;:46::i;:::-;1105:22;1111:7;1120:6;1105:5;:22::i;:::-;973:161;;:::o;746:93:0:-;299:5;;-1:-1:-1;;;;;299:5:0;285:10;:19;277:34;;;;-1:-1:-1;;;277:34:0;;5919:2:7;277:34:0;;;5901:21:7;5958:1;5938:18;;;5931:29;-1:-1:-1;;;5976:18:7;;;5969:32;6018:18;;277:34:0;;;;;;;;;815:5:::1;:16:::0;;;::::1;-1:-1:-1::0;;;;;815:16:0;;;::::1;::::0;;;::::1;::::0;;746:93::o;2367:102:1:-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;719:10:6;6687:4:1;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:1;;;;;;;;;;6687:4;;719:10:6;6811:35:1;;;;6803:85;;;;-1:-1:-1;;;6803:85:1;;6249:2:7;6803:85:1;;;6231:21:7;6288:2;6268:18;;;6261:30;6327:34;6307:18;;;6300:62;6398:7;6378:18;;;6371:35;6423:19;;6803:85:1;6221:227:7;6803:85:1;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:6;3862:28:1;719:10:6;3879:2:1;3883:6;3862:9;:28::i;574:164:0:-;299:5;;-1:-1:-1;;;;;299:5:0;285:10;:19;277:34;;;;-1:-1:-1;;;277:34:0;;5919:2:7;277:34:0;;;5901:21:7;5958:1;5938:18;;;5931:29;-1:-1:-1;;;5976:18:7;;;5969:32;6018:18;;277:34:0;5891:151:7;277:34:0;703:27:::1;713:4;719:2;723:6;703:9;:27::i;:::-;574:164:::0;;;:::o;10110:370:1:-;-1:-1:-1;;;;;10241:19:1;;10233:68;;;;-1:-1:-1;;;10233:68:1;;5514:2:7;10233:68:1;;;5496:21:7;5553:2;5533:18;;;5526:30;5592:34;5572:18;;;5565:62;-1:-1:-1;;;5643:18:7;;;5636:34;5687:19;;10233:68:1;5486:226:7;10233:68:1;-1:-1:-1;;;;;10319:21:1;;10311:68;;;;-1:-1:-1;;;10311:68:1;;3538:2:7;10311:68:1;;;3520:21:7;3577:2;3557:18;;;3550:30;3616:34;3596:18;;;3589:62;-1:-1:-1;;;3667:18:7;;;3660:32;3709:19;;10311:68:1;3510:224:7;10311:68:1;-1:-1:-1;;;;;10390:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;6599:25:7;;;10441:32:1;;6572:18:7;10441:32:1;;;;;;;10110:370;;;:::o;10761:441::-;-1:-1:-1;;;;;4091:18:1;;;10891:24;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10957:37:1;;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:1;;3941:2:7;11010:68:1;;;3923:21:7;3980:2;3960:18;;;3953:30;4019:31;3999:18;;;3992:59;4068:18;;11010:68:1;3913:179:7;11010:68:1;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:1;;7593:68;;;;-1:-1:-1;;;7593:68:1;;5108:2:7;7593:68:1;;;5090:21:7;5147:2;5127:18;;;5120:30;5186:34;5166:18;;;5159:62;5257:7;5237:18;;;5230:35;5282:19;;7593:68:1;5080:227:7;7593:68:1;-1:-1:-1;;;;;7679:16:1;;7671:64;;;;-1:-1:-1;;;7671:64:1;;2731:2:7;7671:64:1;;;2713:21:7;2770:2;2750:18;;;2743:30;2809:34;2789:18;;;2782:62;-1:-1:-1;;;2860:18:7;;;2853:33;2903:19;;7671:64:1;2703:225:7;7671:64:1;-1:-1:-1;;;;;7817:15:1;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:1;;4299:2:7;7842:72:1;;;4281:21:7;4338:2;4318:18;;;4311:30;4377:34;4357:18;;;4350:62;4448:8;4428:18;;;4421:36;4474:19;;7842:72:1;4271:228:7;7842:72:1;-1:-1:-1;;;;;7948:15:1;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:1;8054:4;-1:-1:-1;;;;;8045:26:1;;8064:6;8045:26;;;;6599:25:7;;6587:2;6572:18;;6554:76;8045:26:1;;;;;;;;8082:37;574:164:0;9111:576:1;-1:-1:-1;;;;;9194:21:1;;9186:67;;;;-1:-1:-1;;;9186:67:1;;4706:2:7;9186:67:1;;;4688:21:7;4745:2;4725:18;;;4718:30;4784:34;4764:18;;;4757:62;-1:-1:-1;;;4835:18:7;;;4828:31;4876:19;;9186:67:1;4678:223:7;9186:67:1;-1:-1:-1;;;;;9349:18:1;;9324:22;9349:18;;;;;;;;;;;9385:24;;;;9377:71;;;;-1:-1:-1;;;9377:71:1;;3135:2:7;9377:71:1;;;3117:21:7;3174:2;3154:18;;;3147:30;3213:34;3193:18;;;3186:62;-1:-1:-1;;;3264:18:7;;;3257:32;3306:19;;9377:71:1;3107:224:7;9377:71:1;-1:-1:-1;;;;;9482:18:1;;:9;:18;;;;;;;;;;9503:23;;;9482:44;;9546:12;:22;;9520:6;;9482:9;9546:22;;9520:6;;9546:22;:::i;:::-;;;;-1:-1:-1;;9584:37:1;;6599:25:7;;;9610:1:1;;-1:-1:-1;;;;;9584:37:1;;;;;6587:2:7;6572:18;9584:37:1;;;;;;;9632:48;574:164:0;14:196:7;82:20;;-1:-1:-1;;;;;131:54:7;;121:65;;111:2;;200:1;197;190:12;215:196;;327:2;315:9;306:7;302:23;298:32;295:2;;;348:6;340;333:22;295:2;376:29;395:9;376:29;:::i;:::-;366:39;285:126;-1:-1:-1;;;285:126:7:o;416:270::-;;;545:2;533:9;524:7;520:23;516:32;513:2;;;566:6;558;551:22;513:2;594:29;613:9;594:29;:::i;:::-;584:39;;642:38;676:2;665:9;661:18;642:38;:::i;:::-;632:48;;503:183;;;;;:::o;691:338::-;;;;837:2;825:9;816:7;812:23;808:32;805:2;;;858:6;850;843:22;805:2;886:29;905:9;886:29;:::i;:::-;876:39;;934:38;968:2;957:9;953:18;934:38;:::i;:::-;924:48;;1019:2;1008:9;1004:18;991:32;981:42;;795:234;;;;;:::o;1034:264::-;;;1163:2;1151:9;1142:7;1138:23;1134:32;1131:2;;;1184:6;1176;1169:22;1131:2;1212:29;1231:9;1212:29;:::i;:::-;1202:39;1288:2;1273:18;;;;1260:32;;-1:-1:-1;;;1121:177:7:o;1303:190::-;;1415:2;1403:9;1394:7;1390:23;1386:32;1383:2;;;1436:6;1428;1421:22;1383:2;-1:-1:-1;1464:23:7;;1373:120;-1:-1:-1;1373:120:7:o;1921:603::-;;2062:2;2091;2080:9;2073:21;2123:6;2117:13;2166:6;2161:2;2150:9;2146:18;2139:34;2191:4;2204:140;2218:6;2215:1;2212:13;2204:140;;;2313:14;;;2309:23;;2303:30;2279:17;;;2298:2;2275:26;2268:66;2233:10;;2204:140;;;2362:6;2359:1;2356:13;2353:2;;;2432:4;2427:2;2418:6;2407:9;2403:22;2399:31;2392:45;2353:2;-1:-1:-1;2508:2:7;2487:15;-1:-1:-1;;2483:29:7;2468:45;;;;2515:2;2464:54;;2042:482;-1:-1:-1;;;2042:482:7:o;6824:128::-;;6895:1;6891:6;6888:1;6885:13;6882:2;;;6901:18;;:::i;:::-;-1:-1:-1;6937:9:7;;6872:80::o;6957:125::-;;7025:1;7022;7019:8;7016:2;;;7030:18;;:::i;:::-;-1:-1:-1;7067:9:7;;7006:76::o;7087:380::-;7172:1;7162:12;;7219:1;7209:12;;;7230:2;;7284:4;7276:6;7272:17;7262:27;;7230:2;7337;7329:6;7326:14;7306:18;7303:38;7300:2;;;7383:10;7378:3;7374:20;7371:1;7364:31;7418:4;7415:1;7408:15;7446:4;7443:1;7436:15;7300:2;;7142:325;;;:::o;7472:127::-;7533:10;7528:3;7524:20;7521:1;7514:31;7564:4;7561:1;7554:15;7588:4;7585:1;7578:15

Swarm Source

ipfs://368fe0d0cc28f214ff1389512f6f5d284a3cd2c85ce4f1d7f1c765199d8b55fd
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading