PSA: Scheduled Server Maintenance & Upgrades [2nd-December-2021 6:00 AM UTC] - Estimated duration: 3 hours.

Contract 0x8473927b49e6dd0548f8287ea94109b7b753e3cf 7

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xe4e98491ee9be75e7a4a818900e8eabdc35195f8340e0e1a74188ed6fc84b653Approve131241382021-12-02 7:00:3928 mins ago0x1675ce2637da6e0d7dadf8d21d092efc51090c11 IN  Green Beli: GRBE Token0 BNB0.000270696
0xfdae6155f1db7f7814dcee6b33d0305933d321ebdcc97b6942d4504f2b28fcfcApprove131241322021-12-02 7:00:2128 mins ago0x1965f8859d9cdcf2f410a9f7f3fec99efd3d5ac6 IN  Green Beli: GRBE Token0 BNB0.00022558
0xb5524cb3aa1763950bcf90db08b36060f51f22f3b05e73ffec8c25addccd25bfApprove131240862021-12-02 6:58:0331 mins ago0x540ae681827b8fcbeb98ed7cf545f369b0c0944f IN  Green Beli: GRBE Token0 BNB0.00022558
0x550c74677709afc5cb50399ec1e59b5f9ff18dd17578c992d0f3dd1b1decf8aeApprove131240832021-12-02 6:57:5431 mins ago0x8a4aac2c768867e582804b3cacba6d5f44e36011 IN  Green Beli: GRBE Token0 BNB0.00022558
0xac78c3cc96c6ea73a4ff5b66f46b4a348987120f5fb774ccb226dfa1dcfa4e70Approve131240022021-12-02 6:53:5035 mins ago0xa8bf09cd7643c868d820c6ea3f0c931da1f004ff IN  Green Beli: GRBE Token0 BNB0.00022558
0x5b1eb71a95ca1b6c73f89559a7a31f83fa6e671d8b377647d60b183fb402f993Approve131239832021-12-02 6:52:4836 mins ago0x81d1ad425b70ab86d82586d9567079a2a8834b9d IN  Green Beli: GRBE Token0 BNB0.00012958
0xc212cfb305f0e3162af3eb87504c1d2d10db45504bb2650534e09df4c0b0c109Approve131239502021-12-02 6:51:0038 mins ago0x81d1ad425b70ab86d82586d9567079a2a8834b9d IN  Green Beli: GRBE Token0 BNB0.00022558
0x2a42ac6cfd6aec1b0d2898ef179ea2d0e9e9ec58cc97f12d96ba2774874e47fbApprove131239232021-12-02 6:49:2539 mins ago0x5db3556bd7b4502e1104994f5a3e71ae5a88a8a1 IN  Green Beli: GRBE Token0 BNB0.00022558
0xc0b6f6d5e55fccbc79608b5dc46a80462f06fca361051340677bd8231918f7efApprove131239052021-12-02 6:48:2740 mins ago0xfe836b6ca38043924df784d7340df9d4f5c102f7 IN  Green Beli: GRBE Token0 BNB0.00022558
0xc05f305683801ad3b7bbf8f67d7114c108790a55256a5c536e50631040d7a0b5Approve131238822021-12-02 6:46:5342 mins ago0xa4dbec2fef67cc1bb456f440630f17b8b76ec0f4 IN  Green Beli: GRBE Token0 BNB0.00012958
0x751f22e9545fc5cc07ac29b7056f5158b4079370b0cac7a4e9ab43494869ef6aTransfer131238762021-12-02 6:46:3142 mins ago0x964d67ae131e1b80370d5f5135d939abfa0a64b5 IN  Green Beli: GRBE Token0 BNB0.00011424
0x0bb3bbf8d4708f6276966aa917e32a932139e8afad0ebb8f093631eeabd41c70Approve131238682021-12-02 6:46:0443 mins ago0x6fecc81370c627941e35770b50a97a63890243ac IN  Green Beli: GRBE Token0 BNB0.00012958
0x9eb9e1e5fdc190fa826587e2b66bbfc67488d8028303fdf0d0386bda6775a0f0Approve131238642021-12-02 6:45:5243 mins ago0xa4dbec2fef67cc1bb456f440630f17b8b76ec0f4 IN  Green Beli: GRBE Token0 BNB0.00012958
0xa18893b80824baf87949f0e199f4cbb57e917f39afdcd36d1741aefccdce150fApprove131238622021-12-02 6:45:4643 mins ago0xa8188e97208d25993035f4edeecda3f180508cd4 IN  Green Beli: GRBE Token0 BNB0.00022558
0xa275fff8c3230b2a184d1e0567d7647b924b77f31183883fb07d1ebef0defa2eTransfer131238602021-12-02 6:45:3943 mins ago0xfd606b188082eadfebafb0e097ad2d3535b61a04 IN  Green Beli: GRBE Token0 BNB0.0001143
0x3583999614f96b2237afa3e3a932732b7687d2d87d6e8000b8d5923b2881c576Approve131238592021-12-02 6:45:3643 mins ago0x6fecc81370c627941e35770b50a97a63890243ac IN  Green Beli: GRBE Token0 BNB0.00022558
0x6fe25e6e585521771d5d048c2f8e9eff467523508d81f79e57eff79d9be8eb7eApprove131238562021-12-02 6:45:2743 mins ago0xa4dbec2fef67cc1bb456f440630f17b8b76ec0f4 IN  Green Beli: GRBE Token0 BNB0.00022558
0xde1b865941bcf0cce78d9877661961cd1393c2cabba0aebd59d8a930951b9810Transfer131238342021-12-02 6:44:1344 mins ago0x3f5c7eca9ca94e77ea6ddbea436180aa43762cbb IN  Green Beli: GRBE Token0 BNB0.00018948
0xe1509f64580c752c6e6a50fd261b0186c1d05d62bff23be5b16bcb03ceda9e23Approve131238102021-12-02 6:42:4946 mins ago0x4f713dc765b947fbda2da209c14829775dae9a7c IN  Green Beli: GRBE Token0 BNB0.00022558
0x0110ecf8dbaeade42f0ff1c392362b331961cc88ab59d1b263dbd17f31c0ca6bApprove131238102021-12-02 6:42:4946 mins ago0xe5c095f3a02833a0b5e33f97e1f2fcd0f2bf0d96 IN  Green Beli: GRBE Token0 BNB0.00022558
0xee1e00f70115e57fb0792025c406b1c469ef86d3458f9719c68e19aae49de2cbApprove131237872021-12-02 6:41:2947 mins ago0xcf3e7977551e547b1f10651a764deac0e3946749 IN  Green Beli: GRBE Token0 BNB0.00022558
0xfb221695558cead601c77a0cd9f05a7096900b9be96d3153d384ebac6ac5aea7Approve131236822021-12-02 6:35:5453 mins ago0xae56ec398c2eab5dd93c04de636dbdf70c20b287 IN  Green Beli: GRBE Token0 BNB0.00022558
0x280a4fc409b0337ae0792901abd374788f6b6b0f9ae1ab665111bb5d89b92db4Approve131236362021-12-02 6:33:0256 mins ago0x21b5b8243e6a486e7d7d316240a19e63f697aa16 IN  Green Beli: GRBE Token0 BNB0.00022558
0xd4e6539a55a8327803bfcf263051d721b208fa5eac2013707c0e3760f4f8cdffApprove131236162021-12-02 6:31:4157 mins ago0xdc6a6dd8e212ddfed8d5336be2baac8a9c04a7a1 IN  Green Beli: GRBE Token0 BNB0.00022558
0x259fdaa15789ac2933b0874e2d7ed39ae42d798ba6552cdfe10bfada16d80bdcApprove131235842021-12-02 6:29:5359 mins ago0xd677f8e9bb91e682fd0474cafe606bd6a129e91d IN  Green Beli: GRBE Token0 BNB0.00022558
[ Download CSV Export 

OVERVIEW

GRBE token is the game token that is used for farming and used as rewards in the Beneficiary Garden. GRBE is used to exchange for NFT Tree and a proportion of the amount will be burned to keep the token price’s growth.

Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GRBEToken

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 7 : GRBEToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import './ERC20.sol';
import './SafeMath.sol';
import './Pausable.sol';

// GRBEToken with Governance
contract GRBEToken is ERC20, Pausable {
  using SafeMath for uint256;

  address private governance;
  address private pendingGovernance;
  mapping(address => bool) private minters;

  // max amount token: 1 billion
  uint256 public constant cap = 1000000000 ether;

  constructor() Pausable() ERC20('Green Beli', 'GRBE') {
    governance = msg.sender;
  }

  modifier onlyGovernance() {
    require(msg.sender == governance, 'GRBEToken: !governance');
    _;
  }

  function setGovernance(address governance_) external virtual onlyGovernance {
    pendingGovernance = governance_;
  }

  function claimGovernance() external virtual {
    require(msg.sender == pendingGovernance, 'GRBEToken: !pendingGovernance');
    governance = pendingGovernance;
    delete pendingGovernance;
  }

  function addMinter(address minter_) external virtual onlyGovernance {
    minters[minter_] = true;
  }

  function removeMinter(address minter_) external virtual onlyGovernance {
    minters[minter_] = false;
  }

  /**
   * @dev Pauses all token transfers. See {Pausable-_pause}.
   *
   * Requirements:
   * - the caller must be the governance.
   */
  function pause() external virtual onlyGovernance {
    _pause();
  }

  /**
   * @dev Unpauses all token transfers. See {Pausable-_unpause}.
   *
   * Requirements:
   * - the caller must be the governance.
   */
  function unpause() external virtual onlyGovernance {
    _unpause();
  }

  /**
   * @dev See {ERC20-_beforeTokenTransfer}.
   *
   * Requirements:
   * - minted tokens must not cause the total supply to go over the cap.
   */
  function _beforeTokenTransfer(
    address from_,
    address to_,
    uint256 amount_
  ) internal virtual override {
    super._beforeTokenTransfer(from_, to_, amount_);

    require(!paused(), 'GRBEToken: token transfer while paused');

    if (from_ == address(0)) {
      // When minting tokens
      require(totalSupply().add(amount_) <= cap, 'GRBEToken: cap exceeded');
    }
  }

  /**
   * @dev Creates `amount` new tokens for `to`. See {ERC20-_mint}.
   *
   * Requirements:
   * - the caller must have the governance or minter.
   */
  function mint(address to_, uint256 amount_) external virtual {
    require(msg.sender == governance || minters[msg.sender], 'GRBEToken: !governance && !minter');
    _mint(to_, amount_);
  }

  /**
   * @dev Destroys `amount` tokens from the caller. See {ERC20-_burn}.
   */
  function burn(uint256 amount_) external virtual {
    _burn(msg.sender, amount_);
  }
}

File 2 of 7 : ERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of 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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), 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}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - 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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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 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 : SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

File 4 of 7 : Pausable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./Context.sol";

/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

File 5 of 7 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` 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 sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

File 6 of 7 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT

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 7 of 7 : Context.sol
// SPDX-License-Identifier: MIT

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
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"minter_","type":"address"}],"name":"addMinter","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":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimGovernance","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":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter_","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"governance_","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f477265656e2042656c69000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f475242450000000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000114565b508060049080519060200190620000af92919062000114565b5050506000600560006101000a81548160ff02191690831515021790555033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000229565b8280546200012290620001c4565b90600052602060002090601f01602090048101928262000146576000855562000192565b82601f106200016157805160ff191683800117855562000192565b8280016001018555821562000192579182015b828111156200019157825182559160200191906001019062000174565b5b509050620001a19190620001a5565b5090565b5b80821115620001c0576000816000905550600101620001a6565b5090565b60006002820490506001821680620001dd57607f821691505b60208210811415620001f457620001f3620001fa565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61260680620002396000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610304578063983b2d5614610322578063a457c2d71461033e578063a9059cbb1461036e578063ab033ea91461039e578063dd62ed3e146103ba57610137565b806342966c68146102865780635c975abb146102a25780635d36b190146102c057806370a08231146102ca5780638456cb59146102fa57610137565b8063313ce567116100ff578063313ce567146101f4578063355274ea1461021257806339509351146102305780633f4ba83a1461026057806340c10f191461026a57610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806323b872dd146101a85780633092afd5146101d8575b600080fd5b6101446103ea565b6040516101519190611d00565b60405180910390f35b610174600480360381019061016f919061199d565b61047c565b6040516101819190611ce5565b60405180910390f35b61019261049a565b60405161019f9190611f42565b60405180910390f35b6101c260048036038101906101bd919061194e565b6104a4565b6040516101cf9190611ce5565b60405180910390f35b6101f260048036038101906101ed91906118e9565b61059c565b005b6101fc610687565b6040516102099190611f5d565b60405180910390f35b61021a610690565b6040516102279190611f42565b60405180910390f35b61024a6004803603810190610245919061199d565b6106a0565b6040516102579190611ce5565b60405180910390f35b61026861074c565b005b610284600480360381019061027f919061199d565b6107e6565b005b6102a0600480360381019061029b91906119d9565b6108d8565b005b6102aa6108e5565b6040516102b79190611ce5565b60405180910390f35b6102c86108fc565b005b6102e460048036038101906102df91906118e9565b610a16565b6040516102f19190611f42565b60405180910390f35b610302610a5e565b005b61030c610af8565b6040516103199190611d00565b60405180910390f35b61033c600480360381019061033791906118e9565b610b8a565b005b6103586004803603810190610353919061199d565b610c75565b6040516103659190611ce5565b60405180910390f35b6103886004803603810190610383919061199d565b610d60565b6040516103959190611ce5565b60405180910390f35b6103b860048036038101906103b391906118e9565b610d7e565b005b6103d460048036038101906103cf9190611912565b610e52565b6040516103e19190611f42565b60405180910390f35b6060600380546103f9906120a6565b80601f0160208091040260200160405190810160405280929190818152602001828054610425906120a6565b80156104725780601f1061044757610100808354040283529160200191610472565b820191906000526020600020905b81548152906001019060200180831161045557829003601f168201915b5050505050905090565b6000610490610489610ed9565b8484610ee1565b6001905092915050565b6000600254905090565b60006104b18484846110ac565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104fc610ed9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057390611e42565b60405180910390fd5b61059085610588610ed9565b858403610ee1565b60019150509392505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062390611ec2565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006012905090565b6b033b2e3c9fd0803ce800000081565b60006107426106ad610ed9565b8484600160006106bb610ed9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461073d9190611f94565b610ee1565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d390611ec2565b60405180910390fd5b6107e461132d565b565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061088b5750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6108ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c190611de2565b60405180910390fd5b6108d482826113cf565b5050565b6108e2338261152f565b50565b6000600560009054906101000a900460ff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461098c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098390611ee2565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae590611ec2565b60405180910390fd5b610af6611706565b565b606060048054610b07906120a6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b33906120a6565b8015610b805780601f10610b5557610100808354040283529160200191610b80565b820191906000526020600020905b815481529060010190602001808311610b6357829003601f168201915b5050505050905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1190611ec2565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060016000610c84610ed9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3890611f02565b60405180910390fd5b610d55610d4c610ed9565b85858403610ee1565b600191505092915050565b6000610d74610d6d610ed9565b84846110ac565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0590611ec2565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4890611ea2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb890611dc2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161109f9190611f42565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111390611e82565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561118c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118390611d42565b60405180910390fd5b6111978383836117a9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561121d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121490611e02565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112b09190611f94565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113149190611f42565b60405180910390a361132784848461189f565b50505050565b6113356108e5565b611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b90611d62565b60405180910390fd5b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6113b8610ed9565b6040516113c59190611cca565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143690611f22565b60405180910390fd5b61144b600083836117a9565b806002600082825461145d9190611f94565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114b29190611f94565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115179190611f42565b60405180910390a361152b6000838361189f565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561159f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159690611e62565b60405180910390fd5b6115ab826000836117a9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890611d82565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546116889190611fea565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116ed9190611f42565b60405180910390a36117018360008461189f565b505050565b61170e6108e5565b1561174e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174590611e22565b60405180910390fd5b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611792610ed9565b60405161179f9190611cca565b60405180910390a1565b6117b48383836118a4565b6117bc6108e5565b156117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f390611da2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561189a576b033b2e3c9fd0803ce80000006118588261184a61049a565b6118a990919063ffffffff16565b1115611899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189090611d22565b60405180910390fd5b5b505050565b505050565b505050565b600081836118b79190611f94565b905092915050565b6000813590506118ce816125a2565b92915050565b6000813590506118e3816125b9565b92915050565b6000602082840312156118fb57600080fd5b6000611909848285016118bf565b91505092915050565b6000806040838503121561192557600080fd5b6000611933858286016118bf565b9250506020611944858286016118bf565b9150509250929050565b60008060006060848603121561196357600080fd5b6000611971868287016118bf565b9350506020611982868287016118bf565b9250506040611993868287016118d4565b9150509250925092565b600080604083850312156119b057600080fd5b60006119be858286016118bf565b92505060206119cf858286016118d4565b9150509250929050565b6000602082840312156119eb57600080fd5b60006119f9848285016118d4565b91505092915050565b611a0b8161201e565b82525050565b611a1a81612030565b82525050565b6000611a2b82611f78565b611a358185611f83565b9350611a45818560208601612073565b611a4e81612136565b840191505092915050565b6000611a66601783611f83565b9150611a7182612147565b602082019050919050565b6000611a89602383611f83565b9150611a9482612170565b604082019050919050565b6000611aac601483611f83565b9150611ab7826121bf565b602082019050919050565b6000611acf602283611f83565b9150611ada826121e8565b604082019050919050565b6000611af2602683611f83565b9150611afd82612237565b604082019050919050565b6000611b15602283611f83565b9150611b2082612286565b604082019050919050565b6000611b38602183611f83565b9150611b43826122d5565b604082019050919050565b6000611b5b602683611f83565b9150611b6682612324565b604082019050919050565b6000611b7e601083611f83565b9150611b8982612373565b602082019050919050565b6000611ba1602883611f83565b9150611bac8261239c565b604082019050919050565b6000611bc4602183611f83565b9150611bcf826123eb565b604082019050919050565b6000611be7602583611f83565b9150611bf28261243a565b604082019050919050565b6000611c0a602483611f83565b9150611c1582612489565b604082019050919050565b6000611c2d601683611f83565b9150611c38826124d8565b602082019050919050565b6000611c50601d83611f83565b9150611c5b82612501565b602082019050919050565b6000611c73602583611f83565b9150611c7e8261252a565b604082019050919050565b6000611c96601f83611f83565b9150611ca182612579565b602082019050919050565b611cb58161205c565b82525050565b611cc481612066565b82525050565b6000602082019050611cdf6000830184611a02565b92915050565b6000602082019050611cfa6000830184611a11565b92915050565b60006020820190508181036000830152611d1a8184611a20565b905092915050565b60006020820190508181036000830152611d3b81611a59565b9050919050565b60006020820190508181036000830152611d5b81611a7c565b9050919050565b60006020820190508181036000830152611d7b81611a9f565b9050919050565b60006020820190508181036000830152611d9b81611ac2565b9050919050565b60006020820190508181036000830152611dbb81611ae5565b9050919050565b60006020820190508181036000830152611ddb81611b08565b9050919050565b60006020820190508181036000830152611dfb81611b2b565b9050919050565b60006020820190508181036000830152611e1b81611b4e565b9050919050565b60006020820190508181036000830152611e3b81611b71565b9050919050565b60006020820190508181036000830152611e5b81611b94565b9050919050565b60006020820190508181036000830152611e7b81611bb7565b9050919050565b60006020820190508181036000830152611e9b81611bda565b9050919050565b60006020820190508181036000830152611ebb81611bfd565b9050919050565b60006020820190508181036000830152611edb81611c20565b9050919050565b60006020820190508181036000830152611efb81611c43565b9050919050565b60006020820190508181036000830152611f1b81611c66565b9050919050565b60006020820190508181036000830152611f3b81611c89565b9050919050565b6000602082019050611f576000830184611cac565b92915050565b6000602082019050611f726000830184611cbb565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611f9f8261205c565b9150611faa8361205c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611fdf57611fde6120d8565b5b828201905092915050565b6000611ff58261205c565b91506120008361205c565b925082821015612013576120126120d8565b5b828203905092915050565b60006120298261203c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612091578082015181840152602081019050612076565b838111156120a0576000848401525b50505050565b600060028204905060018216806120be57607f821691505b602082108114156120d2576120d1612107565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f47524245546f6b656e3a20636170206578636565646564000000000000000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f47524245546f6b656e3a20746f6b656e207472616e73666572207768696c652060008201527f7061757365640000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f47524245546f6b656e3a2021676f7665726e616e636520262620216d696e746560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f47524245546f6b656e3a2021676f7665726e616e636500000000000000000000600082015250565b7f47524245546f6b656e3a202170656e64696e67476f7665726e616e6365000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6125ab8161201e565b81146125b657600080fd5b50565b6125c28161205c565b81146125cd57600080fd5b5056fea26469706673582212208fca766c021e3413f77d77bed01344f5fc5527ba63c265a7ce5ad195ba551ce864736f6c63430008040033

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.