Contract 0xc1c93d475dc82fe72dbc7074d55f5a734f8ceeae 6

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x43fc4688002c28710ebe07b9b36068a7eb4d50a1f0fabaf68233fff8807c6b12Approve365458132022-12-07 17:46:131 min ago0x7b5db1dbdea603b56921b0ca50cb18a08385d2b6 IN  Pegaxy: PGX Token0 MATIC0.001158815655 43.937804467
0xb3c3645e724973d33afd562079101a2dd0a80d27c8723ff3478825806fb11b1dApprove365458062022-12-07 17:45:592 mins ago0x7b5db1dbdea603b56921b0ca50cb18a08385d2b6 IN  Pegaxy: PGX Token0 MATIC0.001226201992 42.03064347
0x6575fb210eb1b6f6ff5a501feac3c4824d2447ef9e640050bde5601b94e5cbdaApprove365457952022-12-07 17:45:372 mins ago0x7b5db1dbdea603b56921b0ca50cb18a08385d2b6 IN  Pegaxy: PGX Token0 MATIC0.002270430459 49.064927602
0x47990897fb4dcfc60282f41045b557c63a30ce16005dbc823a009225f7c54f4dApprove365450602022-12-07 17:20:1927 mins ago0xa1a600a2cfca15c181a57186337d8a88ee9ac62a IN  Pegaxy: PGX Token0 MATIC0.002123754928 45.587836021
0x91de625cca05857cc9eef1a258a887550c1325b00dd92e2acaaa7cca57abca47Approve365449512022-12-07 17:16:2931 mins ago0xd2ef4c72d6eb2bb72e6b42b786b3d68c0aa6a83d IN  Pegaxy: PGX Token0 MATIC0.002319248229 49.784231958
0x6bbf9f19ededecc8368238436e2869475287a15690b321633c4a509e5a726879Transfer365444042022-12-07 16:57:4350 mins ago0xef6b2534daa539dced3e86e3f1df64af60d07612 IN  Pegaxy: PGX Token0 MATIC0.0047853142 102.213174702
0xf25cdc6583db293f269a7298a7c5d7421952c3cccc0ffbf18a68e4580c07d55cApprove365443522022-12-07 16:55:5552 mins ago0xebea04c0235251380fcd5dcfb5e5d8b9f4205500 IN  Pegaxy: PGX Token0 MATIC0.002883360025 61.893273202
0x26ff2ff893daee9f2725c7e76367ad96ecb7b7c1285661cb51c2f87ece184b98Approve365419132022-12-07 15:29:472 hrs 18 mins ago0x302d592d617ca7b997adaeb49ba41b83f0515866 IN  Pegaxy: PGX Token0 MATIC0.00191287786 71.680951067
0x4d9b1c34ffd844420ab73f0eb9787709814544d7306bb95e23b6fb6143964eb6Approve365419122022-12-07 15:29:452 hrs 18 mins ago0x302d592d617ca7b997adaeb49ba41b83f0515866 IN  Pegaxy: PGX Token0 MATIC0.003324477434 71.362156756
0x65cd6b0bb0eb2946557c474c53527b651fe06384b3a7272449f38d09af5146a7Approve365418802022-12-07 15:28:372 hrs 19 mins ago0x1f90955a48682ffe69a634fc13a4d6e43344f10e IN  Pegaxy: PGX Token0 MATIC0.002258622831 48.797105645
0xb2ca4c0c286ba3307010217afb2f9475b7b9a8331d2a9481d1d350345049ed77Approve365408562022-12-07 14:53:232 hrs 54 mins ago0xf549797fc7ef53f9c5bd3b41d1e02d42de35f2d2 IN  Pegaxy: PGX Token0 MATIC0.003139659202 67.831724551
0xe05f6ff599d9f008e8b74745f6d602c703b697df1e81292e0081a4ecd452bb84Approve365407062022-12-07 14:48:152 hrs 59 mins ago0xf549797fc7ef53f9c5bd3b41d1e02d42de35f2d2 IN  Pegaxy: PGX Token0 MATIC0.002348806794 80.477173813
0xe549379d06d1a125831bda11c1f59e98284c6ea27330c38076ad9837d1bc4ed7Approve365406902022-12-07 14:47:433 hrs ago0xf549797fc7ef53f9c5bd3b41d1e02d42de35f2d2 IN  Pegaxy: PGX Token0 MATIC0.00355780989 76.865788587
0x6bbbf806fbf3fbd10609fdda010c98aa7197afd126df2dbc023a018ef7cb3b86Approve365398442022-12-07 14:18:073 hrs 29 mins ago0xf8cd644baf494d13406187cf8628754dca0a10c2 IN  Pegaxy: PGX Token0 MATIC0.004885676626 104.874353387
0x2c489c68e8ced5b30ed91e3d7fe469cd3bc0ca479534f5dca345f4680c4445c3Approve365280522022-12-07 7:20:4710 hrs 27 mins ago0x4d713f04f667013c78c9366574c5d57c946ff728 IN  Pegaxy: PGX Token0 MATIC0.007352158078 157.819046033
0xecad0725936c1d4b9a72111c3d985805f5ed4458b77b31f2dcb2b71416b1b1caApprove365222252022-12-07 3:58:5513 hrs 49 mins ago0xe56eb582486ce1552b53e362f20dc54cac5cc241 IN  Pegaxy: PGX Token0 MATIC0.00384658872 82.569628655
0xabb3c83e77da4bf6bae0240b138c0038247e4251e3187d0286b6372ee979bfaeApprove365204402022-12-07 2:51:0914 hrs 56 mins ago0x68e417405beb250a99616d709c6af268f778e587 IN  Pegaxy: PGX Token0 MATIC0.002639568575 57.027364119
0xd1ecdc13c32ebd91f2d5499eddbc25e5230a4e3220bac4aaca13a425a3ebd099Approve365184662022-12-07 1:38:5316 hrs 9 mins ago0x68e417405beb250a99616d709c6af268f778e587 IN  Pegaxy: PGX Token0 MATIC0.002146562826 46.376071087
0xd00872853226187abf2e39d8918e428e25c1f1e8ecc0ce490e8196fd53ad7b51Approve365178262022-12-07 1:16:5316 hrs 31 mins ago0xcb1ee75850972454e073c9d93a007b46f362f088 IN  Pegaxy: PGX Token0 MATIC0.002200891044 47.24361492
0xa90fc6de14d1bdc44653fb42648f81892bda63a84efc671dc7786e27ac4e7fc9Approve365172972022-12-07 0:58:3016 hrs 49 mins ago0x2e5e203e824bec9ffbdf141ceeaa0232d932b7b3 IN  Pegaxy: PGX Token0 MATIC0.001842936323 39.826605088
0x9b181d7a915fb430e64d58bf075aa430396a365b39130d771163118ac7c053f0Approve365171252022-12-07 0:52:3816 hrs 55 mins ago0x22cc6d226e94ffb8278ddedf39dc2a411641bb51 IN  Pegaxy: PGX Token0 MATIC0.001939279649 41.627949373
0x5d7b095a3468aaa7f8e57d2cc0b809890cb77dc0840a3f758319e731b202b62bApprove365161762022-12-07 0:20:0017 hrs 28 mins ago0x1b4488f303f52710e73f782d0571584a9e8b7d93 IN  Pegaxy: PGX Token0 MATIC0.001505745815 32.321852389
0x881179441be414100c297158ed31a29bf1a077e338564ee48cde9cf414c51df4Approve365161322022-12-07 0:18:2817 hrs 29 mins ago0x30abf4ad98efcaafb93fe16aa09361ddfcb05f4e IN  Pegaxy: PGX Token0 MATIC0.001499800471 32.402896591
0x46ca9d6a4b2e98caaba95b8284a490804aa7c7f0d5cd4d6a96cb6af39aeb8cc2Approve365159202022-12-07 0:09:3317 hrs 38 mins ago0x68e417405beb250a99616d709c6af268f778e587 IN  Pegaxy: PGX Token0 MATIC0.00156302736 33.768901196
0xeb32fcf4ea8164e2fc1ed554ae86fa9d97845f3cad950815def492097a5f81c7Approve365128482022-12-06 22:21:2819 hrs 26 mins ago0x2451c39d817ff015b10a205a49055a43d27aca82 IN  Pegaxy: PGX Token0 MATIC0.00087558 30.000000016
[ Download CSV Export 

OVERVIEW

Pegaxy is a true Play-to-Earn mech-styled horse racing game, built on the Polygon chain. Pegaxy has two native tokens within its economy, the governance token being Pegaxy Stones (PGX) and Vigorus (VIS) being the utility tokens of the platform.

Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Pegaxy

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 800 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 5 : Pegaxy.sol
// contracts/Pegaxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract Pegaxy is ERC20 {
    constructor() ERC20("Pegaxy Stone", "PGX") {
        /**
         * Mint for Pegaxy IDO
         */
        _mint(0x29153514E98081Cc172DB7b830dEA9a4d811A584, 20000000 * (10 ** decimals()));

        /**
         * Mint for Pegaxy Liquidity
         */
        _mint(0xC94fb63396aa06E90a754d92Aae67A985Ba23ab7, 100000000 * (10 ** decimals()));

        /**
         * Mint for Pegaxy Marketing and Ecosystem Reverse
         */
        _mint(0x06cD1BA9a834869E2a8476B405803D450Df41167, 300000000 * (10 ** decimals()));


        /**
         * Mint for Vesting Contract of Pegaxy Community Develop
         */        
        //Wait for contract deployed
        _mint(0x7c00Bee8552CCa98D828fFA3E7dFc58fa5CB60a6, 160000000 * (10 ** decimals()));

        /**
         * Mint for Vesting Contract of Pegaxy Team and Advisors
         */        
        //Wait for contract deployed
        _mint(0x8757E9873444aA07C610b1FC3b6717e86e6452D1, 220000000 * (10 ** decimals()));

        /**
         * Mint for Vesting Contract of Private Sale Round 1 Investors
         */
        //Wait for contracts deployed
        //0x13A07af9422Aa8b3868B1b89178a870e1c3f9424
        _mint(0xA4Ce42eA9FD102050E900Bb851525aF92b304B99, 30000000 * (10 ** decimals()));
        
        //0xcE36e34ea4C96BC3869A135Ae4F68E439029254b
        _mint(0x57362Ee4dA166a8E3ac5ce0148E7FBB3c9cCeBb3, 15000000 * (10 ** decimals()));
        
        //0x2b6EfCCe98Fe1e46967f8Ce49bd258007c796945
        _mint(0x28F3ba6ADe556e905e5D40E88ac53a68311EBdcE, 5000000 * (10 ** decimals()));
        
        //0x17dac974ec5bf41a7f6dcec1effe5bf2cebaa79a
        _mint(0x7374AbB88614092057537898E03EB624F921FA8b, 6500000 * (10 ** decimals()));
        
        //0x04616EA20406B2388583A0cb1154430A34753dF7
        _mint(0x29452e6D32B279677431AdeB83BeAEB5f2c8e5F8, 10000000 * (10 ** decimals()));
        
        //0x664Fe01207Dc37C84A97A8dCdC28bCc1Da6bEE57
        _mint(0x5e35Bb09fc63E713aAC97DeBECd4f598B0350834, 10000000 * (10 ** decimals()));

        //0x0C3bDFc1cd0FBC4a371F0F3A18Ec1F990FDd0d39
        _mint(0x80Aa48342CfD7FFB3536828a1ACd268b3b64dcFA, 2000000 * (10 ** decimals()));
        
        //0xCF280dF3da6405EabF27E1d85e2c03d3B9047309
        _mint(0x5Ec582bBF2ce59eb50e40781046f99e7daC1D607, 5000000 * (10 ** decimals()));
        
        //0x2340B5DB633b7F4BA025941b183C77E8cDEa5134
        _mint(0xA7087F684Ec5B2bE931505590cdC66D8dae4b133, 5000000 * (10 ** decimals()));
        
        //0x3E8C6676eEf25C7b18a7ac24271075F735c79A16
        _mint(0x8140faC8f6C9C6a6E7B4F110e1a0b0F2C819EAc4, 1000000 * (10 ** decimals()));
        
        //0x38B4be8a7dcf2d6fa4e6C826fAe20669BD89DF2c
        _mint(0xB4ec70f871656Fe7d76344e0d753e68048779033, 2500000 * (10 ** decimals()));
        
        //0xf480275B9F0D97Eb02DE9cEa149A8F613121C588
        _mint(0x99e1dfb42397622A26E2AD67edaEF2A6396758A6, 8000000 * (10 ** decimals()));
        
        //0xa50f89381301decb11f1918586f98c5f2077e3ca
        _mint(0x584DFD3ce3793f2f4009873601796D33f008C895, 13333333 * (10 ** decimals()));
        
        //0xb8F03E0a03673B5e9E094880EdE376Dc2caF4286
        _mint(0x49f1514496b6501F0d1914cF7f320C880ce36e4E, 16666666 * (10 ** decimals()));

        //0x05AeB176197F1800465285907844913a2bc02e75
        _mint(0x0FAd12202aD23AAbf89ac5059A42A944fc47aFf0, 10000000 * (10 ** decimals()));
        
        //0x2340B5DB633b7F4BA025941b183C77E8cDEa5134
        _mint(0xf427bFC7EFe4e92a4D3503434886F8883a58b7b6, 6666667 * (10 ** decimals()));
        
        //0xcE36e34ea4C96BC3869A135Ae4F68E439029254b
        _mint(0xE3d1a13D85c79d8E7BEda31A76702bEAD12E1602, 2666667 * (10 ** decimals()));
        
        //0x637E21Ac11F0E0Cf95D926d6bd2737b059A2858a
        _mint(0xAD6bf9C7593E38ba24F578F4d8343EA24e0Bf5d1, 3333333 * (10 ** decimals()));
        
        //0xC0855f464261832aa43f1d9d9E1cC2aCeEF7c54b
        _mint(0x37E4F25080D93941D18cb92619e71f4055BB14b1, 3333333 * (10 ** decimals()));
        
        //0x4D30922f14fD6149D06994FFc08D042Dc09bbd42
        _mint(0x94A852CD73ba4a23488e1D17e304Fe46b9D9FE93, 3333333 * (10 ** decimals()));
        
        //0x8BF99D25C3cC0Bb8ebB13395e323A3Bf78BC2d48
        _mint(0xc05ffA2c0244515B8dDC07220fDfC77c36C60073, 3333333 * (10 ** decimals()));
        
        //0x4F76e9779F4eF8Ea8361CecDEe0a2ccdbA4B06ba
        _mint(0xe2e746f79FfEe5dfF2B8c8B71D717FB4681Bcdcc, 2000000 * (10 ** decimals()));
        
        //0x175cB067535951C0e27404a5E57672ED1F477440
        _mint(0x1b18499973e7F2405E29FfeAB82A2cA9cFA1471c, 2000000 * (10 ** decimals()));

        //0x38B4be8a7dcf2d6fa4e6C826fAe20669BD89DF2c
        _mint(0x7a05FDc83f4d5D9DE102aD700E6C6a67b563eeb2, 1666667 * (10 ** decimals()));
        
        //0x380E0E7e7AF09B5f0069289356c813A1C4878fe0
        _mint(0x1CB743bd360BF665BF2e79E6b098c3f5B9f25424, 1666667 * (10 ** decimals()));
        
        //0x9e12da5Ca525Ad3EF2a35Bf8286369b3eeB0A0d2
        _mint(0xf108Ef354CD7Fd50B6b4E211971742F34a04D315, 6666667 * (10 ** decimals()));
        
        //0x338FdBd9361CA33C8F32cf373d1b2913e4Ec4540
        _mint(0xFcCF4956361C88E80aEDd1E30877910Dd9f5227A, 3333333 * (10 ** decimals()));
        
        //0x18701332a0126472ea908f54de9836ca1c5e9679
        _mint(0x3413A355F16F95147Fd584c69Ad160d0D6142911, 3333333 * (10 ** decimals()));
        
        //0x03951Cb1aE6bA341409C106000efF4D5313bD319
        _mint(0x041c85ef362B02266021b1D7bd9f4E0D1D2009D1, 1333333 * (10 ** decimals()));
        
        //0x1f5feA56Da579CD297868D5d7eAA42100cAe17f5
        _mint(0xde3427332855dC936928e1813cF8149fD7717D69, 1000000 * (10 ** decimals()));
        
        //0x3faa6715BE99A73e7eDaBdB33C294E621b79a26F
        _mint(0x37C98032327071f7ae88847Cf1f412a769534e40, 1000000 * (10 ** decimals()));
        
        //0x0C7dcFB81823F8326E53A42d5fc6F4fEc79e4547
        _mint(0xed6cdc19a6328fc9c91319d571F5117d61CB78F1, 1000000 * (10 ** decimals()));
        
        //0x6cdF11996eEd528d69Cd8B56503fDb19EC0B2977
        _mint(0x3fE8bf244f9AfDc7d386693c617b4fe7Ea1237C9, 1000000 * (10 ** decimals()));
        
        //0xf480275B9F0D97Eb02DE9cEa149A8F613121C588
        _mint(0xFB82C9ADfCb734Ac0bcF13bBf60308FBc225CB21, 1333333 * (10 ** decimals()));
        
        //0x945414c5577cfF660248715905994D51CfB23625
        _mint(0x0057D4c47Da5A0Fb86A98E011E05Fc7419E713cE, 166667 * (10 ** decimals()));
        
        //0x3E8C6676eEf25C7b18a7ac24271075F735c79A16
        _mint(0x154df82a7075735c77D0893dE8Fb32f86EC07614, 666667 * (10 ** decimals()));
        
        //0x09B64e3d589AE90ACCE69C75C346722D8EbFB65D
        _mint(0xf7d9c20b79dEA5622144Bd9A0a85C648546960B2, 666667 * (10 ** decimals()));
        
        //0x859108D264c8bd49BC90b78E6796FeE7AfdfAC63
        _mint(0x5B18c41659EABb4E499727AE478FcD5F7E94bCd4, 666667 * (10 ** decimals()));
        
        //0x603A26BaEDC8316467bC9c3BaA38606Bbc286697
        _mint(0x06F9465330C1ebedA0178a8e7CCd5adD425aDc84, 166667 * (10 ** decimals()));
        
        //0x1A923a54f042f4E43910313827Aa4C6D3429756D
        _mint(0x00Dba888701CbFAe6FF20c447528c979323CFe78, 666667 * (10 ** decimals()));
        
        //0x80B603bCE2D8Cc3acb43B6692514b463a16FB425
        _mint(0xb3852023626A280dE9F8A708C2200268BcC988D6, 666667 * (10 ** decimals()));
        
        //0x08dbbDB48CDe6d890e88328b877589cB1E0c3680
        _mint(0x32a75fBCccc4edc52f21756310D80F10D7e9F1A9, 333333 * (10 ** decimals()));
        
        //0x95c745807A5A7BE209a3F394eEc9A1Ccda4251F4
        _mint(0x0216F0dD79eAA4E4dAF3cd831F972A5Fbc78dd87, 4666667 * (10 ** decimals()));
        
        //0x739bf77ACBdd7b0D81783944D5BC07196365B26d
        _mint(0xCbF7FCdB5F2c11F8F514E31703A02D91E6FC0c0C, 1333333 * (10 ** decimals()));
    }


}

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

pragma solidity ^0.8.0;

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

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin 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 defaut 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");
        _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");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        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);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += 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 += amount;
        _balances[account] += 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);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= 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 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 3 of 5 : 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 4 of 5 : 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 5 of 5 : 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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

Settings
{
  "metadata": {
    "bytecodeHash": "none"
  },
  "optimizer": {
    "enabled": true,
    "runs": 800
  },
  "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":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"}]

60806040523480156200001157600080fd5b506040518060400160405280600c81526020016b5065676178792053746f6e6560a01b815250604051806040016040528060038152602001620a08eb60eb1b81525081600390805190602001906200006b92919062000a02565b5080516200008190600490602084019062000a02565b505050620000d07329153514e98081cc172db7b830dea9a4d811a584620000ad6200091560201b60201c565b620000ba90600a62000b0c565b620000ca906301312d0062000bda565b6200091a565b6200010773c94fb63396aa06e90a754d92aae67a985ba23ab7620000f76012600a62000b0c565b620000ca906305f5e10062000bda565b6200013e7306cd1ba9a834869e2a8476b405803d450df411676200012e6012600a62000b0c565b620000ca906311e1a30062000bda565b62000175737c00bee8552cca98d828ffa3e7dfc58fa5cb60a6620001656012600a62000b0c565b620000ca90630989680062000bda565b620001ac738757e9873444aa07c610b1fc3b6717e86e6452d16200019c6012600a62000b0c565b620000ca90630d1cef0062000bda565b620001e373a4ce42ea9fd102050e900bb851525af92b304b99620001d36012600a62000b0c565b620000ca906301c9c38062000bda565b620002197357362ee4da166a8e3ac5ce0148e7fbb3c9ccebb36200020a6012600a62000b0c565b620000ca9062e4e1c062000bda565b620002517328f3ba6ade556e905e5d40e88ac53a68311ebdce60125b6200024290600a62000b0c565b620000ca90624c4b4062000bda565b62000287737374abb88614092057537898e03eb624f921fa8b620002786012600a62000b0c565b620000ca9062632ea062000bda565b620002bf7329452e6d32b279677431adeb83beaeb5f2c8e5f860125b620002b090600a62000b0c565b620000ca906298968062000bda565b620002e0735e35bb09fc63e713aac97debecd4f598b03508346012620002a3565b620003187380aa48342cfd7ffb3536828a1acd268b3b64dcfa60125b6200030990600a62000b0c565b620000ca90621e848062000bda565b62000339735ec582bbf2ce59eb50e40781046f99e7dac1d607601262000235565b6200035a73a7087f684ec5b2be931505590cdc66d8dae4b133601262000235565b62000392738140fac8f6c9c6a6e7b4f110e1a0b0f2c819eac460125b6200038390600a62000b0c565b620000ca90620f424062000bda565b620003c873b4ec70f871656fe7d76344e0d753e68048779033620003b96012600a62000b0c565b620000ca90622625a062000bda565b620003fe7399e1dfb42397622a26e2ad67edaef2a6396758a6620003ef6012600a62000b0c565b620000ca90627a120062000bda565b6200043473584dfd3ce3793f2f4009873601796d33f008c895620004256012600a62000b0c565b620000ca9062cb735562000bda565b6200046a7349f1514496b6501f0d1914cf7f320c880ce36e4e6200045b6012600a62000b0c565b620000ca9062fe502a62000bda565b6200048b730fad12202ad23aabf89ac5059a42a944fc47aff06012620002a3565b620004c373f427bfc7efe4e92a4d3503434886f8883a58b7b660125b620004b490600a62000b0c565b620000ca906265b9ab62000bda565b620004f973e3d1a13d85c79d8e7beda31a76702bead12e1602620004ea6012600a62000b0c565b620000ca906228b0ab62000bda565b6200053173ad6bf9c7593e38ba24f578f4d8343ea24e0bf5d160125b6200052290600a62000b0c565b620000ca906232dcd562000bda565b620005527337e4f25080d93941d18cb92619e71f4055bb14b1601262000515565b620005737394a852cd73ba4a23488e1d17e304fe46b9d9fe93601262000515565b6200059473c05ffa2c0244515b8ddc07220fdfc77c36c60073601262000515565b620005b573e2e746f79ffee5dff2b8c8b71d717fb4681bcdcc6012620002fc565b620005d6731b18499973e7f2405e29ffeab82a2ca9cfa1471c6012620002fc565b6200060e737a05fdc83f4d5d9de102ad700e6c6a67b563eeb260125b620005ff90600a62000b0c565b620000ca9062196e6b62000bda565b6200062f731cb743bd360bf665bf2e79e6b098c3f5b9f254246012620005f2565b6200065073f108ef354cd7fd50b6b4e211971742f34a04d3156012620004a7565b6200067173fccf4956361c88e80aedd1e30877910dd9f5227a601262000515565b62000692733413a355f16f95147fd584c69ad160d0d6142911601262000515565b620006ca73041c85ef362b02266021b1d7bd9f4e0d1d2009d160125b620006bb90600a62000b0c565b620000ca906214585562000bda565b620006eb73de3427332855dc936928e1813cf8149fd7717d69601262000376565b6200070c7337c98032327071f7ae88847cf1f412a769534e40601262000376565b6200072d73ed6cdc19a6328fc9c91319d571f5117d61cb78f1601262000376565b6200074e733fe8bf244f9afdc7d386693c617b4fe7ea1237c9601262000376565b6200076f73fb82c9adfcb734ac0bcf13bbf60308fbc225cb216012620006ae565b620007a67257d4c47da5a0fb86a98e011e05fc7419e713ce60125b6200079790600a62000b0c565b620000ca9062028b0b62000bda565b620007de73154df82a7075735c77d0893de8fb32f86ec0761460125b620007cf90600a62000b0c565b620000ca90620a2c2b62000bda565b620007ff73f7d9c20b79dea5622144bd9a0a85c648546960b26012620007c2565b62000820735b18c41659eabb4e499727ae478fcd5f7e94bcd46012620007c2565b620008417306f9465330c1ebeda0178a8e7ccd5add425adc8460126200078a565b6200086172dba888701cbfae6ff20c447528c979323cfe786012620007c2565b6200088273b3852023626a280de9f8a708c2200268bcc988d66012620007c2565b620008b87332a75fbcccc4edc52f21756310d80f10d7e9f1a9620008a96012600a62000b0c565b620000ca906205161562000bda565b620008ee730216f0dd79eaa4e4daf3cd831f972a5fbc78dd87620008df6012600a62000b0c565b620000ca906247352b62000bda565b6200090f73cbf7fcdb5f2c11f8f514e31703a02d91e6fc0c0c6012620006ae565b62000c4f565b601290565b6001600160a01b038216620009755760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000989919062000aa8565b90915550506001600160a01b03821660009081526020819052604081208054839290620009b890849062000aa8565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b82805462000a109062000bfc565b90600052602060002090601f01602090048101928262000a34576000855562000a7f565b82601f1062000a4f57805160ff191683800117855562000a7f565b8280016001018555821562000a7f579182015b8281111562000a7f57825182559160200191906001019062000a62565b5062000a8d92915062000a91565b5090565b5b8082111562000a8d576000815560010162000a92565b6000821982111562000abe5762000abe62000c39565b500190565b600181815b8085111562000b0457816000190482111562000ae85762000ae862000c39565b8085161562000af657918102915b93841c939080029062000ac8565b509250929050565b600062000b1d60ff84168362000b24565b9392505050565b60008262000b355750600162000bd4565b8162000b445750600062000bd4565b816001811462000b5d576002811462000b685762000b88565b600191505062000bd4565b60ff84111562000b7c5762000b7c62000c39565b50506001821b62000bd4565b5060208310610133831016604e8410600b841016171562000bad575081810a62000bd4565b62000bb9838362000ac3565b806000190482111562000bd05762000bd062000c39565b0290505b92915050565b600081600019048311821515161562000bf75762000bf762000c39565b500290565b600181811c9082168062000c1157607f821691505b6020821081141562000c3357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b61093d8062000c5f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e3919061085d565b60405180910390f35b6100ff6100fa366004610834565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f3660046107f9565b61028e565b604051601281526020016100e3565b6100ff610151366004610834565b610359565b6101136101643660046107a6565b6001600160a01b031660009081526020819052604090205490565b6100d6610390565b6100ff610195366004610834565b61039f565b6100ff6101a8366004610834565b610452565b6101136101bb3660046107c7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108df565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108df565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b600061028533848461045f565b50600192915050565b600061029b848484610583565b6001600160a01b03841660009081526001602090815260408083203384529091529020548281101561033a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61034e853361034986856108c8565b61045f565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102859185906103499086906108b0565b6060600480546101f5906108df565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156104395760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610331565b610448338561034986856108c8565b5060019392505050565b6000610285338484610583565b6001600160a01b0383166104c15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610331565b6001600160a01b0382166105225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610331565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166105ff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610331565b6001600160a01b0382166106615760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610331565b6001600160a01b038316600090815260208190526040902054818110156106f05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610331565b6106fa82826108c8565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906107309084906108b0565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161077c91815260200190565b60405180910390a350505050565b80356001600160a01b03811681146107a157600080fd5b919050565b6000602082840312156107b7578081fd5b6107c08261078a565b9392505050565b600080604083850312156107d9578081fd5b6107e28361078a565b91506107f06020840161078a565b90509250929050565b60008060006060848603121561080d578081fd5b6108168461078a565b92506108246020850161078a565b9150604084013590509250925092565b60008060408385031215610846578182fd5b61084f8361078a565b946020939093013593505050565b6000602080835283518082850152825b818110156108895785810183015185820160400152820161086d565b8181111561089a5783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108c3576108c361091a565b500190565b6000828210156108da576108da61091a565b500390565b600181811c908216806108f357607f821691505b6020821081141561091457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea164736f6c6343000804000a

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.