Contract 0xd111d90e8ac1989c7af2e30018a367305924d130

 

TxHash Block Age From To Value [TxFee]
0x61f4ae4b9125f4a3a31774813cacc243a7103d537454089264fdb2ddc8e586b2708164631 days 15 hrs ago0x4c41c8b19450b6fea76b3919fc1a53daeadb70ec  IN   0xd111d90e8ac1989c7af2e30018a367305924d1300 Ether0.000090594
0xac2e4eac8cd76fc922cb9313a90f025a8abbb6cbc93a6cc754dca65538bda489686905868 days 7 hrs ago0x4c41c8b19450b6fea76b3919fc1a53daeadb70ec  IN   0xd111d90e8ac1989c7af2e30018a367305924d1300 Ether0.000141441
0xa6e32727eb9bcf802921317e9bdb1940d53f0b9e385618d8a3be93ea285e75f46433040139 days 17 hrs ago0x173edc57b548763f05398ba35c5f9dad00d324c5  IN   0xd111d90e8ac1989c7af2e30018a367305924d1300 Ether0.000290944
0x69cacd7378e8ef13192f936924598b66cfa9f21bfcc62c8226151596d50622ac6433032139 days 17 hrs ago0x173edc57b548763f05398ba35c5f9dad00d324c5  IN   0xd111d90e8ac1989c7af2e30018a367305924d1300 Ether0.000410944
[ Download CSV Export 

Latest 1 Internal Transaction Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xca9b78514ed2887a33dd17565e8e0fbfba0b2896ffeb4fca8c23f79f0ce7af2f6428926140 days 10 hrs ago0xe5087c3d9d3d099010aeb8ec48d919f3110cc9c4  Contract Creation0 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Verified Source Code for Contract 0x30ae2beb15dc1e9eb5e8022dba0bd89d2de0eeb8
Contract Name: ERC20Token
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.24;

library SafeMath {
    function add(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a);
    }
    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }
    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }
    function div(uint a, uint b) internal pure returns (uint c) {
        require(b > 0);
        c = a / b;
    }
}

contract ERC20Interface {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

contract ERC20Token is ERC20Interface, Owned {
    using SafeMath for uint;

    string public symbol;
    string public  name;
    uint8 public decimals;
    uint _totalSupply;

    mapping(address => uint) balances;
    mapping(address => mapping(address => uint)) allowed;

    constructor(string _name, string _symbol, uint8 _decimals, uint _supply, address _owner) public {
        symbol = _symbol;
        name = _name;
        decimals = _decimals;
        _totalSupply = _supply * 10**uint(decimals);
        owner = _owner;
        balances[owner] = _totalSupply;
        emit Transfer(address(0), owner, _totalSupply);
    }

    function totalSupply() public view returns (uint) {
        return _totalSupply.sub(balances[address(0)]);
    }

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

    function transfer(address to, uint tokens) public returns (bool success) {
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(msg.sender, to, tokens);
        return true;
    }

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

    function transferFrom(address from, address to, uint tokens) public returns (bool success) {
        balances[from] = balances[from].sub(tokens);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(from, to, tokens);
        return true;
    }

    function allowance(address tokenOwner, address spender) public view returns (uint remaining) {
        return allowed[tokenOwner][spender];
    }

    function () public payable {
        revert();
    }

    function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {
        return ERC20Interface(tokenAddress).transfer(owner, tokens);
    }
}

contract ERC20TokenConstructor {
    event ERC20TokenCreated(address contractAddress, address contractOwner);
    
    function createERC20Token(string _name, string _symbol, uint8 _decimals, uint _supply, address _owner) public {
        ERC20Token ERC20 = new ERC20Token(_name, _symbol, _decimals, _supply, _owner);
        emit ERC20TokenCreated(address(ERC20), _owner);
    }
}

Contract ABI
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"},{"name":"_supply","type":"uint256"},{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]

Contract Creation Code
608060405234801561001057600080fd5b50604051610a74380380610a748339810160409081528151602080840151928401516060850151608086015194860180519490960195949193909261005a91600291870190610103565b50845161006e906003906020880190610103565b506004805460ff191660ff858116919091179182905516600a0a8202600581905560008054600160a060020a031916600160a060020a0384811691909117808355811682526006602090815260408084208590558354815195865290519216937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050505061019e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061014457805160ff1916838001178555610171565b82800160010185558215610171579182015b82811115610171578251825591602001919060010190610156565b5061017d929150610181565b5090565b61019b91905b8082111561017d5760008155600101610187565b90565b6108c7806101ad6000396000f3006080604052600436106100cf5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100d4578063095ea7b31461015e57806318160ddd1461019657806323b872dd146101bd578063313ce567146101e757806370a082311461021257806379ba5097146102335780638da5cb5b1461024a57806395d89b411461027b578063a9059cbb14610290578063d4ee1d90146102b4578063dc39d06d146102c9578063dd62ed3e146102ed578063f2fde38b14610314575b600080fd5b3480156100e057600080fd5b506100e9610335565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012357818101518382015260200161010b565b50505050905090810190601f1680156101505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016a57600080fd5b50610182600160a060020a03600435166024356103c3565b604080519115158252519081900360200190f35b3480156101a257600080fd5b506101ab61042a565b60408051918252519081900360200190f35b3480156101c957600080fd5b50610182600160a060020a036004358116906024351660443561046d565b3480156101f357600080fd5b506101fc610578565b6040805160ff9092168252519081900360200190f35b34801561021e57600080fd5b506101ab600160a060020a0360043516610581565b34801561023f57600080fd5b5061024861059c565b005b34801561025657600080fd5b5061025f610624565b60408051600160a060020a039092168252519081900360200190f35b34801561028757600080fd5b506100e9610633565b34801561029c57600080fd5b50610182600160a060020a036004351660243561068b565b3480156102c057600080fd5b5061025f61073b565b3480156102d557600080fd5b50610182600160a060020a036004351660243561074a565b3480156102f957600080fd5b506101ab600160a060020a0360043581169060243516610805565b34801561032057600080fd5b50610248600160a060020a0360043516610830565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103bb5780601f10610390576101008083540402835291602001916103bb565b820191906000526020600020905b81548152906001019060200180831161039e57829003601f168201915b505050505081565b336000818152600760209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8546005546104689163ffffffff61087616565b905090565b600160a060020a038316600090815260066020526040812054610496908363ffffffff61087616565b600160a060020a03851660009081526006602090815260408083209390935560078152828220338352905220546104d3908363ffffffff61087616565b600160a060020a038086166000908152600760209081526040808320338452825280832094909455918616815260069091522054610517908363ffffffff61088b16565b600160a060020a0380851660008181526006602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60045460ff1681565b600160a060020a031660009081526006602052604090205490565b600154600160a060020a031633146105b357600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156103bb5780601f10610390576101008083540402835291602001916103bb565b336000908152600660205260408120546106ab908363ffffffff61087616565b3360009081526006602052604080822092909255600160a060020a038516815220546106dd908363ffffffff61088b16565b600160a060020a0384166000818152600660209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600154600160a060020a031681565b60008054600160a060020a0316331461076257600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b1580156107d257600080fd5b505af11580156107e6573d6000803e3d6000fd5b505050506040513d60208110156107fc57600080fd5b50519392505050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b600054600160a060020a0316331461084757600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282111561088557600080fd5b50900390565b8181018281101561042457600080fd00a165627a7a72305820034fd292cfa3eb51ff7bbfba7702b8c2a89f8a07a691d115882cf67a449a01ae002900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000e5087c3d9d3d099010aeb8ec48d919f3110cc9c4000000000000000000000000000000000000000000000000000000000000000c436c6f756420426c6f636b73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024342000000000000000000000000000000000000000000000000000000000000


   Swarm Source:
bzzr://034fd292cfa3eb51ff7bbfba7702b8c2a89f8a07a691d115882cf67a449a01ae
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.