Contract 0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd6454

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x928ed6c3cc71a4127f74dffedf9637804915cb4724de4e5f5df6c680f6cc2022Approve402577402023-03-12 11:18:2987 days 8 hrs ago0x1b0429a5cfcd473c6df9b1f2d937a9dc4b5f30b1 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.00298577428593.750762535
0xcd3ed9a18db8eaee4f4270d253cdc3733aa5ce4b0e3ea859ac271fa65bc20623Approve402538142023-03-12 8:53:5787 days 11 hrs ago0x1b0429a5cfcd473c6df9b1f2d937a9dc4b5f30b1 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.00762786155
0x118101fd3199371fa6dc0e9e920b88cb5a13fceceac32fdefb4c1dd90412222fApprove402326882023-03-11 19:34:5488 days 23 mins ago0x1b0429a5cfcd473c6df9b1f2d937a9dc4b5f30b1 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.004579601272 156.236397116
0xb7f15c9f16c4448e026de86719f2fce7169c4a2792fe2e8e299272aa677172f1Approve402248222023-03-11 14:51:2588 days 5 hrs ago0x1b0429a5cfcd473c6df9b1f2d937a9dc4b5f30b1 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.007767433485158.60968484
0x60d672512f5a94651f87ff9c17be1b389011962d1e590a694b0dc80771e6743fApprove397920802023-02-28 3:49:3199 days 16 hrs ago0x7843f5a3533e61235abb7250899e2bcad230d182 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.004226732538 85.888249577
0x807147db95d6a94822bfb1a63e3d5429f52343fc40ad7d25469a90a338a5d599Approve397773292023-02-27 18:38:00100 days 1 hr ago0x1b0429a5cfcd473c6df9b1f2d937a9dc4b5f30b1 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.00405175703582.332704119
0xd5b0e10b734752c55d31c71334131d9251332bd97e20409997f5823a13eac1d2Approve397745442023-02-27 16:51:54100 days 3 hrs ago0x1b0429a5cfcd473c6df9b1f2d937a9dc4b5f30b1 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.00457896625 156.214732906
0x310ffb68f0387a8ff51384be2a934c71aebb670bf8003c606ec9d5938cd71e6bApprove395778732023-02-22 6:33:41105 days 13 hrs ago0x1b0429a5cfcd473c6df9b1f2d937a9dc4b5f30b1 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.006887222266139.950058249
0x4f0a154b3e6b98ad936484c7342e0fbd6161c67135493a5052a0779dd7f0338eApprove392738902023-02-14 6:58:05113 days 12 hrs ago0x1b0429a5cfcd473c6df9b1f2d937a9dc4b5f30b1 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.009586578894 195.708372005
0xfcfebb1049c8ad984806bd06c1460465d5ecb00d5d1ea3d461d45819d4dd8119Approve357606792022-11-18 12:29:00201 days 7 hrs ago0x3fe64ba1af1cd44bc49fcc7939c1b81d836eba24 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.001654536121 33.620582812
0x397b7befcee7f4c9a46a7745c0757b11f8521a9fb2d76d553caec29ae1f04009Approve357606402022-11-18 12:27:42201 days 7 hrs ago0x530fcbaac2a70b4c3eb98c5ec912b8157ae8d2b1 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.001998007240.6
0x7944953b5b05d52673370c86f55097261b8647e64c482861c0f2a40e079841b4Approve357093862022-11-17 6:34:45202 days 13 hrs ago0xe66a5a7ddda004ac66926ea8ab91c1b1014dd840 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.003690975
0x8d90f6e594337c724a7108f88ba6805a1525c1527c6abe24aa39935eea3a755eApprove349710492022-10-30 3:30:20220 days 16 hrs ago0xc3bf7c11e0d77f063301cf6a8fbaa5bc77bf3ea5 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.0136415664277.2
0x064abdb542df4697f2e43578583f32e3e41c884a357e98cc10c6a6ca7af8b947Approve349705322022-10-30 3:12:34220 days 16 hrs ago0x3348ab7f495a70d20ecd06022d1ac0a1f32e3ad3 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.001771632 36
0x01a8549f0a1a5e81e8c6e3f891986e3b30c3ce0c8e6d8b38d720634ecb0ab5e4Transfer349704552022-10-30 3:09:56220 days 16 hrs ago0x3348ab7f495a70d20ecd06022d1ac0a1f32e3ad3 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.001840451952 33.271000815
0x349c257e892b97bbe54501cfef8eefb417ac2d30b1058e8479ccd58573b81fb8Transfer318589512022-08-13 22:48:12297 days 21 hrs ago0x791510f103ac73770ec19e80d8ca3ef0fd4e54ed IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.002230965 33.000000014
0xe7206d17114342760c787d45ee9e87270e83285117683478e803485069b8f4bcApprove318576202022-08-13 21:55:30297 days 22 hrs ago0x791510f103ac73770ec19e80d8ca3ef0fd4e54ed IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.000958642271 32.704771811
0xe29f9f2de1ae911b0494e7cdd1884331bb9d159e1519bc228d088f2640051a13Approve318576012022-08-13 21:54:52297 days 22 hrs ago0x791510f103ac73770ec19e80d8ca3ef0fd4e54ed IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.002312964 47
0x97b199411c2ac0e0c82eae460ec614f7e77736a41c21c47fed3b0471fcfb3905Approve316861442022-08-09 6:48:07302 days 13 hrs ago0xa50ff0ffa99273d2dac93ab5791ad3f1cde16640 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.001571116789 31.925481382
0x1df5ce67b84de7ad1d3b093eae06cea50302af8ae51c2ecb97d2a79b724630c2Approve308698242022-07-18 18:15:43324 days 1 hr ago0xa50ff0ffa99273d2dac93ab5791ad3f1cde16640 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.001650596498 33.540528707
0x2caad3ca1695d7ba49014297e01e55bd9bc0f2be100adde416e43e5f167d2a13Approve294361642022-06-11 12:39:17361 days 7 hrs ago0x3348ab7f495a70d20ecd06022d1ac0a1f32e3ad3 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.00221454 45
0xa742d4f0878de85a5ee3a56cd69e6b13805d7e8d298303836a90d52eaa99f7f1Approve275327542022-04-24 20:56:02408 days 23 hrs ago0x1eb0b2fbf6fcdafaab68c463e3ae974dea72fc4b IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.001698451691 34.512958039
0x6e7ec9b3586743abd8f29c98f93d7da482d153a5ac07b1522ab7ebe3f03774c8Approve269433482022-04-09 21:06:02423 days 22 hrs ago0x06f3fffe777d69c0575bf51357d2e965f6385d9b IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.002959629364 60.140400001
0xe9a6ba5a28d8e0ff4f676ffab538b504d7d25e8b664e5124e1fe8f50be22dfbeApprove267037082022-04-03 17:27:49430 days 2 hrs ago0xda558d430ec604e5cf4636588facac361047514d IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.001479803642 30.069975675
0xf75fff80254f6395e3f83cab22d7ebbbde3e98b8b5bd8b523750d996ee62c635Approve266267952022-04-01 18:58:28432 days 59 mins ago0xb18ec277647179c1cee8c2e4f6ec0c8819a33555 IN  0xe4a81c4b5ccfbc12cf13c8a0a892a9da07dd64540 MATIC0.001543770586 31.36979978
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x0465e3043f6a571e497da5bcea9a96476227306e390e0c56215965f2730475a2243765502022-01-31 9:21:15492 days 10 hrs ago 0x729f7f44bf64ce814716b6261e267dbe6cdf021c  Contract Creation0 MATIC
[ Download CSV Export 
Loading

Minimal Proxy Contract for 0x471e1a083d76c4fc9e088fd259f64eff0a37dabd

Contract Name:
CustomERC20

Compiler Version
v0.6.9+commit.3e3065ac

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license
Decompile ByteCode
/**
 *Submitted for verification at polygonscan.com on 2021-07-07
*/

// File: contracts/lib/SafeMath.sol

/*

    Copyright 2020 DODO ZOO.
    SPDX-License-Identifier: Apache-2.0

*/

pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;


/**
 * @title SafeMath
 * @author DODO Breeder
 *
 * @notice Math operations with safety checks that revert on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "MUL_ERROR");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "DIVIDING_ERROR");
        return a / b;
    }

    function divCeil(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 quotient = div(a, b);
        uint256 remainder = a - quotient * b;
        if (remainder > 0) {
            return quotient + 1;
        } else {
            return quotient;
        }
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SUB_ERROR");
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "ADD_ERROR");
        return c;
    }

    function sqrt(uint256 x) internal pure returns (uint256 y) {
        uint256 z = x / 2 + 1;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}

// File: contracts/lib/InitializableOwnable.sol

/**
 * @title Ownable
 * @author DODO Breeder
 *
 * @notice Ownership related functions
 */
contract InitializableOwnable {
    address public _OWNER_;
    address public _NEW_OWNER_;
    bool internal _INITIALIZED_;

    // ============ Events ============

    event OwnershipTransferPrepared(address indexed previousOwner, address indexed newOwner);

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    // ============ Modifiers ============

    modifier notInitialized() {
        require(!_INITIALIZED_, "DODO_INITIALIZED");
        _;
    }

    modifier onlyOwner() {
        require(msg.sender == _OWNER_, "NOT_OWNER");
        _;
    }

    // ============ Functions ============

    function initOwner(address newOwner) public notInitialized {
        _INITIALIZED_ = true;
        _OWNER_ = newOwner;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        emit OwnershipTransferPrepared(_OWNER_, newOwner);
        _NEW_OWNER_ = newOwner;
    }

    function claimOwnership() public {
        require(msg.sender == _NEW_OWNER_, "INVALID_CLAIM");
        emit OwnershipTransferred(_OWNER_, _NEW_OWNER_);
        _OWNER_ = _NEW_OWNER_;
        _NEW_OWNER_ = address(0);
    }
}

// File: contracts/external/ERC20/CustomERC20.sol


contract CustomERC20 is InitializableOwnable {
    using SafeMath for uint256;

    string public name;
    uint8 public decimals;
    string public symbol;
    uint256 public totalSupply;

    uint256 public tradeBurnRatio;
    uint256 public tradeFeeRatio;
    address public team;
    bool public isMintable;

    mapping(address => uint256) balances;
    mapping(address => mapping(address => uint256)) internal allowed;

    event Transfer(address indexed from, address indexed to, uint256 amount);
    event Approval(address indexed owner, address indexed spender, uint256 amount);
    event Mint(address indexed user, uint256 value);
    event Burn(address indexed user, uint256 value);

    event ChangeTeam(address oldTeam, address newTeam);


    function init(
        address _creator,
        uint256 _initSupply,
        string memory _name,
        string memory _symbol,
        uint8 _decimals,
        uint256 _tradeBurnRatio,
        uint256 _tradeFeeRatio,
        address _team,
        bool _isMintable
    ) public {
        initOwner(_creator);
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        totalSupply = _initSupply;
        balances[_creator] = _initSupply;
        require(_tradeBurnRatio >= 0 && _tradeBurnRatio <= 5000, "TRADE_BURN_RATIO_INVALID");
        require(_tradeFeeRatio >= 0 && _tradeFeeRatio <= 5000, "TRADE_FEE_RATIO_INVALID");
        tradeBurnRatio = _tradeBurnRatio;
        tradeFeeRatio = _tradeFeeRatio;
        team = _team;
        isMintable = _isMintable;
        emit Transfer(address(0), _creator, _initSupply);
    }

    function transfer(address to, uint256 amount) public returns (bool) {
        _transfer(msg.sender,to,amount);
        return true;
    }

    function balanceOf(address owner) public view returns (uint256 balance) {
        return balances[owner];
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public returns (bool) {
        require(amount <= allowed[from][msg.sender], "ALLOWANCE_NOT_ENOUGH");
        _transfer(from,to,amount);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(amount);
        return true;
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        allowed[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return allowed[owner][spender];
    }


    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");
        require(balances[sender] >= amount, "ERC20: transfer amount exceeds balance");

        balances[sender] = balances[sender].sub(amount);

        uint256 burnAmount;
        uint256 feeAmount;
        if(tradeBurnRatio > 0) {
            burnAmount = amount.mul(tradeBurnRatio).div(10000);
            balances[address(0)] = balances[address(0)].add(burnAmount);
        }

        if(tradeFeeRatio > 0) {
            feeAmount = amount.mul(tradeFeeRatio).div(10000);
            balances[team] = balances[team].add(feeAmount);
        }

        balances[recipient] = balances[recipient].add(amount.sub(burnAmount).sub(feeAmount));

        emit Transfer(sender, recipient, amount);
    }

    function burn(uint256 value) external {
        require(isMintable, "NOT_MINTABEL_TOKEN");
        require(balances[msg.sender] >= value, "VALUE_NOT_ENOUGH");

        balances[msg.sender] = balances[msg.sender].sub(value);
        totalSupply = totalSupply.sub(value);
        emit Burn(msg.sender, value);
        emit Transfer(msg.sender, address(0), value);
    }

    //=================== Ownable ======================
    function mint(address user, uint256 value) external onlyOwner {
        require(isMintable, "NOT_MINTABEL_TOKEN");
        require(user == _OWNER_, "NOT_OWNER");
        
        balances[user] = balances[user].add(value);
        totalSupply = totalSupply.add(value);
        emit Mint(user, value);
        emit Transfer(address(0), user, value);
    }

    function changeTeamAccount(address newTeam) external onlyOwner {
        require(tradeFeeRatio > 0, "NOT_TRADE_FEE_TOKEN");
        emit ChangeTeam(team,newTeam);
        team = newTeam;
    }
}

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTeam","type":"address"},{"indexed":false,"internalType":"address","name":"newTeam","type":"address"}],"name":"ChangeTeam","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferPrepared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_NEW_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTeam","type":"address"}],"name":"changeTeamAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_creator","type":"address"},{"internalType":"uint256","name":"_initSupply","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"uint256","name":"_tradeBurnRatio","type":"uint256"},{"internalType":"uint256","name":"_tradeFeeRatio","type":"uint256"},{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_isMintable","type":"bool"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"initOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isMintable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"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":"team","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeBurnRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeFeeRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

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.