Contract 0x1a4a94a202b97ce490e867634b2535815b213349 1

Contract Overview

Balance:
0 DEV
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x83037fd17e8c7ff6f6e36f7df9810528074dcae0b62f44bcf8d6feea3dd4e109Approve27612112022-09-01 19:36:4889 days 2 hrs ago0x147c1cff9251a27b2bf505c42df13a8905a8f9b8 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x13b902663b7363d7ac9fe09831dd69b19aefdc0c52015435dc8f5e4032c64e87Approve26930972022-08-20 12:26:00101 days 9 hrs ago0x2c9fb99808964dcede14111e1ef4a83a5bc352e9 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0xdcc0102beeb8b1c6d455d03ec91a40802404196fcaffbd4ce97cdd5e38076a56Approve26271712022-08-08 20:09:30113 days 2 hrs ago0x88c8a7c4b236e56eee5e4bbbf47d6aef922da68f IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x576408b96940fdd391b56942fabd5c51cd95d16f4417ed0f3368eb3fb8123cefApprove25160742022-07-19 11:11:36133 days 11 hrs ago0x4e3c5bccf0f62ff7f4c92597f3f8747826f8da33 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x75868a85fc69de62c31e537805b0682e2d27e65ec63c834e2270b38788d2d38aApprove25035552022-07-17 10:41:36135 days 11 hrs ago0x2586c93f212b70dbb8045604584bb44929d7fd67 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0000672725
0x3fd649cc123680a73deed925ef0d77e64b237305cedeb72e2545882e3cf096fbApprove25035532022-07-17 10:41:12135 days 11 hrs ago0x2586c93f212b70dbb8045604584bb44929d7fd67 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.00005382
0x636ebe9f89b44da3a08c05dda9b326a77815a2a62edc6a9f33231a8ef17cdb96Approve24938312022-07-15 21:23:12137 days 54 mins ago0x8d48c5f32467b0440ab08ac197ca40825faeefbd IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x0a643786bcfbed79b2612ce9ff05516bff59598e5538e3303f9006088d8ab1dcApprove24748172022-07-12 20:39:00140 days 1 hr ago0x6c228b26bc8aa19a486380e80f18784123d3d0a0 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0xcc232192c62825f2cf3f25c0bdcc76ec7c31b320f5ca604657bee3fcbdd55c94Approve24745542022-07-12 19:35:30140 days 2 hrs ago0x8c2d56fceda0bd2d96ab3be986599bb067efe402 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x7f54501c4b448624d166776c89c1c47415f4c31642faeee2cedf2b7a89dd3337Approve24625652022-07-10 22:43:00141 days 23 hrs ago0x604873f5706cd992c161a881baafaf2c12eed6ce IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0xf7da9587193df6230257b64879c777498a5a203293b3b679fb8befd89f7ca81aApprove24625642022-07-10 22:42:48141 days 23 hrs ago0xd3c6ab4a78e20abd5bbdff1a4b9dc7b134d44974 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x623f816bee873596b9261b6fe776b652042986a3d9b14051312c6769be6afbd3Approve24625612022-07-10 22:42:12141 days 23 hrs ago0x2817a79ac41bc9165520fbe337533daa492e49a5 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x63a7b413dd1817b0f50b28ba14d70cf9038cee63902d7c7ee405470d2a15d612Approve24625582022-07-10 22:41:36141 days 23 hrs ago0x3abbb98e1184fea4ba78063dfee63e957fd885f6 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x9ab866063894e62426f051744f816f35849262955c662bea27d139a5c65641b4Approve24625562022-07-10 22:41:12141 days 23 hrs ago0x9235ce0515dbee3d69547da6b377360a896adf06 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x19cc819e0036c6c9eba24994bf437949a17f3d3d6a3e625364933f2ea270d533Approve24625512022-07-10 22:40:06141 days 23 hrs ago0x9ccfff9650e5cae1380cfd54a979b48890c2265a IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0xd4f42234d25261be3eb887a7ecd4f47e72c43e539c1a46045e7a856d2a37f99bApprove24625472022-07-10 22:39:12141 days 23 hrs ago0x4fde1f9503cebd7e9620d77df5950b3aff2fa239 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x2e3220f5dd9986452682ba570d6f5e901eb55303cdcd2ef153e48be85c726bdeApprove24621172022-07-10 21:04:42142 days 1 hr ago0x71add9f767acf1de29987bdc1a2f0214b7f1ea12 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x17baf8d1b2f459071cc1ed240208621ff15995393870142290f3126478f31338Approve24621152022-07-10 21:04:06142 days 1 hr ago0x8c5ae528f5182a2f744417272d92983281afc100 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x7645591cfac0e2d2386546025e7ef9de63d2873202eb73d0e761734f38932e9fApprove24621132022-07-10 21:03:42142 days 1 hr ago0x1323ba2c4873f9dc44528e6f12b8bec26b73003f IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x1a738a97dfe05fbce98c21f80f9da3951905aba92316b87d8f28fed100876fd7Approve24621122022-07-10 21:03:24142 days 1 hr ago0x76f0a223bc68c120b905c5de7f82aec6aafa4872 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x39737c79dfd13adf7a27ec6b0cee0c4a68dfbffab688ae40454bb040d10011ddApprove24621102022-07-10 21:03:00142 days 1 hr ago0x5c4fe242aec822a4016d75f6b5058cd725ed60a1 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0xe1ceafbd79bbc9628b46280e985c20f5e1243619f7d0cee3a233d8e5fefe0a61Approve24621082022-07-10 21:02:30142 days 1 hr ago0x39325c8000d91858719447c44e88dd4c1a9d1294 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x84e945c0caf8ed223fae5ba4414989f3bf951cb7975dfadcfcdd80c0c62f360bApprove24621062022-07-10 21:02:06142 days 1 hr ago0xbd886e6b7b187a728fe19c6dba35277c7782eb77 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0xdadd96d8fedd1b16993e1b3e02ba90ec0ce755f36ea6c3b41d291521aa6eb9eeApprove24621052022-07-10 21:01:54142 days 1 hr ago0xf1e4434567e8af7a6dfbd8da370667319d443eed IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
0x30033567e013c1ae363705a80a97c3524b33239e97a4522f0cfa5a98d67964a3Approve24621032022-07-10 21:01:18142 days 1 hr ago0xd2f0653e807396b4fcde012144791e070f63f0c3 IN 0x1a4a94a202b97ce490e867634b2535815b2133490 DEV0.0001179825
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xc886b6c943ee91ce38ce0c9c52a3f412b66232d011d688606284339b955d29ee30665512022-10-25 8:12:0035 days 14 hrs ago 0xa638c1aefb24956759b39add52b17c4364bd4f1e0x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0xc886b6c943ee91ce38ce0c9c52a3f412b66232d011d688606284339b955d29ee30665512022-10-25 8:12:0035 days 14 hrs ago 0x46ab221ac1e51968f4c05e57137011c27696d1370x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x5211bbf980d5d57611b074038251f92bb48b591cf763a512d76ea20d183f611b30665492022-10-25 8:11:1835 days 14 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x5211bbf980d5d57611b074038251f92bb48b591cf763a512d76ea20d183f611b30665492022-10-25 8:11:1835 days 14 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0xd8ce35194685ad87dbdbe5db1227130ab14ef7f1c38fb9c8da47ff49bf3ef15928121282022-09-10 8:33:4880 days 13 hrs ago 0xa638c1aefb24956759b39add52b17c4364bd4f1e0x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0xd8ce35194685ad87dbdbe5db1227130ab14ef7f1c38fb9c8da47ff49bf3ef15928121282022-09-10 8:33:4880 days 13 hrs ago 0x46ab221ac1e51968f4c05e57137011c27696d1370x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0xa7426530503cad8287857d4ee8d88db640f69704b5343df0265a624c8c62992f28121192022-09-10 8:30:5480 days 13 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0xa7426530503cad8287857d4ee8d88db640f69704b5343df0265a624c8c62992f28121192022-09-10 8:30:5480 days 13 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x14c958ed1f41807c02df5bcd9f0e2931d88b30a7b8abf04ace9b49004602258227612222022-09-01 19:39:1889 days 2 hrs ago 0xa638c1aefb24956759b39add52b17c4364bd4f1e0x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x14c958ed1f41807c02df5bcd9f0e2931d88b30a7b8abf04ace9b49004602258227612222022-09-01 19:39:1889 days 2 hrs ago 0x46ab221ac1e51968f4c05e57137011c27696d1370x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0xdb52184a4be26126bcc8307d5acf312ffaa2e4a7a28ae09dd82b7bc448eec99a27612022022-09-01 19:34:5489 days 2 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0xdb52184a4be26126bcc8307d5acf312ffaa2e4a7a28ae09dd82b7bc448eec99a27612022022-09-01 19:34:5489 days 2 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x9ab21a1510a8402ddc45f4b7a102082ae1677ee6890be69935d938cc772e8d3727372112022-08-28 10:53:4893 days 11 hrs ago 0xa638c1aefb24956759b39add52b17c4364bd4f1e0x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x9ab21a1510a8402ddc45f4b7a102082ae1677ee6890be69935d938cc772e8d3727372112022-08-28 10:53:4893 days 11 hrs ago 0x46ab221ac1e51968f4c05e57137011c27696d1370x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x1cf5e932e5f515fab6df5770c10306460b0198f37f63b13c567b5f3030e782f727372072022-08-28 10:52:4293 days 11 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x1cf5e932e5f515fab6df5770c10306460b0198f37f63b13c567b5f3030e782f727372072022-08-28 10:52:4293 days 11 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x3a47cda668e31f1c48031e5869dc196f0a446bfa2a22d0a6b8f474567c4e44f227315762022-08-27 10:30:1894 days 11 hrs ago 0xa638c1aefb24956759b39add52b17c4364bd4f1e0x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x3a47cda668e31f1c48031e5869dc196f0a446bfa2a22d0a6b8f474567c4e44f227315762022-08-27 10:30:1894 days 11 hrs ago 0x46ab221ac1e51968f4c05e57137011c27696d1370x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x61f062dfab44ad66594c57ccd033389617da57c9bccc68a044f2c907d66e4bdc27315742022-08-27 10:29:1894 days 11 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x61f062dfab44ad66594c57ccd033389617da57c9bccc68a044f2c907d66e4bdc27315742022-08-27 10:29:1894 days 11 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0xadd0e3fde0e3525c040810ef8bd9255e7d1fdb47d31ad89f1bfea86c6be2469027206672022-08-25 10:57:4896 days 11 hrs ago 0xa638c1aefb24956759b39add52b17c4364bd4f1e0x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0xadd0e3fde0e3525c040810ef8bd9255e7d1fdb47d31ad89f1bfea86c6be2469027206672022-08-25 10:57:4896 days 11 hrs ago 0x46ab221ac1e51968f4c05e57137011c27696d1370x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x46feebf073ad0cd1912fa1b5771d1dad0b3022253faefa68cf683ca4069a6f6a27206652022-08-25 10:57:0096 days 11 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x46feebf073ad0cd1912fa1b5771d1dad0b3022253faefa68cf683ca4069a6f6a27206652022-08-25 10:57:0096 days 11 hrs ago 0x0e4c6f47aca216c9980d0b2aa43eb9dbb6b8bc570x1a4a94a202b97ce490e867634b2535815b2133490 DEV
0x42825ae43098c15e1fed2ad4859da3cd3a331cac0b8742d3703765d14f369bfd27148552022-08-24 9:57:0697 days 12 hrs ago 0xa638c1aefb24956759b39add52b17c4364bd4f1e0x1a4a94a202b97ce490e867634b2535815b2133490 DEV
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SilverToken

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at moonbase.moonscan.io on 2022-04-25
*/

// Sources flattened with hardhat v2.6.8 https://hardhat.org

// File @openzeppelin/contracts/utils/[email protected]

// 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 GSN 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 payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]



/**
 * @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 @openzeppelin/contracts/math/[email protected]




/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
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) {
        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) {
        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) {
        // 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) {
        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) {
        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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @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) {
        require(b <= a, "SafeMath: subtraction overflow");
        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) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @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. 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) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        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) {
        require(b > 0, "SafeMath: modulo by zero");
        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) {
        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.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * 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) {
        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) {
        require(b > 0, errorMessage);
        return a % b;
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]




/**
 * @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 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) public {
        _name = name_;
        _symbol = symbol_;
        _decimals = 18;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual 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 {_setupDecimals} is
     * called.
     *
     * 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 returns (uint8) {
        return _decimals;
    }

    /**
     * @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);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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].add(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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is 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);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(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:
     *
     * - `to` 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 = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(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);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(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 Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal virtual {
        _decimals = decimals_;
    }

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


// File contracts/twc.sol

// contracts/GLDToken.sol

pragma solidity ^0.8.0;

contract SilverToken is ERC20 {
    constructor() ERC20("Silver", "SLD") {
        _mint(msg.sender,40000000000000000000000000);
    }
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"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"}]

60806040523480156200001157600080fd5b506040518060400160405280600681526020017f53696c76657200000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f534c44000000000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000308565b508060049080519060200190620000af92919062000308565b506012600560006101000a81548160ff021916908360ff1602179055505050620000eb336a2116545850052128000000620000f160201b60201c565b620005d6565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000164576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015b9062000439565b60405180910390fd5b6200017860008383620002a060201b60201c565b6200019481600254620002a560201b6200071f1790919060201c565b600281905550620001f2816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620002a560201b6200071f1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200029491906200045b565b60405180910390a35050565b505050565b6000808284620002b6919062000489565b905083811015620002fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002f59062000417565b60405180910390fd5b8091505092915050565b8280546200031690620004f0565b90600052602060002090601f0160209004810192826200033a576000855562000386565b82601f106200035557805160ff191683800117855562000386565b8280016001018555821562000386579182015b828111156200038557825182559160200191906001019062000368565b5b50905062000395919062000399565b5090565b5b80821115620003b45760008160009055506001016200039a565b5090565b6000620003c7601b8362000478565b9150620003d48262000584565b602082019050919050565b6000620003ee601f8362000478565b9150620003fb82620005ad565b602082019050919050565b6200041181620004e6565b82525050565b600060208201905081810360008301526200043281620003b8565b9050919050565b600060208201905081810360008301526200045481620003df565b9050919050565b600060208201905062000472600083018462000406565b92915050565b600082825260208201905092915050565b60006200049682620004e6565b9150620004a383620004e6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004db57620004da62000526565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200050957607f821691505b6020821081141562000520576200051f62000555565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6113aa80620005e66000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610ea2565b60405180910390f35b6100e660048036038101906100e19190610d32565b610308565b6040516100f39190610e87565b60405180910390f35b610104610326565b6040516101119190610f64565b60405180910390f35b610134600480360381019061012f9190610cdf565b610330565b6040516101419190610e87565b60405180910390f35b610152610409565b60405161015f9190610f7f565b60405180910390f35b610182600480360381019061017d9190610d32565b610420565b60405161018f9190610e87565b60405180910390f35b6101b260048036038101906101ad9190610c72565b6104d3565b6040516101bf9190610f64565b60405180910390f35b6101d061051b565b6040516101dd9190610ea2565b60405180910390f35b61020060048036038101906101fb9190610d32565b6105ad565b60405161020d9190610e87565b60405180910390f35b610230600480360381019061022b9190610d32565b61067a565b60405161023d9190610e87565b60405180910390f35b610260600480360381019061025b9190610c9f565b610698565b60405161026d9190610f64565b60405180910390f35b606060038054610285906110c8565b80601f01602080910402602001604051908101604052809291908181526020018280546102b1906110c8565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c61031561077d565b8484610785565b6001905092915050565b6000600254905090565b600061033d848484610950565b6103fe8461034961077d565b6103f98560405180606001604052806028815260200161132860289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103af61077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b610785565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006104c961042d61077d565b846104c4856001600061043e61077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461071f90919063ffffffff16565b610785565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461052a906110c8565b80601f0160208091040260200160405190810160405280929190818152602001828054610556906110c8565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b60006106706105ba61077d565b8461066b8560405180606001604052806025815260200161135060259139600160006105e461077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b610785565b6001905092915050565b600061068e61068761077d565b8484610950565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080828461072e9190610fb6565b905083811015610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076a90610f04565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ec90610f44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085c90610ee4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109439190610f64565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b790610f24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2790610ec4565b60405180910390fd5b610a3b838383610c43565b610aa681604051806060016040528060268152602001611302602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b39816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461071f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bd89190610f64565b60405180910390a3505050565b6000838311158290610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c249190610ea2565b60405180910390fd5b508284610c3a919061100c565b90509392505050565b505050565b600081359050610c57816112d3565b92915050565b600081359050610c6c816112ea565b92915050565b600060208284031215610c8857610c87611158565b5b6000610c9684828501610c48565b91505092915050565b60008060408385031215610cb657610cb5611158565b5b6000610cc485828601610c48565b9250506020610cd585828601610c48565b9150509250929050565b600080600060608486031215610cf857610cf7611158565b5b6000610d0686828701610c48565b9350506020610d1786828701610c48565b9250506040610d2886828701610c5d565b9150509250925092565b60008060408385031215610d4957610d48611158565b5b6000610d5785828601610c48565b9250506020610d6885828601610c5d565b9150509250929050565b610d7b81611052565b82525050565b6000610d8c82610f9a565b610d968185610fa5565b9350610da6818560208601611095565b610daf8161115d565b840191505092915050565b6000610dc7602383610fa5565b9150610dd28261116e565b604082019050919050565b6000610dea602283610fa5565b9150610df5826111bd565b604082019050919050565b6000610e0d601b83610fa5565b9150610e188261120c565b602082019050919050565b6000610e30602583610fa5565b9150610e3b82611235565b604082019050919050565b6000610e53602483610fa5565b9150610e5e82611284565b604082019050919050565b610e728161107e565b82525050565b610e8181611088565b82525050565b6000602082019050610e9c6000830184610d72565b92915050565b60006020820190508181036000830152610ebc8184610d81565b905092915050565b60006020820190508181036000830152610edd81610dba565b9050919050565b60006020820190508181036000830152610efd81610ddd565b9050919050565b60006020820190508181036000830152610f1d81610e00565b9050919050565b60006020820190508181036000830152610f3d81610e23565b9050919050565b60006020820190508181036000830152610f5d81610e46565b9050919050565b6000602082019050610f796000830184610e69565b92915050565b6000602082019050610f946000830184610e78565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610fc18261107e565b9150610fcc8361107e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611001576110006110fa565b5b828201905092915050565b60006110178261107e565b91506110228361107e565b925082821015611035576110346110fa565b5b828203905092915050565b600061104b8261105e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156110b3578082015181840152602081019050611098565b838111156110c2576000848401525b50505050565b600060028204905060018216806110e057607f821691505b602082108114156110f4576110f3611129565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6112dc81611040565b81146112e757600080fd5b50565b6112f38161107e565b81146112fe57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200d9b4eee603fd5dd22e4897e7de604cba397fdb465ff8ee48d2ea0cbde1bbb3764736f6c63430008070033

Deployed ByteCode Sourcemap

22410:140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13450:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15596:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14549:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16247:321;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14393:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16977:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14720:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13660:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17698:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15060:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15298:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13450:91;13495:13;13528:5;13521:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13450:91;:::o;15596:169::-;15679:4;15696:39;15705:12;:10;:12::i;:::-;15719:7;15728:6;15696:8;:39::i;:::-;15753:4;15746:11;;15596:169;;;;:::o;14549:108::-;14610:7;14637:12;;14630:19;;14549:108;:::o;16247:321::-;16353:4;16370:36;16380:6;16388:9;16399:6;16370:9;:36::i;:::-;16417:121;16426:6;16434:12;:10;:12::i;:::-;16448:89;16486:6;16448:89;;;;;;;;;;;;;;;;;:11;:19;16460:6;16448:19;;;;;;;;;;;;;;;:33;16468:12;:10;:12::i;:::-;16448:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;16417:8;:121::i;:::-;16556:4;16549:11;;16247:321;;;;;:::o;14393:91::-;14442:5;14467:9;;;;;;;;;;;14460:16;;14393:91;:::o;16977:218::-;17065:4;17082:83;17091:12;:10;:12::i;:::-;17105:7;17114:50;17153:10;17114:11;:25;17126:12;:10;:12::i;:::-;17114:25;;;;;;;;;;;;;;;:34;17140:7;17114:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17082:8;:83::i;:::-;17183:4;17176:11;;16977:218;;;;:::o;14720:127::-;14794:7;14821:9;:18;14831:7;14821:18;;;;;;;;;;;;;;;;14814:25;;14720:127;;;:::o;13660:95::-;13707:13;13740:7;13733:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13660:95;:::o;17698:269::-;17791:4;17808:129;17817:12;:10;:12::i;:::-;17831:7;17840:96;17879:15;17840:96;;;;;;;;;;;;;;;;;:11;:25;17852:12;:10;:12::i;:::-;17840:25;;;;;;;;;;;;;;;:34;17866:7;17840:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17808:8;:129::i;:::-;17955:4;17948:11;;17698:269;;;;:::o;15060:175::-;15146:4;15163:42;15173:12;:10;:12::i;:::-;15187:9;15198:6;15163:9;:42::i;:::-;15223:4;15216:11;;15060:175;;;;:::o;15298:151::-;15387:7;15414:11;:18;15426:5;15414:18;;;;;;;;;;;;;;;:27;15433:7;15414:27;;;;;;;;;;;;;;;;15407:34;;15298:151;;;;:::o;6646:179::-;6704:7;6724:9;6740:1;6736;:5;;;;:::i;:::-;6724:17;;6765:1;6760;:6;;6752:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6816:1;6809:8;;;6646:179;;;;:::o;727:115::-;780:15;823:10;808:26;;727:115;:::o;20845:346::-;20964:1;20947:19;;:5;:19;;;;20939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21045:1;21026:21;;:7;:21;;;;21018:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21129:6;21099:11;:18;21111:5;21099:18;;;;;;;;;;;;;;;:27;21118:7;21099:27;;;;;;;;;;;;;;;:36;;;;21167:7;21151:32;;21160:5;21151:32;;;21176:6;21151:32;;;;;;:::i;:::-;;;;;;;;20845:346;;;:::o;18457:539::-;18581:1;18563:20;;:6;:20;;;;18555:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;18665:1;18644:23;;:9;:23;;;;18636:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18720:47;18741:6;18749:9;18760:6;18720:20;:47::i;:::-;18800:71;18822:6;18800:71;;;;;;;;;;;;;;;;;:9;:17;18810:6;18800:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;18780:9;:17;18790:6;18780:17;;;;;;;;;;;;;;;:91;;;;18905:32;18930:6;18905:9;:20;18915:9;18905:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18882:9;:20;18892:9;18882:20;;;;;;;;;;;;;;;:55;;;;18970:9;18953:35;;18962:6;18953:35;;;18981:6;18953:35;;;;;;:::i;:::-;;;;;;;;18457:539;;;:::o;9473:166::-;9559:7;9592:1;9587;:6;;9595:12;9579:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9630:1;9626;:5;;;;:::i;:::-;9619:12;;9473:166;;;;;:::o;22224:92::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:109::-;2298:21;2313:5;2298:21;:::i;:::-;2293:3;2286:34;2217:109;;:::o;2332:364::-;2420:3;2448:39;2481:5;2448:39;:::i;:::-;2503:71;2567:6;2562:3;2503:71;:::i;:::-;2496:78;;2583:52;2628:6;2623:3;2616:4;2609:5;2605:16;2583:52;:::i;:::-;2660:29;2682:6;2660:29;:::i;:::-;2655:3;2651:39;2644:46;;2424:272;2332:364;;;;:::o;2702:366::-;2844:3;2865:67;2929:2;2924:3;2865:67;:::i;:::-;2858:74;;2941:93;3030:3;2941:93;:::i;:::-;3059:2;3054:3;3050:12;3043:19;;2702:366;;;:::o;3074:::-;3216:3;3237:67;3301:2;3296:3;3237:67;:::i;:::-;3230:74;;3313:93;3402:3;3313:93;:::i;:::-;3431:2;3426:3;3422:12;3415:19;;3074:366;;;:::o;3446:::-;3588:3;3609:67;3673:2;3668:3;3609:67;:::i;:::-;3602:74;;3685:93;3774:3;3685:93;:::i;:::-;3803:2;3798:3;3794:12;3787:19;;3446:366;;;:::o;3818:::-;3960:3;3981:67;4045:2;4040:3;3981:67;:::i;:::-;3974:74;;4057:93;4146:3;4057:93;:::i;:::-;4175:2;4170:3;4166:12;4159:19;;3818:366;;;:::o;4190:::-;4332:3;4353:67;4417:2;4412:3;4353:67;:::i;:::-;4346:74;;4429:93;4518:3;4429:93;:::i;:::-;4547:2;4542:3;4538:12;4531:19;;4190:366;;;:::o;4562:118::-;4649:24;4667:5;4649:24;:::i;:::-;4644:3;4637:37;4562:118;;:::o;4686:112::-;4769:22;4785:5;4769:22;:::i;:::-;4764:3;4757:35;4686:112;;:::o;4804:210::-;4891:4;4929:2;4918:9;4914:18;4906:26;;4942:65;5004:1;4993:9;4989:17;4980:6;4942:65;:::i;:::-;4804:210;;;;:::o;5020:313::-;5133:4;5171:2;5160:9;5156:18;5148:26;;5220:9;5214:4;5210:20;5206:1;5195:9;5191:17;5184:47;5248:78;5321:4;5312:6;5248:78;:::i;:::-;5240:86;;5020:313;;;;:::o;5339:419::-;5505:4;5543:2;5532:9;5528:18;5520:26;;5592:9;5586:4;5582:20;5578:1;5567:9;5563:17;5556:47;5620:131;5746:4;5620:131;:::i;:::-;5612:139;;5339:419;;;:::o;5764:::-;5930:4;5968:2;5957:9;5953:18;5945:26;;6017:9;6011:4;6007:20;6003:1;5992:9;5988:17;5981:47;6045:131;6171:4;6045:131;:::i;:::-;6037:139;;5764:419;;;:::o;6189:::-;6355:4;6393:2;6382:9;6378:18;6370:26;;6442:9;6436:4;6432:20;6428:1;6417:9;6413:17;6406:47;6470:131;6596:4;6470:131;:::i;:::-;6462:139;;6189:419;;;:::o;6614:::-;6780:4;6818:2;6807:9;6803:18;6795:26;;6867:9;6861:4;6857:20;6853:1;6842:9;6838:17;6831:47;6895:131;7021:4;6895:131;:::i;:::-;6887:139;;6614:419;;;:::o;7039:::-;7205:4;7243:2;7232:9;7228:18;7220:26;;7292:9;7286:4;7282:20;7278:1;7267:9;7263:17;7256:47;7320:131;7446:4;7320:131;:::i;:::-;7312:139;;7039:419;;;:::o;7464:222::-;7557:4;7595:2;7584:9;7580:18;7572:26;;7608:71;7676:1;7665:9;7661:17;7652:6;7608:71;:::i;:::-;7464:222;;;;:::o;7692:214::-;7781:4;7819:2;7808:9;7804:18;7796:26;;7832:67;7896:1;7885:9;7881:17;7872:6;7832:67;:::i;:::-;7692:214;;;;:::o;7993:99::-;8045:6;8079:5;8073:12;8063:22;;7993:99;;;:::o;8098:169::-;8182:11;8216:6;8211:3;8204:19;8256:4;8251:3;8247:14;8232:29;;8098:169;;;;:::o;8273:305::-;8313:3;8332:20;8350:1;8332:20;:::i;:::-;8327:25;;8366:20;8384:1;8366:20;:::i;:::-;8361:25;;8520:1;8452:66;8448:74;8445:1;8442:81;8439:107;;;8526:18;;:::i;:::-;8439:107;8570:1;8567;8563:9;8556:16;;8273:305;;;;:::o;8584:191::-;8624:4;8644:20;8662:1;8644:20;:::i;:::-;8639:25;;8678:20;8696:1;8678:20;:::i;:::-;8673:25;;8717:1;8714;8711:8;8708:34;;;8722:18;;:::i;:::-;8708:34;8767:1;8764;8760:9;8752:17;;8584:191;;;;:::o;8781:96::-;8818:7;8847:24;8865:5;8847:24;:::i;:::-;8836:35;;8781:96;;;:::o;8883:90::-;8917:7;8960:5;8953:13;8946:21;8935:32;;8883:90;;;:::o;8979:126::-;9016:7;9056:42;9049:5;9045:54;9034:65;;8979:126;;;:::o;9111:77::-;9148:7;9177:5;9166:16;;9111:77;;;:::o;9194:86::-;9229:7;9269:4;9262:5;9258:16;9247:27;;9194:86;;;:::o;9286:307::-;9354:1;9364:113;9378:6;9375:1;9372:13;9364:113;;;9463:1;9458:3;9454:11;9448:18;9444:1;9439:3;9435:11;9428:39;9400:2;9397:1;9393:10;9388:15;;9364:113;;;9495:6;9492:1;9489:13;9486:101;;;9575:1;9566:6;9561:3;9557:16;9550:27;9486:101;9335:258;9286:307;;;:::o;9599:320::-;9643:6;9680:1;9674:4;9670:12;9660:22;;9727:1;9721:4;9717:12;9748:18;9738:81;;9804:4;9796:6;9792:17;9782:27;;9738:81;9866:2;9858:6;9855:14;9835:18;9832:38;9829:84;;;9885:18;;:::i;:::-;9829:84;9650:269;9599:320;;;:::o;9925:180::-;9973:77;9970:1;9963:88;10070:4;10067:1;10060:15;10094:4;10091:1;10084:15;10111:180;10159:77;10156:1;10149:88;10256:4;10253:1;10246:15;10280:4;10277:1;10270:15;10420:117;10529:1;10526;10519:12;10543:102;10584:6;10635:2;10631:7;10626:2;10619:5;10615:14;10611:28;10601:38;;10543:102;;;:::o;10651:222::-;10791:34;10787:1;10779:6;10775:14;10768:58;10860:5;10855:2;10847:6;10843:15;10836:30;10651:222;:::o;10879:221::-;11019:34;11015:1;11007:6;11003:14;10996:58;11088:4;11083:2;11075:6;11071:15;11064:29;10879:221;:::o;11106:177::-;11246:29;11242:1;11234:6;11230:14;11223:53;11106:177;:::o;11289:224::-;11429:34;11425:1;11417:6;11413:14;11406:58;11498:7;11493:2;11485:6;11481:15;11474:32;11289:224;:::o;11519:223::-;11659:34;11655:1;11647:6;11643:14;11636:58;11728:6;11723:2;11715:6;11711:15;11704:31;11519:223;:::o;11748:122::-;11821:24;11839:5;11821:24;:::i;:::-;11814:5;11811:35;11801:63;;11860:1;11857;11850:12;11801:63;11748:122;:::o;11876:::-;11949:24;11967:5;11949:24;:::i;:::-;11942:5;11939:35;11929:63;;11988:1;11985;11978:12;11929:63;11876:122;:::o

Swarm Source

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