Contract 0xaeB5CF31b97dce6134e416129845e01106fFB177 3

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7fd94dae56a7d058afaafdc71ad49b2ee16326304086918200a21aacc8888408Create Std ERC20166152372021-07-07 20:49:28396 days 23 hrs ago0x04d1cdf9fd1122f863126c50fc96cdfcb6400172 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.000474382
0xb6079f3f43fbf5a13d9c74698ad5fcec688ffe28078ce51635ff06fcc21d1da0Create Std ERC20166125932021-07-07 19:15:40397 days 40 mins ago0x04d1cdf9fd1122f863126c50fc96cdfcb6400172 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005085562
0x9aa4d17fca6d13dbd956cdfbd19ecc56dc7494f2acbabffc413bff8ac3769cc1Create Std ERC20166053652021-07-07 14:52:44397 days 5 hrs ago0x39d0daf7ec0eeccc6ee19f162cf2a66a451651f7 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005083882
0x25c01e53da6dcae05707b3c6853021a08d78bd46a8c0294a323bf03b584f4941Create Std ERC20166044912021-07-07 14:20:36397 days 5 hrs ago0xfdd88a45ce43e403ba0c0d6774a13b01b6f75d40 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0004745962
0xb0e4353d4778d9049042eded22f51fbf7d34e0747c4419f0f2bbb27292c447c7Create Std ERC20165956572021-07-07 8:59:31397 days 10 hrs ago0xfdd88a45ce43e403ba0c0d6774a13b01b6f75d40 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0004745242
0x94c8f2b1a099f1783fa6bdd67065db9de8eb9f924d413046ff6ae65d7cf9dab1Create Std ERC20165952522021-07-07 8:45:33397 days 11 hrs ago0xfdd88a45ce43e403ba0c0d6774a13b01b6f75d40 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0004744762
0x8f3b6faef09d3b97586012104ee93c10bd04a90d66000034deac7a985aa7fff5Create Std ERC20165950412021-07-07 8:38:19397 days 11 hrs ago0xfdd88a45ce43e403ba0c0d6774a13b01b6f75d40 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005087722
0x094f489acd2f1b67ab61797913ff314d1171f0d3017ea45788880839ec20509bCreate Std ERC20165910092021-07-07 6:05:53397 days 13 hrs ago0xa74a7fe3c0c67b7fa206bd2e353d1dedd86ef708 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0004745482
0x51dd08aee585f2b6f2e4c3e95a9a1b9be7d1ee7fed0c529db8b9943ea9ad9e96Create Std ERC20165902522021-07-07 5:37:43397 days 14 hrs ago0xf4f7411e44311aeecc6844c63f1a4fee87345db2 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005087242
0x1c6a819cb5218c013cf0a4326a0f20c16fd94c2b0b42858046fac002e34a2bcfCreate Std ERC20165716272021-07-06 18:14:34398 days 1 hr ago0xfce42ee03ffcd58c2ee15f7310ebf56c99b599e8 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005086282
0x9499fc5f525adeee0068f2df8192e00d7fcd5358fa8ddc0f726e0e2a94e5636eCreate Std ERC20165661752021-07-06 14:58:23398 days 4 hrs ago0x075aef12e9d40fd38941cfe8365a95a24226c436 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.000474982
0x5f50dd585309418ee2fcf973283aa32e4999446922e7c470e154d942a2096d5dCreate Std ERC20165589872021-07-06 10:39:22398 days 9 hrs ago0xe4a0c9a1b6c3305b931a8cf4845f175d3f96cee8 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005085562
0x91a23a7ead40a5575d3237e9491944ebb53c142c8302e625deadbfe76e1fd194Create Std ERC20165584632021-07-06 10:21:18398 days 9 hrs ago0x00000000000b383072a2fa0465f41a930ea1bd5f IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005086042
0x405a749a612b990e9358add26ab6d5be5fbfb56c5dbdcbe34aab77d5c049e24dCreate Std ERC20165505242021-07-06 5:24:56398 days 14 hrs ago0xf3d44922cc039a3a36801dbe460f16303d0cc742 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.00050872
0xd81f1c1eb9a8ba6037c8b457c1e6886cce02ad8e8aab879f7e813b1a2769ef99Create Std ERC20165470412021-07-06 3:14:27398 days 16 hrs ago0x6d0df7d6e6467d21942edb7326617b47010e63ce IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005086522
0xe39bc3593a498554a9f0c7b050010928274080578ebe1993b10ca3427b6cc931Create Std ERC20165447622021-07-06 1:47:23398 days 18 hrs ago0x3f281a63c87f05ef3f9aeeeb5746088476991a70 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.00259586860710.2083
0x618c79cefa385ea05809675a3de33ac7fd6bbe2a4b5a867c05e35eed27e68a3aCreate Std ERC20165418912021-07-06 0:00:21398 days 19 hrs ago0x9a0a2d892a15a08bde050e5225175fddd6f1a4f0 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005086042
0x711d159574a857e2fb7c36e4b20e625b818a2366390846f2fb6ed9262fd2bedfCreate Std ERC20165269482021-07-05 14:47:41399 days 5 hrs ago0x075aef12e9d40fd38941cfe8365a95a24226c436 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005244282
0x6cc6eea496db807b3b89aad60b5bca2d8b2d493e47f4cb4ce9bb375548dbc53fCreate Std ERC20165269272021-07-05 14:46:59399 days 5 hrs ago0x075aef12e9d40fd38941cfe8365a95a24226c436 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0004694282
0xc85ab5ff252bdf2aaff3b2dbbe655cc2113f323c3513cea2f90361de7c985409Create Std ERC20165200282021-07-05 10:43:24399 days 9 hrs ago0x318872aa80443332f1b90424714c106a18b8ea85 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0004743322
0x5c829a4012b97f7bf09f4002cb7b072859d9d7e611c21a681d930cabb49148a4Create Std ERC20165198722021-07-05 10:38:04399 days 9 hrs ago0x318872aa80443332f1b90424714c106a18b8ea85 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005086762
0xd03ba86560aeb96cd628c84fcdb89c7c188f89febe4b2df54883b9ab8419462eCreate Std ERC20165141262021-07-05 7:13:58399 days 12 hrs ago0x4cee72fcac8063fa09588ba98b7559da6d7c9b59 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005087722
0xee1783b497a503c5da6dff4854f7f9be1884b0f0dd46621f2baa70c42746a619Create Std ERC20164904722021-07-04 17:02:09400 days 2 hrs ago0x7469bc46dbd4da76b6ed915c0f236472793cb2a9 IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0005087242
0xd6c522bac93e16c19c1d136904d6aa74162049e246f921c12a80731b21081c60Create Std ERC20164896012021-07-04 16:30:07400 days 3 hrs ago0x1109fafbaa93b2f73da7b17f3a1e4cede318d1ca IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.00242204167410.2083
0x67ad114a6c9d733fddb6d06137843882befffa7bfb5dc10d35914948c991c0eeCreate Std ERC20164879182021-07-04 15:30:05400 days 4 hrs ago0x025f82754f82ffa16d09ec8abb0fb99be3f6c33c IN  0xaeb5cf31b97dce6134e416129845e01106ffb1770 MATIC0.0009487124
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20Factory

Compiler Version
v0.6.9+commit.3e3065ac

Optimization Enabled:
Yes with 200 runs

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

// File: contracts/lib/CloneFactory.sol

/*

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

*/

pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;

interface ICloneFactory {
    function clone(address prototype) external returns (address proxy);
}

// introduction of proxy mode design: https://docs.openzeppelin.com/upgrades/2.8/
// minimum implementation of transparent proxy: https://eips.ethereum.org/EIPS/eip-1167

contract CloneFactory is ICloneFactory {
    function clone(address prototype) external override returns (address proxy) {
        bytes20 targetBytes = bytes20(prototype);
        assembly {
            let clone := mload(0x40)
            mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)
            mstore(add(clone, 0x14), targetBytes)
            mstore(
                add(clone, 0x28),
                0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000
            )
            proxy := create(0, clone, 0x37)
        }
        return proxy;
    }
}

// File: contracts/lib/SafeMath.sol


/**
 * @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/external/ERC20/InitializableERC20.sol


contract InitializableERC20 {
    using SafeMath for uint256;

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

    bool public initialized;

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

    function init(
        address _creator,
        uint256 _totalSupply,
        string memory _name,
        string memory _symbol,
        uint256 _decimals
    ) public {
        require(!initialized, "TOKEN_INITIALIZED");
        initialized = true;
        totalSupply = _totalSupply;
        balances[_creator] = _totalSupply;
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        emit Transfer(address(0), _creator, _totalSupply);
    }

    function transfer(address to, uint256 amount) public returns (bool) {
        require(to != address(0), "TO_ADDRESS_IS_EMPTY");
        require(amount <= balances[msg.sender], "BALANCE_NOT_ENOUGH");

        balances[msg.sender] = balances[msg.sender].sub(amount);
        balances[to] = balances[to].add(amount);
        emit 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(to != address(0), "TO_ADDRESS_IS_EMPTY");
        require(amount <= balances[from], "BALANCE_NOT_ENOUGH");
        require(amount <= allowed[from][msg.sender], "ALLOWANCE_NOT_ENOUGH");

        balances[from] = balances[from].sub(amount);
        balances[to] = balances[to].add(amount);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(amount);
        emit Transfer(from, to, 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];
    }
}

// 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/InitializableMintableERC20.sol

contract InitializableMintableERC20 is InitializableOwnable {
    using SafeMath for uint256;

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

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

    function init(
        address _creator,
        uint256 _initSupply,
        string memory _name,
        string memory _symbol,
        uint256 _decimals
    ) public {
        initOwner(_creator);
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        totalSupply = _initSupply;
        balances[_creator] = _initSupply;
        emit Transfer(address(0), _creator, _initSupply);
    }

    function transfer(address to, uint256 amount) public returns (bool) {
        require(to != address(0), "TO_ADDRESS_IS_EMPTY");
        require(amount <= balances[msg.sender], "BALANCE_NOT_ENOUGH");

        balances[msg.sender] = balances[msg.sender].sub(amount);
        balances[to] = balances[to].add(amount);
        emit 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(to != address(0), "TO_ADDRESS_IS_EMPTY");
        require(amount <= balances[from], "BALANCE_NOT_ENOUGH");
        require(amount <= allowed[from][msg.sender], "ALLOWANCE_NOT_ENOUGH");

        balances[from] = balances[from].sub(amount);
        balances[to] = balances[to].add(amount);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(amount);
        emit Transfer(from, to, 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 mint(address user, uint256 value) external onlyOwner {
        balances[user] = balances[user].add(value);
        totalSupply = totalSupply.add(value);
        emit Mint(user, value);
        emit Transfer(address(0), user, value);
    }

    function burn(address user, uint256 value) external onlyOwner {
        balances[user] = balances[user].sub(value);
        totalSupply = totalSupply.sub(value);
        emit Burn(user, value);
        emit Transfer(user, address(0), value);
    }
}

// File: contracts/Factory/ERC20Factory.sol


/**
 * @title DODO ERC20Factory
 * @author DODO Breeder
 *
 * @notice Help user to create erc20 token
 */
contract ERC20Factory {
    // ============ Templates ============

    address public immutable _CLONE_FACTORY_;
    address public immutable _ERC20_TEMPLATE_;
    address public immutable _MINTABLE_ERC20_TEMPLATE_;

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

    event NewERC20(address erc20, address creator, bool isMintable);

    // ============ Registry ============
    // creator -> token address list
    mapping(address => address[]) public _USER_STD_REGISTRY_;

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

    constructor(
        address cloneFactory,
        address erc20Template,
        address mintableErc20Template
    ) public {
        _CLONE_FACTORY_ = cloneFactory;
        _ERC20_TEMPLATE_ = erc20Template;
        _MINTABLE_ERC20_TEMPLATE_ = mintableErc20Template;
    }

    function createStdERC20(
        uint256 totalSupply,
        string memory name,
        string memory symbol,
        uint256 decimals
    ) external returns (address newERC20) {
        newERC20 = ICloneFactory(_CLONE_FACTORY_).clone(_ERC20_TEMPLATE_);
        InitializableERC20(newERC20).init(msg.sender, totalSupply, name, symbol, decimals);
        _USER_STD_REGISTRY_[msg.sender].push(newERC20);
        emit NewERC20(newERC20, msg.sender, false);
    }

    function createMintableERC20(
        uint256 initSupply,
        string memory name,
        string memory symbol,
        uint256 decimals
    ) external returns (address newMintableERC20) {
        newMintableERC20 = ICloneFactory(_CLONE_FACTORY_).clone(_MINTABLE_ERC20_TEMPLATE_);
        InitializableMintableERC20(newMintableERC20).init(
            msg.sender,
            initSupply,
            name,
            symbol,
            decimals
        );
        emit NewERC20(newMintableERC20, msg.sender, true);
    }


    function getTokenByUser(address user) 
        external
        view
        returns (address[] memory tokens)
    {
        return _USER_STD_REGISTRY_[user];
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"cloneFactory","type":"address"},{"internalType":"address","name":"erc20Template","type":"address"},{"internalType":"address","name":"mintableErc20Template","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"erc20","type":"address"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"bool","name":"isMintable","type":"bool"}],"name":"NewERC20","type":"event"},{"inputs":[],"name":"_CLONE_FACTORY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ERC20_TEMPLATE_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MINTABLE_ERC20_TEMPLATE_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"_USER_STD_REGISTRY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"initSupply","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"createMintableERC20","outputs":[{"internalType":"address","name":"newMintableERC20","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"name":"createStdERC20","outputs":[{"internalType":"address","name":"newERC20","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getTokenByUser","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"view","type":"function"}]

60e060405234801561001057600080fd5b506040516108e73803806108e783398101604081905261002f91610056565b6001600160601b0319606093841b811660805291831b821660a05290911b1660c0526100ba565b60008060006060848603121561006a578283fd5b8351610075816100a2565b6020850151909350610086816100a2565b6040850151909250610097816100a2565b809150509250925092565b6001600160a01b03811681146100b757600080fd5b50565b60805160601c60a05160601c60c05160601c6107e461010360003980610140528061034d5250806101a9528061046652508061017c528061032052806104fe52506107e46000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80637d0df67a1161005b5780637d0df67a146100c657806397381760146100d9578063d029d521146100e1578063eb774d05146101015761007d565b806335c70da0146100825780634bd1efca146100ab5780634de3847e146100b3575b600080fd5b6100956100903660046105dd565b610109565b6040516100a291906106c5565b60405180910390f35b61009561013e565b6100956100c1366004610608565b610162565b6100956100d4366004610608565b610306565b610095610464565b6100f46100ef36600461059e565b610488565b6040516100a29190610749565b6100956104fc565b6000602052816000526040600020818154811061012257fe5b6000918252602090912001546001600160a01b03169150829050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516340925bc760e11b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638124b78e906101d1907f0000000000000000000000000000000000000000000000000000000000000000906004016106c5565b602060405180830381600087803b1580156101eb57600080fd5b505af11580156101ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022391906105c1565b604051631f893e4160e21b81529091506001600160a01b03821690637e24f9049061025a90339089908990899089906004016106d9565b600060405180830381600087803b15801561027457600080fd5b505af1158015610288573d6000803e3d6000fd5b505033600081815260208181526040808320805460018101825590845291832090910180546001600160a01b0319166001600160a01b038816179055517faecaa4e876141d4736ce29c208d03e487e49cc05cae31663c3edaf1fdfbf5ef094506102f6935085929190610725565b60405180910390a1949350505050565b6040516340925bc760e11b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638124b78e90610375907f0000000000000000000000000000000000000000000000000000000000000000906004016106c5565b602060405180830381600087803b15801561038f57600080fd5b505af11580156103a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c791906105c1565b604051631f893e4160e21b81529091506001600160a01b03821690637e24f904906103fe90339089908990899089906004016106d9565b600060405180830381600087803b15801561041857600080fd5b505af115801561042c573d6000803e3d6000fd5b505050507faecaa4e876141d4736ce29c208d03e487e49cc05cae31663c3edaf1fdfbf5ef0813360016040516102f693929190610725565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b038116600090815260208181526040918290208054835181840281018401909452808452606093928301828280156104f057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104d2575b50505050509050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600082601f830112610530578081fd5b813567ffffffffffffffff80821115610547578283fd5b604051601f8301601f191681016020018281118282101715610567578485fd5b60405282815292508284830160200186101561058257600080fd5b8260208601602083013760006020848301015250505092915050565b6000602082840312156105af578081fd5b81356105ba81610796565b9392505050565b6000602082840312156105d2578081fd5b81516105ba81610796565b600080604083850312156105ef578081fd5b82356105fa81610796565b946020939093013593505050565b6000806000806080858703121561061d578182fd5b84359350602085013567ffffffffffffffff8082111561063b578384fd5b61064788838901610520565b9450604087013591508082111561065c578384fd5b5061066987828801610520565b949793965093946060013593505050565b60008151808452815b8181101561069f57602081850181015186830182015201610683565b818111156106b05782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b600060018060a01b038716825285602083015260a0604083015261070060a083018661067a565b8281036060840152610712818661067a565b9150508260808301529695505050505050565b6001600160a01b039384168152919092166020820152901515604082015260600190565b6020808252825182820181905260009190848201906040850190845b8181101561078a5783516001600160a01b031683529284019291840191600101610765565b50909695505050505050565b6001600160a01b03811681146107ab57600080fd5b5056fea2646970667358221220ec09f4a5bb39a97ec68cb5ad9c6e4f33830042642182fd52da0f801bcf382fa364736f6c63430006090033000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c000000000000000000000000e8c9a78725d0451fa19878d5f8a3dc0d55fecf250000000000000000000000007737fd30535c69545deeea54ab8dd590ccaebd3c

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c000000000000000000000000e8c9a78725d0451fa19878d5f8a3dc0d55fecf250000000000000000000000007737fd30535c69545deeea54ab8dd590ccaebd3c

-----Decoded View---------------
Arg [0] : cloneFactory (address): 0x729f7f44bf64ce814716b6261e267dbe6cdf021c
Arg [1] : erc20Template (address): 0xe8c9a78725d0451fa19878d5f8a3dc0d55fecf25
Arg [2] : mintableErc20Template (address): 0x7737fd30535c69545deeea54ab8dd590ccaebd3c

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000729f7f44bf64ce814716b6261e267dbe6cdf021c
Arg [1] : 000000000000000000000000e8c9a78725d0451fa19878d5f8a3dc0d55fecf25
Arg [2] : 0000000000000000000000007737fd30535c69545deeea54ab8dd590ccaebd3c


Deployed ByteCode Sourcemap

9624:2028:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10049:56;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9794:50;;;:::i;10449:471::-;;;;;;;;;:::i;10928:541::-;;;;;;;;;:::i;9746:41::-;;;:::i;11479:170::-;;;;;;;;;:::i;:::-;;;;;;;;9699:40;;;:::i;10049:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10049:56:0;;-1:-1:-1;10049:56:0;;-1:-1:-1;10049:56:0:o;9794:50::-;;;:::o;10449:471::-;10655:54;;-1:-1:-1;;;10655:54:0;;10615:16;;-1:-1:-1;;;;;10669:15:0;10655:36;;;;:54;;10692:16;;10655:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10720:82;;-1:-1:-1;;;10720:82:0;;10644:65;;-1:-1:-1;;;;;;10720:33:0;;;;;:82;;10754:10;;10766:11;;10779:4;;10785:6;;10793:8;;10720:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10833:10:0;10813:19;:31;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10813:46:0;-1:-1:-1;;;;;10813:46:0;;;;;10875:37;;;-1:-1:-1;10875:37:0;;-1:-1:-1;10813:46:0;;10833:10;10813:19;10875:37;;;;;;;;;;10449:471;;;;;;:::o;10928:541::-;11154:63;;-1:-1:-1;;;11154:63:0;;11098:24;;-1:-1:-1;;;;;11168:15:0;11154:36;;;;:63;;11191:25;;11154:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11228:173;;-1:-1:-1;;;11228:173:0;;11135:82;;-1:-1:-1;;;;;;11228:49:0;;;;;:173;;11292:10;;11317;;11342:4;;11361:6;;11382:8;;11228:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11417:44;11426:16;11444:10;11456:4;11417:44;;;;;;;;;9746:41;;;:::o;11479:170::-;-1:-1:-1;;;;;11616:25:0;;:19;:25;;;;;;;;;;;;11609:32;;;;;;;;;;;;;;;;;11568:23;;11609:32;;;11616:25;11609:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11609:32:0;;;;;;;;;;;;;;;;;;;;;;;11479:170;;;:::o;9699:40::-;;;:::o;284:442:-1:-;;386:3;379:4;371:6;367:17;363:27;353:2;;-1:-1;;394:12;353:2;441:6;428:20;6808:18;;6800:6;6797:30;6794:2;;;-1:-1;;6830:12;6794:2;6463;6457:9;6903;6884:17;;-1:-1;;6880:33;6489:17;;6971:4;6489:17;6549:34;;;6585:22;;;6546:62;6543:2;;;-1:-1;;6611:12;6543:2;6463;6630:22;534:21;;;454:74;-1:-1;454:74;634:16;;;6971:4;634:16;631:25;-1:-1;628:2;;;669:1;;659:12;628:2;8756:6;6971:4;576:6;572:17;6971:4;610:5;606:16;8733:30;8812:1;6971:4;8803:6;610:5;8794:16;;8787:27;;;;346:380;;;;;871:241;;975:2;963:9;954:7;950:23;946:32;943:2;;;-1:-1;;981:12;943:2;85:6;72:20;97:33;124:5;97:33;;;1033:63;937:175;-1:-1;;;937:175;1119:263;;1234:2;1222:9;1213:7;1209:23;1205:32;1202:2;;;-1:-1;;1240:12;1202:2;226:6;220:13;238:33;265:5;238:33;;1389:366;;;1510:2;1498:9;1489:7;1485:23;1481:32;1478:2;;;-1:-1;;1516:12;1478:2;85:6;72:20;97:33;124:5;97:33;;;1568:63;1668:2;1707:22;;;;801:20;;-1:-1;;;1472:283;1762:829;;;;;1937:3;1925:9;1916:7;1912:23;1908:33;1905:2;;;-1:-1;;1944:12;1905:2;2027:22;801:20;1996:63;;2124:2;2113:9;2109:18;2096:32;2148:18;;2140:6;2137:30;2134:2;;;-1:-1;;2170:12;2134:2;2200:63;2255:7;2246:6;2235:9;2231:22;2200:63;;;2190:73;;2328:2;2317:9;2313:18;2300:32;2286:46;;2148:18;2344:6;2341:30;2338:2;;;-1:-1;;2374:12;2338:2;;2404:63;2459:7;2450:6;2439:9;2435:22;2404:63;;;1899:692;;;;-1:-1;2394:73;;2504:2;2543:22;801:20;;-1:-1;;;1899:692;3999:347;;4144:5;7254:12;7670:6;7665:3;7658:19;-1:-1;8901:101;8915:6;8912:1;8909:13;8901:101;;;7707:4;8982:11;;;;;8976:18;8963:11;;;;;8956:39;8930:10;8901:101;;;9017:6;9014:1;9011:13;9008:2;;;-1:-1;7707:4;9073:6;7702:3;9064:16;;9057:27;9008:2;-1:-1;6903:9;9173:14;-1:-1;;9169:28;4302:39;;;;7707:4;4302:39;;4091:255;-1:-1;;4091:255;4473:222;-1:-1;;;;;8150:54;;;;2990:37;;4600:2;4585:18;;4571:124;4702:860;;6808:18;;8161:42;;;8154:5;8150:54;2866:3;2859:58;4454:5;5162:2;5151:9;5147:18;4424:37;4989:3;5199:2;5188:9;5184:18;5177:48;5239:78;4989:3;4978:9;4974:19;5303:6;5239:78;;;5365:9;5359:4;5355:20;5350:2;5339:9;5335:18;5328:48;5390:78;5463:4;5454:6;5390:78;;;5382:86;;;4454:5;5547:3;5536:9;5532:19;4424:37;4960:602;;;;;;;;;5569:448;-1:-1;;;;;8150:54;;;2990:37;;8150:54;;;;5926:2;5911:18;;2859:58;8062:13;;8055:21;6003:2;5988:18;;3953:34;5754:2;5739:18;;5725:292;6024:370;6201:2;6215:47;;;7254:12;;6186:18;;;7658:19;;;6024:370;;6201:2;7108:14;;;;7698;;;;6024:370;3598:260;3623:6;3620:1;3617:13;3598:260;;;3684:13;;-1:-1;;;;;8150:54;2990:37;;7513:14;;;;2752;;;;6808:18;3638:9;3598:260;;;-1:-1;6268:116;;6172:222;-1:-1;;;;;;6172:222;9210:117;-1:-1;;;;;8150:54;;9269:35;;9259:2;;9318:1;;9308:12;9259:2;9253:74;

Swarm Source

ipfs://ec09f4a5bb39a97ec68cb5ad9c6e4f33830042642182fd52da0f801bcf382fa3
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.