ETH Price: $2,140.51 (-2.42%)

Contract

0x67Ccdc29E59e1c65DeE7283fA6c8b5bb4ce5Cb8d
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer72162732019-02-13 18:47:172591 days ago1550083637IN
EsportsGoldToken
0 ETH0.0015155641
Transfer66805362018-11-10 20:35:512686 days ago1541882151IN
EsportsGoldToken
0 ETH0.000073932
Transfer50834582018-02-13 15:03:242956 days ago1518534204IN
EsportsGoldToken
0 ETH0.001092621
Transfer47100662017-12-10 20:04:393021 days ago1512936279IN
EsportsGoldToken
0.1 ETH0.00086141
Transfer47100292017-12-10 19:55:433021 days ago1512935743IN
EsportsGoldToken
0.1 ETH0.00086141
Mint43902902017-10-19 15:49:363073 days ago1508428176IN
EsportsGoldToken
0 ETH0.000436868
Mint43902882017-10-19 15:49:173073 days ago1508428157IN
EsportsGoldToken
0 ETH0.000436358
Mint43902872017-10-19 15:49:083073 days ago1508428148IN
EsportsGoldToken
0 ETH0.000436868
Mint43902842017-10-19 15:48:183073 days ago1508428098IN
EsportsGoldToken
0 ETH0.000436358
Mint43902802017-10-19 15:47:533073 days ago1508428073IN
EsportsGoldToken
0 ETH0.000436358
Mint43902792017-10-19 15:47:483073 days ago1508428068IN
EsportsGoldToken
0 ETH0.000436358
Mint43902782017-10-19 15:47:243073 days ago1508428044IN
EsportsGoldToken
0 ETH0.000436358
Mint43902712017-10-19 15:44:553073 days ago1508427895IN
EsportsGoldToken
0 ETH0.000435848
Mint43900812017-10-19 15:01:253073 days ago1508425285IN
EsportsGoldToken
0 ETH0.000437378
Mint43898842017-10-19 14:16:083073 days ago1508422568IN
EsportsGoldToken
0 ETH0.000278174
0xe58cd3cb43898702017-10-19 14:12:293073 days ago1508422349IN
EsportsGoldToken
0 ETH0.000173364
Set Parameters43898622017-10-19 14:11:013073 days ago1508422261IN
EsportsGoldToken
0 ETH0.000115764
0x179381d843898462017-10-19 14:07:533073 days ago1508422073IN
EsportsGoldToken
0 ETH0.000255554

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ESGToken

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-10-19
*/

pragma solidity >=0.4.10;

/*  ----------------------------------------------------------------------------------------

    Dev:    "Owned" to ensure control of contracts

            Identical to https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/ownership/Ownable.sol

    ---------------------------------------------------------------------------------------- */
contract Owned {
    address public owner;

    function Owned() {
        owner = msg.sender;
    }

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

    function transferOwnership(address newOwner) onlyOwner {
        owner = newOwner;
    }
}

/*  ----------------------------------------------------------------------------------------

    Dev:    SafeMath library

            Identical to https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol

    ---------------------------------------------------------------------------------------- */
library SafeMath {
  function safeMul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function safeDiv(uint256 a, uint256 b) internal constant returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function safeSub(uint256 a, uint256 b) internal constant returns (uint256) {
    assert(b <= a); // Ensuring no negatives
    return a - b;
  }

  function safeAdd(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a + b;
    assert(c >= a && c>=b);
    return c;
  }
}

/*  ----------------------------------------------------------------------------------------

    Dev:    ESG Asset Holder is called when the token "burn" function is called

    Sum:    Locked to false so users cannot burn their tokens until the Asset Contract is
            put in place with value.

    ---------------------------------------------------------------------------------------- */
contract ESGAssetHolder {
    
    function burn(address _holder, uint _amount) returns (bool result) {

        _holder = 0x0;                              // To avoid variable not used issue on deployment
        _amount = 0;                                // To avoid variable not used issue on deployment
        return false;
    }
}


/*  ----------------------------------------------------------------------------------------

    Dev:    The Esports Gold Token:  ERC20 standard token with MINT and BURN functions

    Func:   Mint, Approve, Transfer, TransferFrom  

    Note:   Mint function takes UNITS of tokens to mint as ICO event is set to have a minimum
            contribution of 1 token. All other functions (transfer etc), the value to transfer
            is the FULL DECIMAL value
            The user is only ever presented with the latter option, therefore should avoid
            any confusion.
    ---------------------------------------------------------------------------------------- */
contract ESGToken is Owned {
        
    string public name = "ESG Token";               // Name of token
    string public symbol = "ESG";                   // Token symbol
    uint256 public decimals = 3;                    // Decimals for the token
    uint256 public totalSupply;                   // Current supply of tokens
    uint256 public supplyCap;                       // Hard cap on supply of tokens
    address public ICOcontroller;                   // Controlling contract from ICO
    address public timelockTokens;                  // Address for locked management tokens
    bool public tokenParametersSet;                        // Ensure that parameters required are set
    bool public controllerSet;                             // Ensure that ICO controller is set

    mapping (address => uint256) public balanceOf;                      // Balances of addresses
    mapping (address => mapping (address => uint)) public allowance;    // Allowances from addresses
    mapping (address => bool) public frozenAccount;                     // Safety mechanism


    modifier onlyControllerOrOwner() {            // Ensures that only contracts can manage key functions
        require(msg.sender == ICOcontroller || msg.sender == owner);
        _;
    }

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Mint(address owner, uint amount);
    event FrozenFunds(address target, bool frozen);
    event Burn(address coinholder, uint amount);
    
    /*  ----------------------------------------------------------------------------------------

    Dev:    Constructor

    param:  Owner:  Address of owner
            Name:   Esports Gold Token
            Sym:    ESG_TKN
            Dec:    3
            Cap:    Hard coded cap to ensure excess tokens cannot be minted

    Other parameters have been set up as a separate function to help lower initial gas deployment cost.

    ---------------------------------------------------------------------------------------- */
    function ESGToken() {
        totalSupply = 0;                      // Starting supply is zero
        supplyCap = 0;                          // Hard cap supply in Tokens set by ICO
        tokenParametersSet = false;             // Ensure parameters are set
        controllerSet = false;                  // Ensure controller is set
    }

    /*  ----------------------------------------------------------------------------------------

    Dev:    Key parameters to setup for ICO event

    Param:  _ico    Address of the ICO Event contract to ensure the ICO event can control
                    the minting function
    
    ---------------------------------------------------------------------------------------- */
    function setICOController(address _ico) onlyOwner {     // ICO event address is locked in
        require(_ico != 0x0);
        ICOcontroller = _ico;
        controllerSet = true;
    }


    /*  ----------------------------------------------------------------------------------------
    NEW
    Dev:    Address for the timelock tokens to be held

    Param:  _timelockAddr   Address of the timelock contract that will hold the locked tokens
    
    ---------------------------------------------------------------------------------------- */
    function setParameters(address _timelockAddr) onlyOwner {
        require(_timelockAddr != 0x0);

        timelockTokens = _timelockAddr;

        tokenParametersSet = true;
    }

    function parametersAreSet() constant returns (bool) {
        return tokenParametersSet && controllerSet;
    }

    /*  ----------------------------------------------------------------------------------------

    Dev:    Set the total number of Tokens that can be minted

    Param:  _supplyCap  The number of tokens (in whole units) that can be minted. This number then
                        gets increased by the decimal number
   
    ---------------------------------------------------------------------------------------- */
    function setTokenCapInUnits(uint256 _supplyCap) onlyControllerOrOwner {   // Supply cap in UNITS
        assert(_supplyCap > 0);
        
        supplyCap = SafeMath.safeMul(_supplyCap, (10**decimals));
    }

    /*  ----------------------------------------------------------------------------------------

    Dev:    Mint the number of tokens for the timelock contract

    Param:  _mMentTkns  Number of tokens in whole units that need to be locked into the Timelock
    
    ---------------------------------------------------------------------------------------- */
    function mintLockedTokens(uint256 _mMentTkns) onlyControllerOrOwner {
        assert(_mMentTkns > 0);
        assert(tokenParametersSet);

        mint(timelockTokens, _mMentTkns);  
    }

    /*  ----------------------------------------------------------------------------------------

    Dev:    ERC20 protocols
    
    ---------------------------------------------------------------------------------------- */
    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balanceOf[_owner];
    }

    /*  ----------------------------------------------------------------------------------------

    Dev:    Mint ESG Tokens by controller

    Control:            OnlyControllers. ICO event needs to be able to control the minting
                        function

    Param:  Address     Address for tokens to be minted to
            Amount      Number of tokens to be minted (in whole UNITS. Min minting is 1 token)
                        Minimum ETH contribution in ICO event is 0.01ETH at 100 tokens per ETH
    
    ---------------------------------------------------------------------------------------- */
    function mint(address _address, uint _amount) onlyControllerOrOwner {
        require(_address != 0x0);
        uint256 amount = SafeMath.safeMul(_amount, (10**decimals));             // Tokens minted using unit parameter supplied

        // Ensure that supplyCap is set and that new tokens don't breach cap
        assert(supplyCap > 0 && amount > 0 && SafeMath.safeAdd(totalSupply, amount) <= supplyCap);
        
        balanceOf[_address] = SafeMath.safeAdd(balanceOf[_address], amount);    // Add tokens to address
        totalSupply = SafeMath.safeAdd(totalSupply, amount);                // Add to supply
        
        Mint(_address, amount);
        Transfer(0x0, _address, amount);
    }
    
    /*  ----------------------------------------------------------------------------------------

    Dev:    ERC20 standard transfer function

    Param:  _to         Address to send to
            _value      Number of tokens to be sent - in FULL decimal length
    
    Ref:    https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/BasicToken.sol
    ---------------------------------------------------------------------------------------- */
    function transfer(address _to, uint _value) returns (bool success) {
        require(!frozenAccount[msg.sender]);        // Ensure account is not frozen

        /* 
            Update balances from "from" and "to" addresses with the tokens transferred
            safeSub method ensures that address sender has enough tokens to send
        */
        balanceOf[msg.sender] = SafeMath.safeSub(balanceOf[msg.sender], _value);    
        balanceOf[_to] = SafeMath.safeAdd(balanceOf[_to], _value);                  
        Transfer(msg.sender, _to, _value);
        
        return true;
    }
    
    /*  ----------------------------------------------------------------------------------------

    Dev:    ERC20 standard transferFrom function

    Param:  _from       Address to send from
            _to         Address to send to
            Amount      Number of tokens to be sent - in FULL decimal length

    ---------------------------------------------------------------------------------------- */
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {   
        require(!frozenAccount[_from]);                         // Check account is not frozen
        
        /* 
            Ensure sender has been authorised to send the required number of tokens
        */
        if (allowance[_from][msg.sender] < _value)
            return false;

        /* 
            Update allowance of sender to reflect tokens sent
        */
        allowance[_from][msg.sender] = SafeMath.safeSub(allowance[_from][msg.sender], _value); 

        /* 
            Update balances from "from" and "to" addresses with the tokens transferred
            safeSub method ensures that address sender has enough tokens to send
        */
        balanceOf[_from] = SafeMath.safeSub(balanceOf[_from], _value);
        balanceOf[_to] = SafeMath.safeAdd(balanceOf[_to], _value);

        Transfer(_from, _to, _value);
        return true;
    }
    
    /*  ----------------------------------------------------------------------------------------

    Dev:    ERC20 standard approve function

    Param:  _spender        Address of sender who is approved
            _value          The number of tokens (full decimals) that are approved

    ---------------------------------------------------------------------------------------- */
    function approve(address _spender, uint256 _value)      // FULL DECIMALS OF TOKENS
        returns (bool success)
    {
        require(!frozenAccount[msg.sender]);                // Check account is not frozen

        /* Requiring the user to set to zero before resetting to nonzero */
        if ((_value != 0) && (allowance[msg.sender][_spender] != 0)) {
           return false;
        }

        allowance[msg.sender][_spender] = _value;
        
        Approval(msg.sender, _spender, _value);
        return true;
    }

    /*  ----------------------------------------------------------------------------------------

    Dev:    Function to check the amount of tokens that the owner has allowed the "spender" to
            transfer

    Param:  _owner          Address of the authoriser who owns the tokens
            _spender        Address of sender who will be authorised to spend the tokens

    ---------------------------------------------------------------------------------------- */

    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
        return allowance[_owner][_spender];
    }
    
    /*  ----------------------------------------------------------------------------------------

    Dev:    As ESG is aiming to be a regulated betting operator. Regulatory hurdles may require
            this function if an account on the betting platform, using the token, breaches
            a regulatory requirement.

            ESG can then engage with the account holder to get it unlocked

            This does not stop the token accruing value from its share of the Asset Contract

    Param:  _target         Address of account
            _freeze         Boolean to lock/unlock account

    Ref:    This is a replica of the code as per https://ethereum.org/token
    ---------------------------------------------------------------------------------------- */
    function freezeAccount(address target, bool freeze) onlyOwner {
        frozenAccount[target] = freeze;
        FrozenFunds(target, freeze);
    }

    /*  ----------------------------------------------------------------------------------------

    Dev:    Burn function: User is able to burn their token for a share of the ESG Asset Contract

    Note:   Deployed with the ESG Asset Contract set to false to ensure token holders cannot
            accidentally burn their tokens for zero value

    Param:  _amount         Number of tokens (full decimals) that should be burnt

    Ref:    Based on the open source TokenCard Burn function. A copy can be found at
            https://github.com/bokkypoobah/TokenCardICOAnalysis
    ---------------------------------------------------------------------------------------- */
    function burn(uint _amount) returns (bool result) {

        if (_amount > balanceOf[msg.sender])
            return false;       // If owner has enough to burn

        /* 
            Remove tokens from circulation
            Update sender's balance of tokens
        */
        balanceOf[msg.sender] = SafeMath.safeSub(balanceOf[msg.sender], _amount);
        totalSupply = SafeMath.safeSub(totalSupply, _amount);

        // Call burn function
        result = esgAssetHolder.burn(msg.sender, _amount);
        require(result);

        Burn(msg.sender, _amount);
    }

    /*  ----------------------------------------------------------------------------------------

    Dev:    Section of the contract that links to the ESG Asset Contract

    Note:   Deployed with the ESG Asset Contract set to false to ensure token holders cannot
            accidentally burn their tokens for zero value

    Param:  _amount         Number of tokens (full decimals) that should be burnt

    Ref:    Based on the open source TokenCard Burn function. A copy can be found at
            https://github.com/bokkypoobah/TokenCardICOAnalysis
    ---------------------------------------------------------------------------------------- */

    ESGAssetHolder esgAssetHolder;              // Holds the accumulated asset contract
    bool lockedAssetHolder;                     // Will be locked to stop tokenholder to be upgraded

    function lockAssetHolder() onlyOwner {      // Locked once deployed
        lockedAssetHolder = true;
    }

    function setAssetHolder(address _assetAdress) onlyOwner {   // Used to lock in the Asset Contract
        assert(!lockedAssetHolder);             // Check that we haven't locked the asset holder yet
        esgAssetHolder = ESGAssetHolder(_assetAdress);
    }    
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"controllerSet","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ico","type":"address"}],"name":"setICOController","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"parametersAreSet","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"lockAssetHolder","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenParametersSet","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"burn","outputs":[{"name":"result","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_timelockAddr","type":"address"}],"name":"setParameters","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"supplyCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_mMentTkns","type":"uint256"}],"name":"mintLockedTokens","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_assetAdress","type":"address"}],"name":"setAssetHolder","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_supplyCap","type":"uint256"}],"name":"setTokenCapInUnits","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ICOcontroller","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"timelockTokens","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"coinholder","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burn","type":"event"}]

60a0604052600960608190527f45534720546f6b656e00000000000000000000000000000000000000000000006080908152620000409160019190620000d6565b506040805180820190915260038082527f455347000000000000000000000000000000000000000000000000000000000060209092019182526200008791600291620000d6565b50600360035534156200009657fe5b5b5b60008054600160a060020a03191633600160a060020a03161790555b600060048190556005556007805460a060020a61ffff02191690555b62000180565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011957805160ff191683800117855562000149565b8280016001018555821562000149579182015b82811115620001495782518255916020019190600101906200012c565b5b50620001589291506200015c565b5090565b6200017d91905b8082111562000158576000815560010162000163565b5090565b90565b6111ff80620001906000396000f3006060604052361561015c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302072579811461015e57806306fdde0314610182578063095ea7b314610212578063179381d81461024557806318160ddd1461026357806323b872dd14610285578063313ce567146102be57806338cf2087146102e05780633a6a2a69146103045780633c1e60a61461031657806340c10f191461033a57806342966c681461035b578063490377a71461038257806370a08231146103a05780638da5cb5b146103ce5780638f770ad0146103fa57806395d89b411461041c57806397bb0de0146104ac578063990f412f146104c1578063a9059cbb146104df578063b414d4b614610512578063dd62ed3e14610542578063e58cd3cb14610576578063e724529c1461058b578063e9c9db5c146105ae578063f2fde38b146105da578063f85cd33e146105f8575bfe5b341561016657fe5b61016e610624565b604080519115158252519081900360200190f35b341561018a57fe5b610192610646565b6040805160208082528351818301528351919283929083019185019080838382156101d8575b8051825260208311156101d857601f1990920191602091820191016101b8565b505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021a57fe5b61016e600160a060020a03600435166024356106d3565b604080519115158252519081900360200190f35b341561024d57fe5b610261600160a060020a03600435166107a1565b005b341561026b57fe5b610273610839565b60408051918252519081900360200190f35b341561028d57fe5b61016e600160a060020a036004358116906024351660443561083f565b604080519115158252519081900360200190f35b34156102c657fe5b6102736109a0565b60408051918252519081900360200190f35b34156102e857fe5b61016e6109a6565b604080519115158252519081900360200190f35b341561030c57fe5b6102616109e3565b005b341561031e57fe5b61016e610a27565b604080519115158252519081900360200190f35b341561034257fe5b610261600160a060020a0360043516602435610a37565b005b341561036357fe5b61016e600435610ba3565b604080519115158252519081900360200190f35b341561038a57fe5b610261600160a060020a0360043516610cfb565b005b34156103a857fe5b610273600160a060020a0360043516610d7a565b60408051918252519081900360200190f35b34156103d657fe5b6103de610d99565b60408051600160a060020a039092168252519081900360200190f35b341561040257fe5b610273610da8565b60408051918252519081900360200190f35b341561042457fe5b610192610dae565b6040805160208082528351818301528351919283929083019185019080838382156101d8575b8051825260208311156101d857601f1990920191602091820191016101b8565b505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104b457fe5b610261600435610e39565b005b34156104c957fe5b610261600160a060020a0360043516610eaa565b005b34156104e757fe5b61016e600160a060020a0360043516602435610f07565b604080519115158252519081900360200190f35b341561051a57fe5b61016e600160a060020a0360043516610fe2565b604080519115158252519081900360200190f35b341561054a57fe5b610273600160a060020a0360043581169060243516610ff7565b60408051918252519081900360200190f35b341561057e57fe5b610261600435611024565b005b341561059357fe5b610261600160a060020a0360043516602435151561107c565b005b34156105b657fe5b6103de6110fe565b60408051600160a060020a039092168252519081900360200190f35b34156105e257fe5b610261600160a060020a036004351661110d565b005b341561060057fe5b6103de611156565b60408051600160a060020a039092168252519081900360200190f35b6007547501000000000000000000000000000000000000000000900460ff1681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106cb5780601f106106a0576101008083540402835291602001916106cb565b820191906000526020600020905b8154815290600101906020018083116106ae57829003601f168201915b505050505081565b600160a060020a0333166000908152600a602052604081205460ff16156106fa5760006000fd5b811580159061072d5750600160a060020a0333811660009081526009602090815260408083209387168352929052205415155b1561073a5750600061079b565b600160a060020a03338116600081815260096020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b92915050565b60005433600160a060020a039081169116146107bd5760006000fd5b600160a060020a03811615156107d35760006000fd5b60068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556007805475ff000000000000000000000000000000000000000000191675010000000000000000000000000000000000000000001790555b5b50565b60045481565b600160a060020a0383166000908152600a602052604081205460ff16156108665760006000fd5b600160a060020a03808516600090815260096020908152604080832033909416835292905220548290101561089d57506000610999565b600160a060020a03808516600090815260096020908152604080832033909416835292905220546108ce9083611165565b600160a060020a03808616600081815260096020908152604080832033909516835293815283822094909455908152600890925290205461090f9083611165565b600160a060020a03808616600090815260086020526040808220939093559085168152205461093e908361117c565b600160a060020a0380851660008181526008602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b9392505050565b60035481565b60075460009060a060020a900460ff1680156109dd57506007547501000000000000000000000000000000000000000000900460ff165b90505b90565b60005433600160a060020a039081169116146109ff5760006000fd5b600b805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60075460a060020a900460ff1681565b60065460009033600160a060020a0390811691161480610a65575060005433600160a060020a039081169116145b1515610a715760006000fd5b600160a060020a0383161515610a875760006000fd5b610a9682600354600a0a6111a4565b90506000600554118015610aaa5750600081115b8015610ac35750600554610ac06004548361117c565b11155b1515610acb57fe5b600160a060020a038316600090815260086020526040902054610aee908261117c565b600160a060020a038416600090815260086020526040902055600454610b14908261117c565b60045560408051600160a060020a03851681526020810183905281517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885929181900390910190a1604080518281529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35b5b505050565b600160a060020a033316600090815260086020526040812054821115610bcb57506000610cf6565b600160a060020a033316600090815260086020526040902054610bee9083611165565b600160a060020a033316600090815260086020526040902055600454610c149083611165565b6004908155600b54604080516000602091820181905282517f9dc29fac000000000000000000000000000000000000000000000000000000008152600160a060020a03338116968201969096526024810188905292519490931693639dc29fac936044808501948390030190829087803b1515610c8d57fe5b6102c65a03f11515610c9b57fe5b505060405151915050801515610cb15760006000fd5b60408051600160a060020a03331681526020810184905281517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5929181900390910190a15b919050565b60005433600160a060020a03908116911614610d175760006000fd5b600160a060020a0381161515610d2d5760006000fd5b6007805460a060020a73ffffffffffffffffffffffffffffffffffffffff19909116600160a060020a0384161774ff000000000000000000000000000000000000000019161790555b5b50565b600160a060020a0381166000908152600860205260409020545b919050565b600054600160a060020a031681565b60055481565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106cb5780601f106106a0576101008083540402835291602001916106cb565b820191906000526020600020905b8154815290600101906020018083116106ae57829003601f168201915b505050505081565b60065433600160a060020a0390811691161480610e64575060005433600160a060020a039081169116145b1515610e705760006000fd5b60008111610e7a57fe5b60075460a060020a900460ff161515610e8f57fe5b60075461083590600160a060020a031682610a37565b5b5b50565b60005433600160a060020a03908116911614610ec65760006000fd5b600b5460a060020a900460ff1615610eda57fe5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a0333166000908152600a602052604081205460ff1615610f2e5760006000fd5b600160a060020a033316600090815260086020526040902054610f519083611165565b600160a060020a033381166000908152600860205260408082209390935590851681522054610f80908361117c565b600160a060020a038085166000818152600860209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b92915050565b600a6020526000908152604090205460ff1681565b600160a060020a038083166000908152600960209081526040808320938516835292905220545b92915050565b60065433600160a060020a039081169116148061104f575060005433600160a060020a039081169116145b151561105b5760006000fd5b6000811161106557fe5b61107481600354600a0a6111a4565b6005555b5b50565b60005433600160a060020a039081169116146110985760006000fd5b600160a060020a0382166000818152600a6020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15b5b5050565b600654600160a060020a031681565b60005433600160a060020a039081169116146111295760006000fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600754600160a060020a031681565b60008282111561117157fe5b508082035b92915050565b60008282018381108015906111915750828110155b151561119957fe5b8091505b5092915050565b600082820283158061119157508284828115156111bd57fe5b04145b151561119957fe5b8091505b50929150505600a165627a7a723058209651feccf0f562624e1377e02235995cfd2669aeceb3727c972a32b37748ad980029

Deployed Bytecode

0x6060604052361561015c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302072579811461015e57806306fdde0314610182578063095ea7b314610212578063179381d81461024557806318160ddd1461026357806323b872dd14610285578063313ce567146102be57806338cf2087146102e05780633a6a2a69146103045780633c1e60a61461031657806340c10f191461033a57806342966c681461035b578063490377a71461038257806370a08231146103a05780638da5cb5b146103ce5780638f770ad0146103fa57806395d89b411461041c57806397bb0de0146104ac578063990f412f146104c1578063a9059cbb146104df578063b414d4b614610512578063dd62ed3e14610542578063e58cd3cb14610576578063e724529c1461058b578063e9c9db5c146105ae578063f2fde38b146105da578063f85cd33e146105f8575bfe5b341561016657fe5b61016e610624565b604080519115158252519081900360200190f35b341561018a57fe5b610192610646565b6040805160208082528351818301528351919283929083019185019080838382156101d8575b8051825260208311156101d857601f1990920191602091820191016101b8565b505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021a57fe5b61016e600160a060020a03600435166024356106d3565b604080519115158252519081900360200190f35b341561024d57fe5b610261600160a060020a03600435166107a1565b005b341561026b57fe5b610273610839565b60408051918252519081900360200190f35b341561028d57fe5b61016e600160a060020a036004358116906024351660443561083f565b604080519115158252519081900360200190f35b34156102c657fe5b6102736109a0565b60408051918252519081900360200190f35b34156102e857fe5b61016e6109a6565b604080519115158252519081900360200190f35b341561030c57fe5b6102616109e3565b005b341561031e57fe5b61016e610a27565b604080519115158252519081900360200190f35b341561034257fe5b610261600160a060020a0360043516602435610a37565b005b341561036357fe5b61016e600435610ba3565b604080519115158252519081900360200190f35b341561038a57fe5b610261600160a060020a0360043516610cfb565b005b34156103a857fe5b610273600160a060020a0360043516610d7a565b60408051918252519081900360200190f35b34156103d657fe5b6103de610d99565b60408051600160a060020a039092168252519081900360200190f35b341561040257fe5b610273610da8565b60408051918252519081900360200190f35b341561042457fe5b610192610dae565b6040805160208082528351818301528351919283929083019185019080838382156101d8575b8051825260208311156101d857601f1990920191602091820191016101b8565b505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104b457fe5b610261600435610e39565b005b34156104c957fe5b610261600160a060020a0360043516610eaa565b005b34156104e757fe5b61016e600160a060020a0360043516602435610f07565b604080519115158252519081900360200190f35b341561051a57fe5b61016e600160a060020a0360043516610fe2565b604080519115158252519081900360200190f35b341561054a57fe5b610273600160a060020a0360043581169060243516610ff7565b60408051918252519081900360200190f35b341561057e57fe5b610261600435611024565b005b341561059357fe5b610261600160a060020a0360043516602435151561107c565b005b34156105b657fe5b6103de6110fe565b60408051600160a060020a039092168252519081900360200190f35b34156105e257fe5b610261600160a060020a036004351661110d565b005b341561060057fe5b6103de611156565b60408051600160a060020a039092168252519081900360200190f35b6007547501000000000000000000000000000000000000000000900460ff1681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106cb5780601f106106a0576101008083540402835291602001916106cb565b820191906000526020600020905b8154815290600101906020018083116106ae57829003601f168201915b505050505081565b600160a060020a0333166000908152600a602052604081205460ff16156106fa5760006000fd5b811580159061072d5750600160a060020a0333811660009081526009602090815260408083209387168352929052205415155b1561073a5750600061079b565b600160a060020a03338116600081815260096020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b92915050565b60005433600160a060020a039081169116146107bd5760006000fd5b600160a060020a03811615156107d35760006000fd5b60068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556007805475ff000000000000000000000000000000000000000000191675010000000000000000000000000000000000000000001790555b5b50565b60045481565b600160a060020a0383166000908152600a602052604081205460ff16156108665760006000fd5b600160a060020a03808516600090815260096020908152604080832033909416835292905220548290101561089d57506000610999565b600160a060020a03808516600090815260096020908152604080832033909416835292905220546108ce9083611165565b600160a060020a03808616600081815260096020908152604080832033909516835293815283822094909455908152600890925290205461090f9083611165565b600160a060020a03808616600090815260086020526040808220939093559085168152205461093e908361117c565b600160a060020a0380851660008181526008602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b9392505050565b60035481565b60075460009060a060020a900460ff1680156109dd57506007547501000000000000000000000000000000000000000000900460ff165b90505b90565b60005433600160a060020a039081169116146109ff5760006000fd5b600b805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60075460a060020a900460ff1681565b60065460009033600160a060020a0390811691161480610a65575060005433600160a060020a039081169116145b1515610a715760006000fd5b600160a060020a0383161515610a875760006000fd5b610a9682600354600a0a6111a4565b90506000600554118015610aaa5750600081115b8015610ac35750600554610ac06004548361117c565b11155b1515610acb57fe5b600160a060020a038316600090815260086020526040902054610aee908261117c565b600160a060020a038416600090815260086020526040902055600454610b14908261117c565b60045560408051600160a060020a03851681526020810183905281517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885929181900390910190a1604080518281529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35b5b505050565b600160a060020a033316600090815260086020526040812054821115610bcb57506000610cf6565b600160a060020a033316600090815260086020526040902054610bee9083611165565b600160a060020a033316600090815260086020526040902055600454610c149083611165565b6004908155600b54604080516000602091820181905282517f9dc29fac000000000000000000000000000000000000000000000000000000008152600160a060020a03338116968201969096526024810188905292519490931693639dc29fac936044808501948390030190829087803b1515610c8d57fe5b6102c65a03f11515610c9b57fe5b505060405151915050801515610cb15760006000fd5b60408051600160a060020a03331681526020810184905281517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5929181900390910190a15b919050565b60005433600160a060020a03908116911614610d175760006000fd5b600160a060020a0381161515610d2d5760006000fd5b6007805460a060020a73ffffffffffffffffffffffffffffffffffffffff19909116600160a060020a0384161774ff000000000000000000000000000000000000000019161790555b5b50565b600160a060020a0381166000908152600860205260409020545b919050565b600054600160a060020a031681565b60055481565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106cb5780601f106106a0576101008083540402835291602001916106cb565b820191906000526020600020905b8154815290600101906020018083116106ae57829003601f168201915b505050505081565b60065433600160a060020a0390811691161480610e64575060005433600160a060020a039081169116145b1515610e705760006000fd5b60008111610e7a57fe5b60075460a060020a900460ff161515610e8f57fe5b60075461083590600160a060020a031682610a37565b5b5b50565b60005433600160a060020a03908116911614610ec65760006000fd5b600b5460a060020a900460ff1615610eda57fe5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a0333166000908152600a602052604081205460ff1615610f2e5760006000fd5b600160a060020a033316600090815260086020526040902054610f519083611165565b600160a060020a033381166000908152600860205260408082209390935590851681522054610f80908361117c565b600160a060020a038085166000818152600860209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b92915050565b600a6020526000908152604090205460ff1681565b600160a060020a038083166000908152600960209081526040808320938516835292905220545b92915050565b60065433600160a060020a039081169116148061104f575060005433600160a060020a039081169116145b151561105b5760006000fd5b6000811161106557fe5b61107481600354600a0a6111a4565b6005555b5b50565b60005433600160a060020a039081169116146110985760006000fd5b600160a060020a0382166000818152600a6020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15b5b5050565b600654600160a060020a031681565b60005433600160a060020a039081169116146111295760006000fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600754600160a060020a031681565b60008282111561117157fe5b508082035b92915050565b60008282018381108015906111915750828110155b151561119957fe5b8091505b5092915050565b600082820283158061119157508284828115156111bd57fe5b04145b151561119957fe5b8091505b50929150505600a165627a7a723058209651feccf0f562624e1377e02235995cfd2669aeceb3727c972a32b37748ad980029

Swarm Source

bzzr://9651feccf0f562624e1377e02235995cfd2669aeceb3727c972a32b37748ad98

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.