Contract 0xc1c93D475dc82Fe72DBC7074d55f5a734F8cEEAE 6

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xaf36450c19301f21fde7d25545fb9512546f56a8a7206f7821b637562a46ef59Approve287804002022-05-26 5:21:368 mins ago0xec917d9a8db01a759806f7aa00c8451fb512f02e IN  Pegaxy: PGX Token0 MATIC0.007002315343 150.3094351
0x15f313ae5d05c5c0d3e7449b7a90f98466d95ce9005c83b19761a0f5a01aea3fApprove287799002022-05-26 5:04:2126 mins ago0x7c38e35b1cd587357e16021c1f033135e83db118 IN  Pegaxy: PGX Token0 MATIC0.001483196714 32.052485518
0x1a6da589fb88b10f5d3791d8f97397e4bfe6cf81a3d767dfe950a0d09caa8f90Approve287796732022-05-26 4:54:2736 mins ago0xb8a7b34914775e4c9c33cdaf5d89e394dd9abdd6 IN  Pegaxy: PGX Token0 MATIC0.001629347695 35.210867771
0xe97c54ac774da541fa780cec0c05f40453e9591b8fa80cf37814f4699b924714Transfer287795602022-05-26 4:50:3340 mins ago0x859108d264c8bd49bc90b78e6796fee7afdfac63 IN  Pegaxy: PGX Token0 MATIC0.001693148322 32.802145087
0xba8198dcc0e0d2af45f262fca86cec1632d62f3d4341de27b6a00f4dfabe34c1Approve287794472022-05-26 4:46:3643 mins ago0x864e600ab8bc988941a1cacd6719274c7b72e122 IN  Pegaxy: PGX Token0 MATIC0.00139758 30.000000013
0x4b96021029da72b72ba12a3dfc7001b1f190e5fe4d71c0c0522bf0c046754b3cApprove287789872022-05-26 4:29:551 hr ago0x086668dcc7ded08e99bc6a1ae837053551240516 IN  Pegaxy: PGX Token0 MATIC0.00138822 30.000000016
0x2102caaca0bc51873e9c2170a879b42eb9bb02c50c2501166e3e5c3523a8feb1Approve287787342022-05-26 4:20:111 hr 10 mins ago0xc098b1bb56b497beae71dd3c07d3e6991c124cf7 IN  Pegaxy: PGX Token0 MATIC0.00139722 30.000000015
0x1cd4d0df35701e4250d2cf16ec3c8920790734c3b4a9271cfe89e1f70045155bApprove287786822022-05-26 4:18:231 hr 12 mins ago0xa29d603fd2bd3a0927a56d9905fee9087c637ada IN  Pegaxy: PGX Token0 MATIC0.00139758 30.000000018
0x925640c7a3fc564eda5a3d951415d8ba86c62a00d53d7e98e4cf4f23a646d688Approve287784682022-05-26 4:11:001 hr 19 mins ago0x079c87703ac39d4dfef28add843e0dcf43aa9a8d IN  Pegaxy: PGX Token0 MATIC0.001793698834 38.502958717
0x620b2f77c6c0c124f09608ccae5669800425ba24a46800114e3aecb8742ac029Transfer287778622022-05-26 3:48:041 hr 42 mins ago0x2ba540e8582bfe927d325dbce7238697176578ab IN  Pegaxy: PGX Token0 MATIC0.001138370659 32.979999999
0xa468a7a978a82ecd31d1c8517f85551ee16063880ca9646da120ed2ac71da709Approve287777942022-05-26 3:45:441 hr 44 mins ago0x910658bd7a0ee74f598986123e1efb30f8686387 IN  Pegaxy: PGX Token0 MATIC0.001399068631 30.031954487
0x2375c6933b66e1484c7a798fced7cbaa81dcc0f3e04799f9d84a16fb7586b2f6Approve287777112022-05-26 3:42:501 hr 47 mins ago0x0096fc87ef3c4c9dbb98dd7c267aa68736d97a30 IN  Pegaxy: PGX Token0 MATIC0.00146973739731.548907342
0xb6da5f6004acff847adcf74fe3bb591884dbafbd7744e19fd16082ff03ccc43eApprove287774962022-05-26 3:35:281 hr 55 mins ago0xec917d9a8db01a759806f7aa00c8451fb512f02e IN  Pegaxy: PGX Token0 MATIC0.006941100002 150.000000044
0xeabe12664718363eda1ed8e5e3bf4361893fdafffa6c4b5c59387ae081ad0edbApprove287774482022-05-26 3:33:481 hr 56 mins ago0xc953d87c5256c31b23e76759489fce6e7387de9b IN  Pegaxy: PGX Token0 MATIC0.001434799358 30.798938699
0xaa730e13b9058d0cc173d099d618c3ee38146ad66a41f89c5841361950300a09Approve287773352022-05-26 3:29:542 hrs ago0x0acd1249fc5d40ede4708c13de33fe4a643704e3 IN  Pegaxy: PGX Token0 MATIC0.00139758 30.000000016
0x2a0baac40784c4fb3cff1b6fb3d4ef2532620d428b0689a328e818bfd36c6b03Approve287771862022-05-26 3:24:482 hrs 5 mins ago0x189a57bc6b1b73c1044df605edc02fe96a5e5ed4 IN  Pegaxy: PGX Token0 MATIC0.00138822 30.000000014
0x2dfa73cc5d2782afcf9eb1b088525908e6396683ee4e2d86aeb5ea3682c8b30dApprove287771562022-05-26 3:23:482 hrs 6 mins ago0x8bba160974a540681e035ec3bdecef412fb94d7b IN  Pegaxy: PGX Token0 MATIC0.000880227608 30.171646272
0x3e84b80b172301f2a8bd6da8eaef42017b1de101f4ea3a335df44f9e6e56b873Approve287770492022-05-26 3:20:062 hrs 10 mins ago0x524fe68a00f1cd817511e588d4982b5058978768 IN  Pegaxy: PGX Token0 MATIC0.001654489851 35.754200021
0xfb0acb09297f2587ca2b6fd8dd91a6e7efc91bbf72becdfa7268777dd8e9900cApprove287770392022-05-26 3:19:462 hrs 10 mins ago0xe55a5928df3998492df419ac20f59ed82e75a656 IN  Pegaxy: PGX Token0 MATIC0.00186140012 39.956212603
0x4f1d628a818a7a1328e8f87fc1b56ad8c8597865a724e86cf0ba207938f9e35dTransfer287768762022-05-26 3:14:082 hrs 16 mins ago0x1d444793abee0f462a792dd65e44112f94bc36e3 IN  Pegaxy: PGX Token0 MATIC0.001548510001 30.000000023
0x10fee26301e9ff07e7a65333d0530cec306c7572ae6d0f0c6a854c932f8aa7b8Approve287767312022-05-26 3:09:072 hrs 21 mins ago0xbcc3315c4d759eb82dd3d290b7c21d45175a4570 IN  Pegaxy: PGX Token0 MATIC0.001519150993 32.609603599
0xac9a8473b431577730d0842a037459820a443d20953e40890746b060144e6af5Transfer287767292022-05-26 3:09:032 hrs 21 mins ago0x1d444793abee0f462a792dd65e44112f94bc36e3 IN  Pegaxy: PGX Token0 MATIC0.001704946106 33.030708996
0xc7917e815e3d848eee75263f119b42177ff746af94a91a180d0532e8a6f0b37aApprove287766882022-05-26 3:07:372 hrs 22 mins ago0x7ca7aab2d9c7cd1f5e0f849e158f0a48bae4db3c IN  Pegaxy: PGX Token0 MATIC0.00170463951 36.59124008
0xe0556365178b77765b6c4c800d0600ed8de9a1c0b283965cd98ea66a8bec6dddApprove287766682022-05-26 3:06:572 hrs 23 mins ago0xe087e491898defeb569b3f8bf5d165e23019c14d IN  Pegaxy: PGX Token0 MATIC0.001534146866 32.931500154
0x5599d2de2acdd00a7a5b509a892f222fc8a4f8816752235b570c4399571f41adApprove287766662022-05-26 3:06:532 hrs 23 mins ago0x861b87c72179c47342e200a6f76ad987f9fc520a IN  Pegaxy: PGX Token0 MATIC0.001780516927 38.220000162
[ 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.