ETH Price: $3,233.02 (+3.19%)
Gas: 6 Gwei

Contract

0xE477292f1B3268687A29376116B0ED27A9c76170
 
Transaction Hash
Method
Block
From
To
Value
0xe5773e2a2ff37800f5ecb5f879333d59dd746b30f04cd09863a155d829673816Transfer(pending)2024-04-27 17:48:431 hr ago1714240123IN
Herocoin Token
0 ETH(Pending)(Pending)
Transfer197354482024-04-25 22:44:4744 hrs ago1714085087IN
Herocoin Token
0 ETH0.000558395.9237201
Approve197305162024-04-25 6:12:472 days ago1714025567IN
Herocoin Token
0 ETH0.000374378.00458268
Approve197305072024-04-25 6:10:592 days ago1714025459IN
Herocoin Token
0 ETH0.000283356.05855518
Transfer197179482024-04-23 11:58:354 days ago1713873515IN
Herocoin Token
0 ETH0.0005010210.04369842
Transfer197178222024-04-23 11:33:234 days ago1713872003IN
Herocoin Token
0 ETH0.0005108810.23886945
Transfer197173242024-04-23 9:53:474 days ago1713866027IN
Herocoin Token
0 ETH0.000696228.00991001
Approve196939442024-04-20 3:27:597 days ago1713583679IN
Herocoin Token
0 ETH0.00031226.67530792
Transfer196694362024-04-16 17:08:5911 days ago1713287339IN
Herocoin Token
0 ETH0.0025947322.3412129
Transfer196662472024-04-16 6:25:5911 days ago1713248759IN
Herocoin Token
0 ETH0.0005208311.54299466
Transfer196270692024-04-10 18:38:4717 days ago1712774327IN
Herocoin Token
0 ETH0.0013279629.43912439
Transfer196269352024-04-10 18:11:5917 days ago1712772719IN
Herocoin Token
0 ETH0.0017385221.17338786
Transfer196257612024-04-10 14:15:3517 days ago1712758535IN
Herocoin Token
0 ETH0.0023475535.03968419
Transfer196178862024-04-09 11:47:5918 days ago1712663279IN
Herocoin Token
0 ETH0.0011008924.40518126
Transfer196175622024-04-09 10:42:2318 days ago1712659343IN
Herocoin Token
0 ETH0.0015842323.64633448
Transfer196107532024-04-08 11:48:2319 days ago1712576903IN
Herocoin Token
0 ETH0.0008670319.21567601
Transfer196098592024-04-08 8:47:4719 days ago1712566067IN
Herocoin Token
0 ETH0.0015944719.41901305
Transfer195920492024-04-05 20:55:1121 days ago1712350511IN
Herocoin Token
0 ETH0.0019988424.3402204
Approve195772942024-04-03 19:20:5924 days ago1712172059IN
Herocoin Token
0 ETH0.0016494835.26806789
Transfer195751242024-04-03 12:04:3524 days ago1712145875IN
Herocoin Token
0 ETH0.0012011124.07185319
Transfer195751082024-04-03 12:01:2324 days ago1712145683IN
Herocoin Token
0 ETH0.0016689924.91148325
Approve195734772024-04-03 6:31:1124 days ago1712125871IN
Herocoin Token
0 ETH0.001015621.83813004
Approve195505912024-03-31 1:23:1127 days ago1711848191IN
Herocoin Token
0 ETH0.0009559720.43988958
Transfer195412832024-03-29 17:57:2329 days ago1711735043IN
Herocoin Token
0 ETH0.0022311327.17682769
Approve195364622024-03-29 1:43:1129 days ago1711676591IN
Herocoin Token
0 ETH0.0012206826.09967451
View all transactions

Latest 13 internal transactions

Advanced mode:
Parent Transaction Hash Block From To Value
67755362018-11-26 9:59:571979 days ago1543226397
Herocoin Token
501.96 ETH
64460362018-10-03 13:49:212033 days ago1538574561
Herocoin Token
2,200 ETH
57877062018-06-14 13:45:502144 days ago1528983950
Herocoin Token
1,000 ETH
47596382017-12-19 11:11:342321 days ago1513681894
Herocoin Token
200 ETH
47596282017-12-19 11:09:112321 days ago1513681751
Herocoin Token
200 ETH
47596212017-12-19 11:07:542321 days ago1513681674
Herocoin Token
200 ETH
47596152017-12-19 11:06:142321 days ago1513681574
Herocoin Token
200 ETH
47596032017-12-19 11:03:402321 days ago1513681420
Herocoin Token
200 ETH
47595852017-12-19 10:59:392321 days ago1513681179
Herocoin Token
200 ETH
43885192017-10-19 9:01:552382 days ago1508403715
Herocoin Token
200 ETH
43885082017-10-19 8:59:512382 days ago1508403591
Herocoin Token
200 ETH
43884882017-10-19 8:52:362382 days ago1508403156
Herocoin Token
200 ETH
43822692017-10-18 8:56:312383 days ago1508316991
Herocoin Token
550 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HeroCoin

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 0 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-09-14
*/

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

  function div(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 sub(uint256 a, uint256 b) internal constant returns (uint256) {
    assert(b <= a);
    return a - b;
  }

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

contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) constant returns (uint256);
  function transfer(address to, uint256 value) returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) returns (bool) {
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) constant returns (uint256 balance) {
    return balances[_owner];
  }

}

contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) constant returns (uint256);
  function transferFrom(address from, address to, uint256 value) returns (bool);
  function approve(address spender, uint256 value) returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract StandardToken is ERC20, BasicToken {

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


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amout of tokens to be transfered
   */
  function transferFrom(address _from, address _to, uint256 _value) returns (bool) {
    var _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // require (_value <= _allowance);

    balances[_to] = balances[_to].add(_value);
    balances[_from] = balances[_from].sub(_value);
    allowed[_from][msg.sender] = _allowance.sub(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender.
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) returns (bool) {

    // To change the approve amount you first have to reduce the addresses`
    //  allowance to zero by calling `approve(_spender, 0)` if it is not
    //  already 0 to mitigate the race condition described here:
    //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    require((_value == 0) || (allowed[msg.sender][_spender] == 0));

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

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifing the amount of tokens still avaible for the spender.
   */
  function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

}

contract HeroCoin is StandardToken {

    // data structures
    enum States {
    Initial, // deployment time
    ValuationSet,
    Ico, // whitelist addresses, accept funds, update balances
    Underfunded, // ICO time finished and minimal amount not raised
    Operational, // manage contests
    Paused         // for contract upgrades
    }

    //should be constant, but is not, to avoid compiler warning
    address public  rakeEventPlaceholderAddress = 0x0000000000000000000000000000000000000000;

    string public constant name = "Herocoin";

    string public constant symbol = "PLAY";

    uint8 public constant decimals = 18;

    mapping (address => bool) public whitelist;

    address public initialHolder;

    address public stateControl;

    address public whitelistControl;

    address public withdrawControl;

    States public state;

    uint256 public weiICOMinimum;

    uint256 public weiICOMaximum;

    uint256 public silencePeriod;

    uint256 public startAcceptingFundsBlock;

    uint256 public endBlock;

    uint256 public ETH_HEROCOIN; //number of herocoins per ETH

    mapping (address => uint256) lastRakePoints;


    uint256 pointMultiplier = 1e18; //100% = 1*10^18 points
    uint256 totalRakePoints; //total amount of rakes ever paid out as a points value. increases monotonically, but the number range is 2^256, that's enough.
    uint256 unclaimedRakes; //amount of coins unclaimed. acts like a special entry to balances
    uint256 constant percentForSale = 30;

    mapping (address => bool) public contests; // true if this address holds a contest

    //this creates the contract and stores the owner. it also passes in 3 addresses to be used later during the lifetime of the contract.
    function HeroCoin(address _stateControl, address _whitelistControl, address _withdraw, address _initialHolder) {
        initialHolder = _initialHolder;
        stateControl = _stateControl;
        whitelistControl = _whitelistControl;
        withdrawControl = _withdraw;
        moveToState(States.Initial);
        weiICOMinimum = 0;
        //to be overridden
        weiICOMaximum = 0;
        endBlock = 0;
        ETH_HEROCOIN = 0;
        totalSupply = 2000000000 * pointMultiplier;
        //sets the value in the superclass.
        balances[initialHolder] = totalSupply;
        //initially, initialHolder has 100%
    }

    event ContestAnnouncement(address addr);

    event Whitelisted(address addr);

    event Credited(address addr, uint balance, uint txAmount);

    event StateTransition(States oldState, States newState);

    modifier onlyWhitelist() {
        require(msg.sender == whitelistControl);
        _;
    }

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

    modifier onlyStateControl() {
        require(msg.sender == stateControl);
        _;
    }

    modifier onlyWithdraw() {
        require(msg.sender == withdrawControl);
        _;
    }

    modifier requireState(States _requiredState) {
        require(state == _requiredState);
        _;
    }

    /**
    BEGIN ICO functions
    */

    //this is the main funding function, it updates the balances of Herocoins during the ICO.
    //no particular incentive schemes have been implemented here
    //it is only accessible during the "ICO" phase.
    function() payable
    requireState(States.Ico)
    {
        require(whitelist[msg.sender] == true);
        require(this.balance <= weiICOMaximum); //note that msg.value is already included in this.balance
        require(block.number < endBlock);
        require(block.number >= startAcceptingFundsBlock);
        uint256 heroCoinIncrease = msg.value * ETH_HEROCOIN;
        balances[initialHolder] -= heroCoinIncrease;
        balances[msg.sender] += heroCoinIncrease;
        Credited(msg.sender, balances[msg.sender], msg.value);
    }

    function moveToState(States _newState)
    internal
    {
        StateTransition(state, _newState);
        state = _newState;
    }

    // ICO contract configuration function
    // newEthICOMinimum is the minimum amount of funds to raise
    // newEthICOMaximum is the maximum amount of funds to raise
    // silencePeriod is a number of blocks to wait after starting the ICO. No funds are accepted during the silence period. It can be set to zero.
    // newEndBlock is the absolute block number at which the ICO must stop. It must be set after now + silence period.
    function updateEthICOThresholds(uint256 _newWeiICOMinimum, uint256 _newWeiICOMaximum, uint256 _silencePeriod, uint256 _newEndBlock)
    onlyStateControl
    {
        require(state == States.Initial || state == States.ValuationSet);
        require(_newWeiICOMaximum > _newWeiICOMinimum);
        require(block.number + silencePeriod < _newEndBlock);
        require(block.number < _newEndBlock);
        weiICOMinimum = _newWeiICOMinimum;
        weiICOMaximum = _newWeiICOMaximum;
        silencePeriod = _silencePeriod;
        endBlock = _newEndBlock;
        // initial conversion rate of ETH_HEROCOIN set now, this is used during the Ico phase.
        ETH_HEROCOIN = ((totalSupply * percentForSale) / 100) / weiICOMaximum;
        // check pointMultiplier
        moveToState(States.ValuationSet);
    }

    function startICO()
    onlyStateControl
    requireState(States.ValuationSet)
    {
        require(block.number < endBlock);
        require(block.number + silencePeriod < endBlock);
        startAcceptingFundsBlock = block.number + silencePeriod;
        moveToState(States.Ico);
    }


    function endICO()
    onlyStateControl
    requireState(States.Ico)
    {
        if (this.balance < weiICOMinimum) {
            moveToState(States.Underfunded);
        }
        else {
            burnUnsoldCoins();
            moveToState(States.Operational);
        }
    }

    function anyoneEndICO()
    requireState(States.Ico)
    {
        require(block.number > endBlock);
        if (this.balance < weiICOMinimum) {
            moveToState(States.Underfunded);
        }
        else {
            burnUnsoldCoins();
            moveToState(States.Operational);
        }
    }

    function burnUnsoldCoins()
    internal
    {
        uint256 soldcoins = this.balance * ETH_HEROCOIN;
        totalSupply = soldcoins * 100 / percentForSale;
        balances[initialHolder] = totalSupply - soldcoins;
        //slashing the initial supply, so that the ico is selling 30% total
    }

    function addToWhitelist(address _whitelisted)
    onlyWhitelist
        //    requireState(States.Ico)
    {
        whitelist[_whitelisted] = true;
        Whitelisted(_whitelisted);
    }


    //emergency pause for the ICO
    function pause()
    onlyStateControl
    requireState(States.Ico)
    {
        moveToState(States.Paused);
    }

    //in case we want to completely abort
    function abort()
    onlyStateControl
    requireState(States.Paused)
    {
        moveToState(States.Underfunded);
    }

    //un-pause
    function resumeICO()
    onlyStateControl
    requireState(States.Paused)
    {
        moveToState(States.Ico);
    }

    //in case of a failed/aborted ICO every investor can get back their money
    function requestRefund()
    requireState(States.Underfunded)
    {
        require(balances[msg.sender] > 0);
        //there is no need for updateAccount(msg.sender) since the token never became active.
        uint256 payout = balances[msg.sender] / ETH_HEROCOIN;
        //reverse calculate the amount to pay out
        balances[msg.sender] = 0;
        msg.sender.transfer(payout);
    }

    //after the ico has run its course, the withdraw account can drain funds bit-by-bit as needed.
    function requestPayout(uint _amount)
    onlyWithdraw //very important!
    requireState(States.Operational)
    {
        msg.sender.transfer(_amount);
    }
    /**
    END ICO functions
    */

    /**
    BEGIN ERC20 functions
    */
    function transfer(address _to, uint256 _value)
    requireState(States.Operational)
    updateAccount(msg.sender) //update senders rake before transfer, so they can access their full balance
    updateAccount(_to) //update receivers rake before transfer as well, to avoid over-attributing rake
    enforceRake(msg.sender, _value)
    returns (bool success) {
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value)
    requireState(States.Operational)
    updateAccount(_from) //update senders rake before transfer, so they can access their full balance
    updateAccount(_to) //update receivers rake before transfer as well, to avoid over-attributing rake
    enforceRake(_from, _value)
    returns (bool success) {
        return super.transferFrom(_from, _to, _value);
    }

    function balanceOf(address _account)
    constant
    returns (uint256 balance) {
        return balances[_account] + rakesOwing(_account);
    }

    function payRake(uint256 _value)
    requireState(States.Operational)
    updateAccount(msg.sender)
    returns (bool success) {
        return payRakeInternal(msg.sender, _value);
    }


    function
    payRakeInternal(address _sender, uint256 _value)
    internal
    returns (bool success) {

        if (balances[_sender] <= _value) {
            return false;
        }
        if (_value != 0) {
            Transfer(_sender, rakeEventPlaceholderAddress, _value);
            balances[_sender] -= _value;
            unclaimedRakes += _value;
            //   calc amount of points from total:
            uint256 pointsPaid = _value * pointMultiplier / totalSupply;
            totalRakePoints += pointsPaid;
        }
        return true;

    }
    /**
    END ERC20 functions
    */
    /**
    BEGIN Rake modifier updateAccount
    */
    modifier updateAccount(address _account) {
        uint256 owing = rakesOwing(_account);
        if (owing != 0) {
            unclaimedRakes -= owing;
            balances[_account] += owing;
            Transfer(rakeEventPlaceholderAddress, _account, owing);
        }
        //also if 0 this needs to be called, since lastRakePoints need the right value
        lastRakePoints[_account] = totalRakePoints;
        _;
    }

    //todo use safemath.sol
    function rakesOwing(address _account)
    internal
    constant
    returns (uint256) {//returns always > 0 value
        //how much is _account owed, denominated in points from total supply
        uint256 newRakePoints = totalRakePoints - lastRakePoints[_account];
        //always positive
        //weigh by my balance (dimension HC*10^18)
        uint256 basicPoints = balances[_account] * newRakePoints;
        //still positive
        //normalize to dimension HC by moving comma left by 18 places
        return (basicPoints) / pointMultiplier;
    }
    /**
    END Rake modifier updateAccount
    */

    // contest management functions

    modifier enforceRake(address _contest, uint256 _value){
        //we calculate 1% of the total value, rounded up. division would round down otherwise.
        //explicit brackets illustrate that the calculation only round down when dividing by 100, to avoid an expression
        // like value * (99/100)
        if (contests[_contest]) {
            uint256 toPay = _value - ((_value * 99) / 100);
            bool paid = payRakeInternal(_contest, toPay);
            require(paid);
        }
        _;
    }

    // all functions require HeroCoin operational state


    // registerContest declares a contest to HeroCoin.
    // It must be called from an address that has HeroCoin.
    // This address is recorded as the contract admin.
    function registerContest()
    {
        contests[msg.sender] = true;
        ContestAnnouncement(msg.sender);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"stateControl","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"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":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"anyoneEndICO","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"abort","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"silencePeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"whitelistControl","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"endICO","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"registerContest","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"withdrawControl","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"startICO","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newWeiICOMinimum","type":"uint256"},{"name":"_newWeiICOMaximum","type":"uint256"},{"name":"_silencePeriod","type":"uint256"},{"name":"_newEndBlock","type":"uint256"}],"name":"updateEthICOThresholds","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"payRake","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"requestPayout","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startAcceptingFundsBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ETH_HEROCOIN","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"resumeICO","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contests","outputs":[{"name":"","type":"bool"}],"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":"initialHolder","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"rakeEventPlaceholderAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"requestRefund","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiICOMaximum","outputs":[{"name":"","type":"uint256"}],"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":"_whitelisted","type":"address"}],"name":"addToWhitelist","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiICOMinimum","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_stateControl","type":"address"},{"name":"_whitelistControl","type":"address"},{"name":"_withdraw","type":"address"},{"name":"_initialHolder","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"ContestAnnouncement","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"balance","type":"uint256"},{"indexed":false,"name":"txAmount","type":"uint256"}],"name":"Credited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldState","type":"uint8"},{"indexed":false,"name":"newState","type":"uint8"}],"name":"StateTransition","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":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

606060405260038054600160a060020a0319169055670de0b6b3a7640000601055341561002857fe5b60405160808061193f83398101604090815281516020830151918301516060909301519092905b60058054600160a060020a03808416600160a060020a031992831617909255600680548784169083161790556007805486841690831617905560088054928516929091169190911790556100b060006401000000006115986100f582021704565b60006009819055600a819055600d819055600e819055601054637735940002808255600554600160a060020a0316825260016020526040909120555b5050505061019b565b7f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f7600860149054906101000a900460ff16826040518083600581111561013757fe5b60ff16815260200182600581111561014b57fe5b60ff1681526020019250505060405180910390a16008805482919060a060020a60ff0219167401000000000000000000000000000000000000000083600581111561019257fe5b02179055505b50565b611795806101aa6000396000f3006060604052361561019b5763ffffffff60e060020a60003504166304b2bf9981146102b857806306fdde03146102e4578063083c632314610374578063095ea7b31461039657806318160ddd146103c957806323b872dd146103eb578063313ce5671461042457806332b3c3231461044a57806335a063b41461045c5780633cae09ac1461046e57806341f1d4dd146104905780634f248409146104bc578063668cc7d8146104ce5780636aa9c82b146104e057806370a082311461050c5780637fa8c1581461053a5780637fe98ae01461054c5780638456cb591461056a57806385cf61ef1461057c5780638f97e3a0146105a357806390c79af9146105b857806395d89b41146105da5780639b19251a1461066a5780639c9ff9341461069a5780639cbd7da5146106bc578063a348ea79146106ce578063a9059cbb146106fe578063b72218e314610731578063c19d93fb1461075d578063d40e9b9c14610791578063d5cef133146107bd578063d6fea306146107cf578063dd62ed3e146107f1578063e43252d714610825578063f4e6848614610843575b6102b65b60006002805b60085460a060020a900460ff1660058111156101bd57fe5b146101c85760006000fd5b600160a060020a03331660009081526004602052604090205460ff1615156001146101f35760006000fd5b600a54600160a060020a03301631111561020d5760006000fd5b600d54431061021c5760006000fd5b600c5443101561022c5760006000fd5b600e54600554600160a060020a03908116600090815260016020908152604080832080543496870290819003909155339094168084529281902080548501908190558151938452918301919091528181019390935291519093507f796a6ec99f41042b589b3c8dfab9ec6ae027e9c6599a6a4e311aa00a19ebdb1f9181900360600190a15b5b5050565b005b34156102c057fe5b6102c8610865565b60408051600160a060020a039092168252519081900360200190f35b34156102ec57fe5b6102f4610874565b60408051602080825283518183015283519192839290830191850190808383821561033a575b80518252602083111561033a57601f19909201916020918201910161031a565b505050905090810190601f1680156103665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037c57fe5b610384610899565b60408051918252519081900360200190f35b341561039e57fe5b6103b5600160a060020a036004351660243561089f565b604080519115158252519081900360200190f35b34156103d157fe5b610384610944565b60408051918252519081900360200190f35b34156103f357fe5b6103b5600160a060020a036004358116906024351660443561094a565b604080519115158252519081900360200190f35b341561042c57fe5b610434610ae6565b6040805160ff9092168252519081900360200190f35b341561045257fe5b6102b6610aeb565b005b341561046457fe5b6102b6610b5c565b005b341561047657fe5b610384610baf565b60408051918252519081900360200190f35b341561049857fe5b6102c8610bb5565b60408051600160a060020a039092168252519081900360200190f35b34156104c457fe5b6102b6610bc4565b005b34156104d657fe5b6102b6610c43565b005b34156104e857fe5b6102c8610c9e565b60408051600160a060020a039092168252519081900360200190f35b341561051457fe5b610384600160a060020a0360043516610cad565b60408051918252519081900360200190f35b341561054257fe5b6102b6610cda565b005b341561055457fe5b6102b6600435602435604435606435610d57565b005b341561057257fe5b6102b6610e2b565b005b341561058457fe5b6103b5600435610e7e565b604080519115158252519081900360200190f35b34156105ab57fe5b6102b6600435610f41565b005b34156105c057fe5b610384610fb8565b60408051918252519081900360200190f35b34156105e257fe5b6102f4610fbe565b60408051602080825283518183015283519192839290830191850190808383821561033a575b80518252602083111561033a57601f19909201916020918201910161031a565b505050905090810190601f1680156103665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561067257fe5b6103b5600160a060020a0360043516610fdf565b604080519115158252519081900360200190f35b34156106a257fe5b610384610ff4565b60408051918252519081900360200190f35b34156106c457fe5b6102b6610ffa565b005b34156106d657fe5b6103b5600160a060020a036004351661104d565b604080519115158252519081900360200190f35b341561070657fe5b6103b5600160a060020a0360043516602435611062565b604080519115158252519081900360200190f35b341561073957fe5b6102c86111fc565b60408051600160a060020a039092168252519081900360200190f35b341561076557fe5b61076d61120b565b6040518082600581111561077d57fe5b60ff16815260200191505060405180910390f35b341561079957fe5b6102c861121b565b60408051600160a060020a039092168252519081900360200190f35b34156107c557fe5b6102b661122a565b005b34156107d757fe5b6103846112e4565b60408051918252519081900360200190f35b34156107f957fe5b610384600160a060020a03600435811690602435166112ea565b60408051918252519081900360200190f35b341561082d57fe5b6102b6600160a060020a0360043516611317565b005b341561084b57fe5b610384611390565b60408051918252519081900360200190f35b600654600160a060020a031681565b604080518082019091526008815260c160020a672432b937b1b7b4b702602082015281565b600d5481565b60008115806108d15750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b15156108dd5760006000fd5b600160a060020a03338116600081815260026020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b92915050565b60005481565b60006004805b60085460a060020a900460ff16600581111561096857fe5b146109735760006000fd5b84600061097f82611396565b905080156109da57601280548290039055600160a060020a03808316600081815260016020908152604091829020805486019055600354825186815292519394169260008051602061174a8339815191529281900390910190a35b601154600160a060020a0383166000908152600f60205260408120919091558690610a0482611396565b90508015610a5f57601280548290039055600160a060020a03808316600081815260016020908152604091829020805486019055600354825186815292519394169260008051602061174a8339815191529281900390910190a35b601154600160a060020a038084166000908152600f6020908152604080832094909455918c1681526013909152908120548a918991819060ff1615610ac3576064606384025b0483039150610ab484836113de565b9050801515610ac35760006000fd5b5b610acf8d8d8d611495565b99505b5b505050505b50505b50505b509392505050565b601281565b6002805b60085460a060020a900460ff166005811115610b0757fe5b14610b125760006000fd5b600d544311610b215760006000fd5b60095430600160a060020a0316311015610b4457610b3f6003611598565b610b56565b610b4c61162d565b610b566004611598565b5b5b5b50565b60065433600160a060020a03908116911614610b785760006000fd5b6005805b60085460a060020a900460ff166005811115610b9457fe5b14610b9f5760006000fd5b610b566003611598565b5b5b505b565b600b5481565b600754600160a060020a031681565b60065433600160a060020a03908116911614610be05760006000fd5b6002805b60085460a060020a900460ff166005811115610bfc57fe5b14610b215760006000fd5b60095430600160a060020a0316311015610b4457610b3f6003611598565b610b56565b610b4c61162d565b610b566004611598565b5b5b5b505b565b600160a060020a033316600081815260136020908152604091829020805460ff19166001179055815192835290517f06af741459b5a0d3d47ca6d61fd6c648735feeee9a8136e2b85d9a8b24de669d9281900390910190a15b565b600854600160a060020a031681565b6000610cb882611396565b600160a060020a0383166000908152600160205260409020540190505b919050565b60065433600160a060020a03908116911614610cf65760006000fd5b6001805b60085460a060020a900460ff166005811115610d1257fe5b14610d1d5760006000fd5b600d544310610d2c5760006000fd5b600d54600b54430110610d3f5760006000fd5b600b544301600c55610b566002611598565b5b5b505b565b60065433600160a060020a03908116911614610d735760006000fd5b60005b60085460a060020a900460ff166005811115610d8e57fe5b1480610db2575060015b60085460a060020a900460ff166005811115610db057fe5b145b1515610dbe5760006000fd5b838311610dcb5760006000fd5b600b544301819010610ddd5760006000fd5b43819010610deb5760006000fd5b6009849055600a839055600b829055600d8190556000548390606490601e025b04811515610e1557fe5b04600e55610e236001611598565b5b5b50505050565b60065433600160a060020a03908116911614610e475760006000fd5b6002805b60085460a060020a900460ff166005811115610e6357fe5b14610e6e5760006000fd5b610b566005611598565b5b5b505b565b60006004805b60085460a060020a900460ff166005811115610e9c57fe5b14610ea75760006000fd5b336000610eb382611396565b90508015610f0e57601280548290039055600160a060020a03808316600081815260016020908152604091829020805486019055600354825186815292519394169260008051602061174a8339815191529281900390910190a35b601154600160a060020a0383166000908152600f6020526040902055610f3433866113de565b93505b5b50505b50919050565b60085433600160a060020a03908116911614610f5d5760006000fd5b6004805b60085460a060020a900460ff166005811115610f7957fe5b14610f845760006000fd5b604051600160a060020a0333169083156108fc029084906000818181858888f1935050505015156102b157fe5b5b5b505b50565b600c5481565b604080518082019091526004815260e060020a63504c415902602082015281565b60046020526000908152604090205460ff1681565b600e5481565b60065433600160a060020a039081169116146110165760006000fd5b6005805b60085460a060020a900460ff16600581111561103257fe5b1461103d5760006000fd5b610b566002611598565b5b5b505b565b60136020526000908152604090205460ff1681565b60006004805b60085460a060020a900460ff16600581111561108057fe5b1461108b5760006000fd5b33600061109782611396565b905080156110f257601280548290039055600160a060020a03808316600081815260016020908152604091829020805486019055600354825186815292519394169260008051602061174a8339815191529281900390910190a35b601154600160a060020a0383166000908152600f6020526040812091909155869061111c82611396565b9050801561117757601280548290039055600160a060020a03808316600081815260016020908152604091829020805486019055600354825186815292519394169260008051602061174a8339815191529281900390910190a35b601154600160a060020a038084166000908152600f6020908152604080832094909455339283168252601390529182205490918991819060ff16156111db576064606384025b04830391506111cc84836113de565b90508015156111db5760006000fd5b5b6111e68c8c61166a565b99505b5b505050505b50505b50505b5092915050565b600554600160a060020a031681565b60085460a060020a900460ff1681565b600354600160a060020a031681565b60006003805b60085460a060020a900460ff16600581111561124857fe5b146112535760006000fd5b600160a060020a033316600090815260016020526040812054116112775760006000fd5b600e54600160a060020a03331660009081526001602052604090205481151561129c57fe5b600160a060020a033316600081815260016020526040808220829055519390920494509184156108fc0291859190818181858888f1935050505015156102b157fe5b5b5b5050565b600a5481565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60075433600160a060020a039081169116146113335760006000fd5b600160a060020a038116600081815260046020908152604091829020805460ff19166001179055815192835290517faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a549281900390910190a15b5b50565b60095481565b600160a060020a0381166000908152600f60209081526040808320546011546001909352908320546010549190920391820290818115156113d357fe5b0492505b5050919050565b600160a060020a038216600090815260016020526040812054819083901161140957600091506111f5565b821561148957600354604080518581529051600160a060020a039283169287169160008051602061174a833981519152919081900360200190a3600160a060020a038416600090815260016020526040812080548590039055601280548501905554601054840281151561147957fe5b6011805492909104918201905590505b600191505b5092915050565b600160a060020a0380841660009081526002602090815260408083203385168452825280832054938616835260019091528120549091906114dc908463ffffffff61171816565b600160a060020a038086166000908152600160205260408082209390935590871681522054611511908463ffffffff61173216565b600160a060020a03861660009081526001602052604090205561153a818463ffffffff61173216565b600160a060020a0380871660008181526002602090815260408083203386168452825291829020949094558051878152905192881693919260008051602061174a833981519152929181900390910190a3600191505b509392505050565b7f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f7600860149054906101000a900460ff1682604051808360058111156115da57fe5b60ff1681526020018260058111156115ee57fe5b60ff1681526020019250505060405180910390a16008805482919060a060020a60ff02191660a060020a83600581111561162457fe5b02179055505b50565b600e54600160a060020a0330163102601e606482025b046000818155600554600160a060020a031681526001602052604090209082900390555b50565b600160a060020a033316600090815260016020526040812054611693908363ffffffff61173216565b600160a060020a0333811660009081526001602052604080822093909355908516815220546116c8908363ffffffff61171816565b600160a060020a0380851660008181526001602090815260409182902094909455805186815290519193339093169260008051602061174a83398151915292918290030190a35060015b92915050565b60008282018381101561172757fe5b8091505b5092915050565b60008282111561173e57fe5b508082035b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058205fcb08ea06eac693ba961a68be16cf0717a08e06227f44eca044be73123dd49c002900000000000000000000000010ca9409265c2938167856725945db35da3ca149000000000000000000000000d076556513165ee138cfb054a84f7b48154c466700000000000000000000000052245ee29f243ff3a55b720c32dee77eb1dce33400000000000000000000000038b50101cce32a15e906a32bfda0939d01a1776f

Deployed Bytecode

0x6060604052361561019b5763ffffffff60e060020a60003504166304b2bf9981146102b857806306fdde03146102e4578063083c632314610374578063095ea7b31461039657806318160ddd146103c957806323b872dd146103eb578063313ce5671461042457806332b3c3231461044a57806335a063b41461045c5780633cae09ac1461046e57806341f1d4dd146104905780634f248409146104bc578063668cc7d8146104ce5780636aa9c82b146104e057806370a082311461050c5780637fa8c1581461053a5780637fe98ae01461054c5780638456cb591461056a57806385cf61ef1461057c5780638f97e3a0146105a357806390c79af9146105b857806395d89b41146105da5780639b19251a1461066a5780639c9ff9341461069a5780639cbd7da5146106bc578063a348ea79146106ce578063a9059cbb146106fe578063b72218e314610731578063c19d93fb1461075d578063d40e9b9c14610791578063d5cef133146107bd578063d6fea306146107cf578063dd62ed3e146107f1578063e43252d714610825578063f4e6848614610843575b6102b65b60006002805b60085460a060020a900460ff1660058111156101bd57fe5b146101c85760006000fd5b600160a060020a03331660009081526004602052604090205460ff1615156001146101f35760006000fd5b600a54600160a060020a03301631111561020d5760006000fd5b600d54431061021c5760006000fd5b600c5443101561022c5760006000fd5b600e54600554600160a060020a03908116600090815260016020908152604080832080543496870290819003909155339094168084529281902080548501908190558151938452918301919091528181019390935291519093507f796a6ec99f41042b589b3c8dfab9ec6ae027e9c6599a6a4e311aa00a19ebdb1f9181900360600190a15b5b5050565b005b34156102c057fe5b6102c8610865565b60408051600160a060020a039092168252519081900360200190f35b34156102ec57fe5b6102f4610874565b60408051602080825283518183015283519192839290830191850190808383821561033a575b80518252602083111561033a57601f19909201916020918201910161031a565b505050905090810190601f1680156103665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037c57fe5b610384610899565b60408051918252519081900360200190f35b341561039e57fe5b6103b5600160a060020a036004351660243561089f565b604080519115158252519081900360200190f35b34156103d157fe5b610384610944565b60408051918252519081900360200190f35b34156103f357fe5b6103b5600160a060020a036004358116906024351660443561094a565b604080519115158252519081900360200190f35b341561042c57fe5b610434610ae6565b6040805160ff9092168252519081900360200190f35b341561045257fe5b6102b6610aeb565b005b341561046457fe5b6102b6610b5c565b005b341561047657fe5b610384610baf565b60408051918252519081900360200190f35b341561049857fe5b6102c8610bb5565b60408051600160a060020a039092168252519081900360200190f35b34156104c457fe5b6102b6610bc4565b005b34156104d657fe5b6102b6610c43565b005b34156104e857fe5b6102c8610c9e565b60408051600160a060020a039092168252519081900360200190f35b341561051457fe5b610384600160a060020a0360043516610cad565b60408051918252519081900360200190f35b341561054257fe5b6102b6610cda565b005b341561055457fe5b6102b6600435602435604435606435610d57565b005b341561057257fe5b6102b6610e2b565b005b341561058457fe5b6103b5600435610e7e565b604080519115158252519081900360200190f35b34156105ab57fe5b6102b6600435610f41565b005b34156105c057fe5b610384610fb8565b60408051918252519081900360200190f35b34156105e257fe5b6102f4610fbe565b60408051602080825283518183015283519192839290830191850190808383821561033a575b80518252602083111561033a57601f19909201916020918201910161031a565b505050905090810190601f1680156103665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561067257fe5b6103b5600160a060020a0360043516610fdf565b604080519115158252519081900360200190f35b34156106a257fe5b610384610ff4565b60408051918252519081900360200190f35b34156106c457fe5b6102b6610ffa565b005b34156106d657fe5b6103b5600160a060020a036004351661104d565b604080519115158252519081900360200190f35b341561070657fe5b6103b5600160a060020a0360043516602435611062565b604080519115158252519081900360200190f35b341561073957fe5b6102c86111fc565b60408051600160a060020a039092168252519081900360200190f35b341561076557fe5b61076d61120b565b6040518082600581111561077d57fe5b60ff16815260200191505060405180910390f35b341561079957fe5b6102c861121b565b60408051600160a060020a039092168252519081900360200190f35b34156107c557fe5b6102b661122a565b005b34156107d757fe5b6103846112e4565b60408051918252519081900360200190f35b34156107f957fe5b610384600160a060020a03600435811690602435166112ea565b60408051918252519081900360200190f35b341561082d57fe5b6102b6600160a060020a0360043516611317565b005b341561084b57fe5b610384611390565b60408051918252519081900360200190f35b600654600160a060020a031681565b604080518082019091526008815260c160020a672432b937b1b7b4b702602082015281565b600d5481565b60008115806108d15750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b15156108dd5760006000fd5b600160a060020a03338116600081815260026020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b92915050565b60005481565b60006004805b60085460a060020a900460ff16600581111561096857fe5b146109735760006000fd5b84600061097f82611396565b905080156109da57601280548290039055600160a060020a03808316600081815260016020908152604091829020805486019055600354825186815292519394169260008051602061174a8339815191529281900390910190a35b601154600160a060020a0383166000908152600f60205260408120919091558690610a0482611396565b90508015610a5f57601280548290039055600160a060020a03808316600081815260016020908152604091829020805486019055600354825186815292519394169260008051602061174a8339815191529281900390910190a35b601154600160a060020a038084166000908152600f6020908152604080832094909455918c1681526013909152908120548a918991819060ff1615610ac3576064606384025b0483039150610ab484836113de565b9050801515610ac35760006000fd5b5b610acf8d8d8d611495565b99505b5b505050505b50505b50505b509392505050565b601281565b6002805b60085460a060020a900460ff166005811115610b0757fe5b14610b125760006000fd5b600d544311610b215760006000fd5b60095430600160a060020a0316311015610b4457610b3f6003611598565b610b56565b610b4c61162d565b610b566004611598565b5b5b5b50565b60065433600160a060020a03908116911614610b785760006000fd5b6005805b60085460a060020a900460ff166005811115610b9457fe5b14610b9f5760006000fd5b610b566003611598565b5b5b505b565b600b5481565b600754600160a060020a031681565b60065433600160a060020a03908116911614610be05760006000fd5b6002805b60085460a060020a900460ff166005811115610bfc57fe5b14610b215760006000fd5b60095430600160a060020a0316311015610b4457610b3f6003611598565b610b56565b610b4c61162d565b610b566004611598565b5b5b5b505b565b600160a060020a033316600081815260136020908152604091829020805460ff19166001179055815192835290517f06af741459b5a0d3d47ca6d61fd6c648735feeee9a8136e2b85d9a8b24de669d9281900390910190a15b565b600854600160a060020a031681565b6000610cb882611396565b600160a060020a0383166000908152600160205260409020540190505b919050565b60065433600160a060020a03908116911614610cf65760006000fd5b6001805b60085460a060020a900460ff166005811115610d1257fe5b14610d1d5760006000fd5b600d544310610d2c5760006000fd5b600d54600b54430110610d3f5760006000fd5b600b544301600c55610b566002611598565b5b5b505b565b60065433600160a060020a03908116911614610d735760006000fd5b60005b60085460a060020a900460ff166005811115610d8e57fe5b1480610db2575060015b60085460a060020a900460ff166005811115610db057fe5b145b1515610dbe5760006000fd5b838311610dcb5760006000fd5b600b544301819010610ddd5760006000fd5b43819010610deb5760006000fd5b6009849055600a839055600b829055600d8190556000548390606490601e025b04811515610e1557fe5b04600e55610e236001611598565b5b5b50505050565b60065433600160a060020a03908116911614610e475760006000fd5b6002805b60085460a060020a900460ff166005811115610e6357fe5b14610e6e5760006000fd5b610b566005611598565b5b5b505b565b60006004805b60085460a060020a900460ff166005811115610e9c57fe5b14610ea75760006000fd5b336000610eb382611396565b90508015610f0e57601280548290039055600160a060020a03808316600081815260016020908152604091829020805486019055600354825186815292519394169260008051602061174a8339815191529281900390910190a35b601154600160a060020a0383166000908152600f6020526040902055610f3433866113de565b93505b5b50505b50919050565b60085433600160a060020a03908116911614610f5d5760006000fd5b6004805b60085460a060020a900460ff166005811115610f7957fe5b14610f845760006000fd5b604051600160a060020a0333169083156108fc029084906000818181858888f1935050505015156102b157fe5b5b5b505b50565b600c5481565b604080518082019091526004815260e060020a63504c415902602082015281565b60046020526000908152604090205460ff1681565b600e5481565b60065433600160a060020a039081169116146110165760006000fd5b6005805b60085460a060020a900460ff16600581111561103257fe5b1461103d5760006000fd5b610b566002611598565b5b5b505b565b60136020526000908152604090205460ff1681565b60006004805b60085460a060020a900460ff16600581111561108057fe5b1461108b5760006000fd5b33600061109782611396565b905080156110f257601280548290039055600160a060020a03808316600081815260016020908152604091829020805486019055600354825186815292519394169260008051602061174a8339815191529281900390910190a35b601154600160a060020a0383166000908152600f6020526040812091909155869061111c82611396565b9050801561117757601280548290039055600160a060020a03808316600081815260016020908152604091829020805486019055600354825186815292519394169260008051602061174a8339815191529281900390910190a35b601154600160a060020a038084166000908152600f6020908152604080832094909455339283168252601390529182205490918991819060ff16156111db576064606384025b04830391506111cc84836113de565b90508015156111db5760006000fd5b5b6111e68c8c61166a565b99505b5b505050505b50505b50505b5092915050565b600554600160a060020a031681565b60085460a060020a900460ff1681565b600354600160a060020a031681565b60006003805b60085460a060020a900460ff16600581111561124857fe5b146112535760006000fd5b600160a060020a033316600090815260016020526040812054116112775760006000fd5b600e54600160a060020a03331660009081526001602052604090205481151561129c57fe5b600160a060020a033316600081815260016020526040808220829055519390920494509184156108fc0291859190818181858888f1935050505015156102b157fe5b5b5b5050565b600a5481565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60075433600160a060020a039081169116146113335760006000fd5b600160a060020a038116600081815260046020908152604091829020805460ff19166001179055815192835290517faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a549281900390910190a15b5b50565b60095481565b600160a060020a0381166000908152600f60209081526040808320546011546001909352908320546010549190920391820290818115156113d357fe5b0492505b5050919050565b600160a060020a038216600090815260016020526040812054819083901161140957600091506111f5565b821561148957600354604080518581529051600160a060020a039283169287169160008051602061174a833981519152919081900360200190a3600160a060020a038416600090815260016020526040812080548590039055601280548501905554601054840281151561147957fe5b6011805492909104918201905590505b600191505b5092915050565b600160a060020a0380841660009081526002602090815260408083203385168452825280832054938616835260019091528120549091906114dc908463ffffffff61171816565b600160a060020a038086166000908152600160205260408082209390935590871681522054611511908463ffffffff61173216565b600160a060020a03861660009081526001602052604090205561153a818463ffffffff61173216565b600160a060020a0380871660008181526002602090815260408083203386168452825291829020949094558051878152905192881693919260008051602061174a833981519152929181900390910190a3600191505b509392505050565b7f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f7600860149054906101000a900460ff1682604051808360058111156115da57fe5b60ff1681526020018260058111156115ee57fe5b60ff1681526020019250505060405180910390a16008805482919060a060020a60ff02191660a060020a83600581111561162457fe5b02179055505b50565b600e54600160a060020a0330163102601e606482025b046000818155600554600160a060020a031681526001602052604090209082900390555b50565b600160a060020a033316600090815260016020526040812054611693908363ffffffff61173216565b600160a060020a0333811660009081526001602052604080822093909355908516815220546116c8908363ffffffff61171816565b600160a060020a0380851660008181526001602090815260409182902094909455805186815290519193339093169260008051602061174a83398151915292918290030190a35060015b92915050565b60008282018381101561172757fe5b8091505b5092915050565b60008282111561173e57fe5b508082035b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058205fcb08ea06eac693ba961a68be16cf0717a08e06227f44eca044be73123dd49c0029

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

00000000000000000000000010CA9409265c2938167856725945db35da3Ca149000000000000000000000000D076556513165EE138cFB054A84f7B48154c466700000000000000000000000052245Ee29f243ff3A55B720C32DEe77EB1DCe33400000000000000000000000038b50101cCE32A15e906A32bFda0939D01a1776f

-----Decoded View---------------
Arg [0] : _stateControl (address): 0x10CA9409265c2938167856725945db35da3Ca149
Arg [1] : _whitelistControl (address): 0xD076556513165EE138cFB054A84f7B48154c4667
Arg [2] : _withdraw (address): 0x52245Ee29f243ff3A55B720C32DEe77EB1DCe334
Arg [3] : _initialHolder (address): 0x38b50101cCE32A15e906A32bFda0939D01a1776f

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000010CA9409265c2938167856725945db35da3Ca149
Arg [1] : 000000000000000000000000D076556513165EE138cFB054A84f7B48154c4667
Arg [2] : 00000000000000000000000052245Ee29f243ff3A55B720C32DEe77EB1DCe334
Arg [3] : 00000000000000000000000038b50101cCE32A15e906A32bFda0939D01a1776f


Swarm Source

bzzr://5fcb08ea06eac693ba961a68be16cf0717a08e06227f44eca044be73123dd49c

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Decentralized Solution for online betting.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.