Contract 0x1776e1f26f98b1a5df9cd347953a26dd3cb46671

 

Contract Overview

Numeraire Token
Balance:
0.0002 Ether

EtherValue:
$0.31 (@ $1,562.21/ETH)

Token:
Ad
Ad
Txn Hash
Block
From
To
Value
0x042d9f3c32f1fe81d8ae34fbf3761aeedcffc7a688376fafa33969cfde48aded(pending)2021-03-01 22:53:182 hrs 59 mins ago0xd1361592f21eb6c05ad238d440d87d5a65a1cdb3 IN Numeraire Token0 Ether(Pending)(Pending)
0x877f19e2dbf0b0822e31de227b96ace8c930232e8549fa2b8bee55ae172970a3(pending)2021-03-01 14:13:5911 hrs 38 mins ago0xfc2df7e223dcb9953fe8dd604039bf68c9135192 IN Numeraire Token0 Ether(Pending)(Pending)
0x6c4754264f59f612eed4642b38c7b7e442f297bfe429ecc3c806fb4866a0b0bf(pending)2021-02-28 18:37:571 day 7 hrs ago0x5f70c6c12433996bee86b7c786ef76dfaff1f50b IN Numeraire Token0 Ether(Pending)(Pending)
0x4f1b11bb3fdd5dc69eb198ca569c151c45dc83bf65aad32678badb436a2580f1(pending)2021-02-28 8:37:401 day 17 hrs ago0x61ef9df1190e7ebaa943e1f338831607be42af5d IN Numeraire Token0 Ether(Pending)(Pending)
0xb64a13f15767adba16774c892cb378da503c38bfefcaad7554b914e0a1b31913(pending)2021-02-28 7:49:511 day 18 hrs ago0xf40b96d63a8b2c2987436ef64ce473df14d6e79a IN Numeraire Token0 Ether(Pending)(Pending)
0x552268d2ce1b7efc384d8a24461720d7f0948f8c32623f8c78e557317c3f9de8(pending)2021-02-28 5:22:081 day 20 hrs ago0xfc2df7e223dcb9953fe8dd604039bf68c9135192 IN Numeraire Token0 Ether(Pending)(Pending)
0xdd8d55b708e88f8dc15f5bfad4ede8ec919c5646387842e497b24776df428974119559302021-03-02 1:48:254 mins ago0xc08416c22b0c01d5af1f44f22fe2f5241938febb IN  Numeraire Token0 Ether0.00485325125
0xb264d64101ccabdaced5c1a10e6519eedc3399f7ec4a8dba3b635fd304518708119558212021-03-02 1:22:4230 mins ago0x7826cb61e5ef4908900dea10cc101577f882637f IN  Numeraire Token0 Ether0.0058047792149.6
0xfeac116e0633ad29161e6d3f24eb6c844e02dd90e48cbe36e118e2a07e71ac17119558192021-03-02 1:22:2630 mins agoBinance IN  Numeraire Token0 Ether0.007529916194
0xc4eeb02a21601529fe61fe1107de5dd53cb982d2f4e80944ecd02662e6232296119558132021-03-02 1:21:2631 mins ago0x5091618c00090e52c5419a2f32d313a8dc821ef1 IN  Numeraire Token0 Ether0.00428395293
0x5b0a9769b5b10d429c321e79d05f674f05e34107d9e07b3d8dd310a3b6b72501119557612021-03-02 1:09:1243 mins ago0x086f016c58f30f01265f4495340783bbf5665cec IN  Numeraire Token0 Ether0.003723029280.3
0x02b76c15bd09a9bfe7575313eb3cf3512a9099bff5479189cf505f8b201c4d9d119557102021-03-02 1:01:0451 mins agoBinance 3 IN  Numeraire Token0 Ether0.010439916194
0xbad02124f519241c50e9d9bea8abbafe173b6eaf5e8ec6190920bffe92ad3c04119556482021-03-02 0:47:221 hr 5 mins agoBinance 11 IN  Numeraire Token0 Ether0.007064148182
0x5c350cf200d14638ad5b58957fcf616f898a8785838a31663ad264182ca12906119556372021-03-02 0:43:331 hr 9 mins ago0x80b449fea681f85973adb988e43558dd9b6a4833 IN  Numeraire Token0 Ether0.004695042121
0xd0c1a31e6ef2a0b9ea78fe6f8c525d0a449b78fb9d56b5e3691d5aace9c98c28119555962021-03-02 0:33:511 hr 18 mins ago0x33a64dcdfa041befebc9161a3e0c6180cd94fa89 IN  Numeraire Token0 Ether0.00995781185
0xab552af21ff5aa582117f7786b0e42d2245f4603012d4de0a88748a70301fb3b119555862021-03-02 0:30:121 hr 22 mins agoBinance IN  Numeraire Token0 Ether0.006249054161
0x84a1bb6f86de886f2cd8520b19709cd0a18d75af8895ec270346592eeee1d973119555532021-03-02 0:25:211 hr 27 mins ago0xaf5131a5beaff9659d931ea36b8b9791339a9062 IN  Numeraire Token0 Ether0.003073554129
0x77614473e2fa8471a5c5b0ba9c5156004385fbad6ad9812b2f8087bc38b46ac2119555422021-03-02 0:24:031 hr 28 mins ago0x63153a8acd00ceb24133e854ac0351ae6a798507 IN  Numeraire Token0 Ether0.006943554129
0x0c77bc215a16e74dda1f9da597d08dbdfdbf8eb351577af0ee7c944ddaf8e49b119554822021-03-02 0:10:461 hr 41 mins ago0x82fbcabc4b5e2f1ba5d0896810507359f0484df6 IN  Numeraire Token0 Ether0.002713428114
0x9940aaad73ff1d8880f812c3c692521ec90841b2c7e68ae55174492db1b989cc119554712021-03-02 0:08:571 hr 43 mins ago0xe35cf75efdec9af43ea6e522bd386ae70e7ac56e IN  Numeraire Token0 Ether0.006134796114
0xc3ea988b749787cec724c1ee0eb46db4f71d191fdd485e9898b4dc52135a7b52119554682021-03-02 0:08:281 hr 44 mins ago0xf584f8728b874a6a5c7a8d4d387c9aae9172d621 IN  Numeraire Token0 Ether0.004113012106
0xd95d8740c3baec875a31d95941fb8dbeaec034f911c516866d2668fbae37bc29119554542021-03-02 0:04:511 hr 47 mins ago0xb828a8776f5d593c933dff9d8fabee4aa5447c9a IN  Numeraire Token0 Ether0.00465768120
0xe464ad81dbbab16bbd4af24418074456e46df1b384ee336b72ba5837ea4b538a119554062021-03-01 23:54:521 hr 57 mins ago0xaa67f3a51d199077aa4110dce72996f9c6ef42da IN  Numeraire Token0 Ether0.00297825125
0x5a5ce38fe9299490775ee6b2020e1468a02b9e5f42ba7587dd104104e1595e6c119553672021-03-01 23:46:352 hrs 6 mins ago0x2b8cae555461747b3dc78a4623a3670291e9ea53 IN  Numeraire Token0 Ether0.004347168112
0xd76680e284210afc77239e7bc5dc940b98abea6e18d466ad5c8ca9388dae02c8119553582021-03-01 23:44:162 hrs 8 mins ago0x8223a75055dbdd1052023e45b132dae5b079197a IN  Numeraire Token0 Ether0.006027168112
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x7991428c24a2bdfe1936f25048f44be02ef127f642aa8c5ad9e49050d03368a180362102019-06-26 22:20:38614 days 3 hrs ago Numeraire Token 0x0000000000377d181a0ebd08590c6b399b2720001.621780975478902616 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NumeraireBackend

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-06-20
*/

pragma solidity ^0.4.11;

contract Safe {
    // Check if it is safe to add two numbers
    function safeAdd(uint a, uint b) internal returns (uint) {
        uint c = a + b;
        assert(c >= a && c >= b);
        return c;
    }

    // Check if it is safe to subtract two numbers
    function safeSubtract(uint a, uint b) internal returns (uint) {
        uint c = a - b;
        assert(b <= a && c <= a);
        return c;
    }

    function safeMultiply(uint a, uint b) internal returns (uint) {
        uint c = a * b;
        assert(a == 0 || (c / a) == b);
        return c;
    }

    function shrink128(uint a) internal returns (uint128) {
        assert(a < 0x100000000000000000000000000000000);
        return uint128(a);
    }

    // mitigate short address attack
    modifier onlyPayloadSize(uint numWords) {
        assert(msg.data.length == numWords * 32 + 4);
        _;
    }

    // allow ether to be received
    function () payable { }
}

// Class variables used both in NumeraireBackend and NumeraireDelegate

contract NumeraireShared is Safe {

    address public numerai = this;

    // Cap the total supply and the weekly supply
    uint256 public supply_cap = 21000000e18; // 21 million
    uint256 public weekly_disbursement = 96153846153846153846153;

    uint256 public initial_disbursement;
    uint256 public deploy_time;

    uint256 public total_minted;

    // ERC20 requires totalSupply, balanceOf, and allowance
    uint256 public totalSupply;
    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) public allowance;

    mapping (uint => Tournament) public tournaments;  // tournamentID

    struct Tournament {
        uint256 creationTime;
        uint256[] roundIDs;
        mapping (uint256 => Round) rounds;  // roundID
    } 

    struct Round {
        uint256 creationTime;
        uint256 endTime;
        uint256 resolutionTime;
        mapping (address => mapping (bytes32 => Stake)) stakes;  // address of staker
    }

    // The order is important here because of its packing characteristics.
    // Particularly, `amount` and `confidence` are in the *same* word, so
    // Solidity can update both at the same time (if the optimizer can figure
    // out that you're updating both).  This makes `stake()` cheap.
    struct Stake {
        uint128 amount; // Once the stake is resolved, this becomes 0
        uint128 confidence;
        bool successful;
        bool resolved;
    }

    // Generates a public event on the blockchain to notify clients
    event Mint(uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Staked(address indexed staker, bytes32 tag, uint256 totalAmountStaked, uint256 confidence, uint256 indexed tournamentID, uint256 indexed roundID);
    event RoundCreated(uint256 indexed tournamentID, uint256 indexed roundID, uint256 endTime, uint256 resolutionTime);
    event TournamentCreated(uint256 indexed tournamentID);
    event StakeDestroyed(uint256 indexed tournamentID, uint256 indexed roundID, address indexed stakerAddress, bytes32 tag);
    event StakeReleased(uint256 indexed tournamentID, uint256 indexed roundID, address indexed stakerAddress, bytes32 tag, uint256 etherReward);

    // Calculate allowable disbursement
    function getMintable() constant returns (uint256) {
        return
            safeSubtract(
                safeAdd(initial_disbursement,
                    safeMultiply(weekly_disbursement,
                        safeSubtract(block.timestamp, deploy_time))
                    / 1 weeks),
                total_minted);
    }
}

// From OpenZepplin: https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/ownership/Shareable.sol
/*
 * Shareable
 * 
 * Effectively our multisig contract
 *
 * Based on https://github.com/ethereum/dapp-bin/blob/master/wallet/wallet.sol
 *
 * inheritable "property" contract that enables methods to be protected by requiring the acquiescence of either a single, or, crucially, each of a number of, designated owners.
 *
 * usage:
 * use modifiers onlyowner (just own owned) or onlymanyowners(hash), whereby the same hash must be provided by some number (specified in constructor) of the set of owners (specified in the constructor) before the interior is executed.
 */
contract Shareable {
  // TYPES

  // struct for the status of a pending operation.
  struct PendingState {
    uint yetNeeded;
    uint ownersDone;
    uint index;
  }


  // FIELDS

  // the number of owners that must confirm the same operation before it is run.
  uint public required;

  // list of owners
  address[256] owners;
  uint constant c_maxOwners = 250;
  // index on the list of owners to allow reverse lookup
  mapping(address => uint) ownerIndex;
  // the ongoing operations.
  mapping(bytes32 => PendingState) pendings;
  bytes32[] pendingsIndex;


  // EVENTS

  // this contract only has six types of events: it can accept a confirmation, in which case
  // we record owner and operation (hash) alongside it.
  event Confirmation(address owner, bytes32 operation);
  event Revoke(address owner, bytes32 operation);


  // MODIFIERS

  address thisContract = this;

  // simple single-sig function modifier.
  modifier onlyOwner {
    if (isOwner(msg.sender))
      _;
  }

  // multi-sig function modifier: the operation must have an intrinsic hash in order
  // that later attempts can be realised as the same underlying operation and
  // thus count as confirmations.
  modifier onlyManyOwners(bytes32 _operation) {
    if (confirmAndCheck(_operation))
      _;
  }


  // CONSTRUCTOR

  // constructor is given number of sigs required to do protected "onlymanyowners" transactions
  // as well as the selection of addresses capable of confirming them.
  function Shareable(address[] _owners, uint _required) {
    owners[1] = msg.sender;
    ownerIndex[msg.sender] = 1;
    for (uint i = 0; i < _owners.length; ++i) {
      owners[2 + i] = _owners[i];
      ownerIndex[_owners[i]] = 2 + i;
    }
    if (required > owners.length) throw;
    required = _required;
  }


  // new multisig is given number of sigs required to do protected "onlymanyowners" transactions
  // as well as the selection of addresses capable of confirming them.
  // take all new owners as an array
  function changeShareable(address[] _owners, uint _required) onlyManyOwners(sha3(msg.data)) {
    for (uint i = 0; i < _owners.length; ++i) {
      owners[1 + i] = _owners[i];
      ownerIndex[_owners[i]] = 1 + i;
    }
    if (required > owners.length) throw;
    required = _required;
  }

  // METHODS

  // Revokes a prior confirmation of the given operation
  function revoke(bytes32 _operation) external {
    uint index = ownerIndex[msg.sender];
    // make sure they're an owner
    if (index == 0) return;
    uint ownerIndexBit = 2**index;
    var pending = pendings[_operation];
    if (pending.ownersDone & ownerIndexBit > 0) {
      pending.yetNeeded++;
      pending.ownersDone -= ownerIndexBit;
      Revoke(msg.sender, _operation);
    }
  }

  // Gets an owner by 0-indexed position (using numOwners as the count)
  function getOwner(uint ownerIndex) external constant returns (address) {
    return address(owners[ownerIndex + 1]);
  }

  function isOwner(address _addr) constant returns (bool) {
    return ownerIndex[_addr] > 0;
  }

  function hasConfirmed(bytes32 _operation, address _owner) constant returns (bool) {
    var pending = pendings[_operation];
    uint index = ownerIndex[_owner];

    // make sure they're an owner
    if (index == 0) return false;

    // determine the bit to set for this owner.
    uint ownerIndexBit = 2**index;
    return !(pending.ownersDone & ownerIndexBit == 0);
  }

  // INTERNAL METHODS

  function confirmAndCheck(bytes32 _operation) internal returns (bool) {
    // determine what index the present sender is:
    uint index = ownerIndex[msg.sender];
    // make sure they're an owner
    if (index == 0) return;

    var pending = pendings[_operation];
    // if we're not yet working on this operation, switch over and reset the confirmation status.
    if (pending.yetNeeded == 0) {
      // reset count of confirmations needed.
      pending.yetNeeded = required;
      // reset which owners have confirmed (none) - set our bitmap to 0.
      pending.ownersDone = 0;
      pending.index = pendingsIndex.length++;
      pendingsIndex[pending.index] = _operation;
    }
    // determine the bit to set for this owner.
    uint ownerIndexBit = 2**index;
    // make sure we (the message sender) haven't confirmed this operation previously.
    if (pending.ownersDone & ownerIndexBit == 0) {
      Confirmation(msg.sender, _operation);
      // ok - check if count is enough to go ahead.
      if (pending.yetNeeded <= 1) {
        // enough confirmations: reset and run interior.
        delete pendingsIndex[pendings[_operation].index];
        delete pendings[_operation];
        return true;
      }
      else
        {
          // not enough: record that this owner in particular confirmed.
          pending.yetNeeded--;
          pending.ownersDone |= ownerIndexBit;
        }
    }
  }

  function clearPending() internal {
    uint length = pendingsIndex.length;
    for (uint i = 0; i < length; ++i)
    if (pendingsIndex[i] != 0)
      delete pendings[pendingsIndex[i]];
    delete pendingsIndex;
  }
}

// From OpenZepplin: https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/lifecycle/Pausable.sol
/*
 * Stoppable
 * Abstract contract that allows children to implement an
 * emergency stop mechanism.
 */
contract StoppableShareable is Shareable {
  bool public stopped;
  bool public stoppable = true;

  modifier stopInEmergency { if (!stopped) _; }
  modifier onlyInEmergency { if (stopped) _; }

  function StoppableShareable(address[] _owners, uint _required) Shareable(_owners, _required) {
  }

  // called by the owner on emergency, triggers stopped state
  function emergencyStop() external onlyOwner {
    assert(stoppable);
    stopped = true;
  }

  // called by the owners on end of emergency, returns to normal state
  function release() external onlyManyOwners(sha3(msg.data)) {
    assert(stoppable);
    stopped = false;
  }

  // called by the owners to disable ability to begin or end an emergency stop
  function disableStopping() external onlyManyOwners(sha3(msg.data)) {
    stoppable = false;
  }
}

// This is the contract that will be unchangeable once deployed.  It will call delegate functions in another contract to change state.  The delegate contract is upgradable.

contract NumeraireBackend is StoppableShareable, NumeraireShared {

    address public delegateContract;
    bool public contractUpgradable = true;
    address[] public previousDelegates;

    string public standard = "ERC20";

    // ERC20 requires name, symbol, and decimals
    string public name = "Numeraire";
    string public symbol = "NMR";
    uint256 public decimals = 18;

    event DelegateChanged(address oldAddress, address newAddress);

    function NumeraireBackend(address[] _owners, uint256 _num_required, uint256 _initial_disbursement) StoppableShareable(_owners, _num_required) {
        totalSupply = 0;
        total_minted = 0;

        initial_disbursement = _initial_disbursement;
        deploy_time = block.timestamp;
    }

    function disableContractUpgradability() onlyManyOwners(sha3(msg.data)) returns (bool) {
        assert(contractUpgradable);
        contractUpgradable = false;
    }

    function changeDelegate(address _newDelegate) onlyManyOwners(sha3(msg.data)) returns (bool) {
        assert(contractUpgradable);

        if (_newDelegate != delegateContract) {
            previousDelegates.push(delegateContract);
            var oldDelegate = delegateContract;
            delegateContract = _newDelegate;
            DelegateChanged(oldDelegate, _newDelegate);
            return true;
        }

        return false;
    }

    function claimTokens(address _token) onlyOwner {
        assert(_token != numerai);
        if (_token == 0x0) {
            msg.sender.transfer(this.balance);
            return;
        }

        NumeraireBackend token = NumeraireBackend(_token);
        uint256 balance = token.balanceOf(this);
        token.transfer(msg.sender, balance);
    }

    function mint(uint256 _value) stopInEmergency returns (bool ok) {
        return delegateContract.delegatecall(bytes4(sha3("mint(uint256)")), _value);
    }

    function stake(uint256 _value, bytes32 _tag, uint256 _tournamentID, uint256 _roundID, uint256 _confidence) stopInEmergency returns (bool ok) {
        return delegateContract.delegatecall(bytes4(sha3("stake(uint256,bytes32,uint256,uint256,uint256)")), _value, _tag, _tournamentID, _roundID, _confidence);
    }

    function stakeOnBehalf(address _staker, uint256 _value, bytes32 _tag, uint256 _tournamentID, uint256 _roundID, uint256 _confidence) stopInEmergency onlyPayloadSize(6) returns (bool ok) {
        return delegateContract.delegatecall(bytes4(sha3("stakeOnBehalf(address,uint256,bytes32,uint256,uint256,uint256)")), _staker, _value, _tag, _tournamentID, _roundID, _confidence);
    }

    function releaseStake(address _staker, bytes32 _tag, uint256 _etherValue, uint256 _tournamentID, uint256 _roundID, bool _successful) stopInEmergency onlyPayloadSize(6) returns (bool ok) {
        return delegateContract.delegatecall(bytes4(sha3("releaseStake(address,bytes32,uint256,uint256,uint256,bool)")), _staker, _tag, _etherValue, _tournamentID, _roundID, _successful);
    }

    function destroyStake(address _staker, bytes32 _tag, uint256 _tournamentID, uint256 _roundID) stopInEmergency onlyPayloadSize(4) returns (bool ok) {
        return delegateContract.delegatecall(bytes4(sha3("destroyStake(address,bytes32,uint256,uint256)")), _staker, _tag, _tournamentID, _roundID);
    }

    function numeraiTransfer(address _to, uint256 _value) onlyPayloadSize(2) returns(bool ok) {
        return delegateContract.delegatecall(bytes4(sha3("numeraiTransfer(address,uint256)")), _to, _value);
    }

    function withdraw(address _from, address _to, uint256 _value) onlyPayloadSize(3) returns(bool ok) {
        return delegateContract.delegatecall(bytes4(sha3("withdraw(address,address,uint256)")), _from, _to, _value);
    }

    function createTournament(uint256 _tournamentID) returns (bool ok) {
        return delegateContract.delegatecall(bytes4(sha3("createTournament(uint256)")), _tournamentID);
    }

    function createRound(uint256 _tournamentID, uint256 _roundID, uint256 _endTime, uint256 _resolutionTime) returns (bool ok) {
        return delegateContract.delegatecall(bytes4(sha3("createRound(uint256,uint256,uint256,uint256)")), _tournamentID, _roundID, _endTime, _resolutionTime);
    }

    function getTournament(uint256 _tournamentID) constant returns (uint256, uint256[]) {
        var tournament = tournaments[_tournamentID];
        return (tournament.creationTime, tournament.roundIDs);
    }

    function getRound(uint256 _tournamentID, uint256 _roundID) constant returns (uint256, uint256, uint256) {
        var round = tournaments[_tournamentID].rounds[_roundID];
        return (round.creationTime, round.endTime, round.resolutionTime);
    }

    function getStake(uint256 _tournamentID, uint256 _roundID, address _staker, bytes32 _tag) constant returns (uint256, uint256, bool, bool) {
        var stake = tournaments[_tournamentID].rounds[_roundID].stakes[_staker][_tag];
        return (stake.confidence, stake.amount, stake.successful, stake.resolved);
    }

    // ERC20: Send from a contract
    function transferFrom(address _from, address _to, uint256 _value) stopInEmergency onlyPayloadSize(3) returns (bool ok) {
        require(!isOwner(_from) && _from != numerai); // Transfering from Numerai can only be done with the numeraiTransfer function

        // Check for sufficient funds.
        require(balanceOf[_from] >= _value);
        // Check for authorization to spend.
        require(allowance[_from][msg.sender] >= _value);

        balanceOf[_from] = safeSubtract(balanceOf[_from], _value);
        allowance[_from][msg.sender] = safeSubtract(allowance[_from][msg.sender], _value);
        balanceOf[_to] = safeAdd(balanceOf[_to], _value);

        // Notify anyone listening.
        Transfer(_from, _to, _value);

        return true;
    }

    // ERC20: Anyone with NMR can transfer NMR
    function transfer(address _to, uint256 _value) stopInEmergency onlyPayloadSize(2) returns (bool ok) {
        // Check for sufficient funds.
        require(balanceOf[msg.sender] >= _value);

        balanceOf[msg.sender] = safeSubtract(balanceOf[msg.sender], _value);
        balanceOf[_to] = safeAdd(balanceOf[_to], _value);

        // Notify anyone listening.
        Transfer(msg.sender, _to, _value);

        return true;
    }

    // ERC20: Allow other contracts to spend on sender's behalf
    function approve(address _spender, uint256 _value) stopInEmergency onlyPayloadSize(2) returns (bool ok) {
        require((_value == 0) || (allowance[msg.sender][_spender] == 0));
        allowance[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function changeApproval(address _spender, uint256 _oldValue, uint256 _newValue) stopInEmergency onlyPayloadSize(3) returns (bool ok) {
        require(allowance[msg.sender][_spender] == _oldValue);
        allowance[msg.sender][_spender] = _newValue;
        Approval(msg.sender, _spender, _newValue);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"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":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_tournamentID","type":"uint256"}],"name":"getTournament","outputs":[{"name":"","type":"uint256"},{"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":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numerai","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_tournamentID","type":"uint256"},{"name":"_roundID","type":"uint256"}],"name":"getRound","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"delegateContract","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tournamentID","type":"uint256"},{"name":"_roundID","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_resolutionTime","type":"uint256"}],"name":"createRound","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_staker","type":"address"},{"name":"_tag","type":"bytes32"},{"name":"_etherValue","type":"uint256"},{"name":"_tournamentID","type":"uint256"},{"name":"_roundID","type":"uint256"},{"name":"_successful","type":"bool"}],"name":"releaseStake","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"emergencyStop","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_staker","type":"address"},{"name":"_value","type":"uint256"},{"name":"_tag","type":"bytes32"},{"name":"_tournamentID","type":"uint256"},{"name":"_roundID","type":"uint256"},{"name":"_confidence","type":"uint256"}],"name":"stakeOnBehalf","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tournaments","outputs":[{"name":"creationTime","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"}],"name":"changeShareable","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"contractUpgradable","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"numeraiTransfer","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"release","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_tournamentID","type":"uint256"},{"name":"_roundID","type":"uint256"},{"name":"_staker","type":"address"},{"name":"_tag","type":"bytes32"}],"name":"getStake","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"initial_disbursement","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"},{"name":"_tag","type":"bytes32"},{"name":"_tournamentID","type":"uint256"},{"name":"_roundID","type":"uint256"},{"name":"_confidence","type":"uint256"}],"name":"stake","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_oldValue","type":"uint256"},{"name":"_newValue","type":"uint256"}],"name":"changeApproval","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weekly_disbursement","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"mint","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_staker","type":"address"},{"name":"_tag","type":"bytes32"},{"name":"_tournamentID","type":"uint256"},{"name":"_roundID","type":"uint256"}],"name":"destroyStake","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"deploy_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"disableContractUpgradability","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_operation","type":"bytes32"}],"name":"revoke","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"stoppable","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"total_minted","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_operation","type":"bytes32"},{"name":"_owner","type":"address"}],"name":"hasConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"ownerIndex","type":"uint256"}],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"disableStopping","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"withdraw","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tournamentID","type":"uint256"}],"name":"createTournament","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newDelegate","type":"address"}],"name":"changeDelegate","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"supply_cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getMintable","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"previousDelegates","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_num_required","type":"uint256"},{"name":"_initial_disbursement","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldAddress","type":"address"},{"indexed":false,"name":"newAddress","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","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"},{"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":"staker","type":"address"},{"indexed":false,"name":"tag","type":"bytes32"},{"indexed":false,"name":"totalAmountStaked","type":"uint256"},{"indexed":false,"name":"confidence","type":"uint256"},{"indexed":true,"name":"tournamentID","type":"uint256"},{"indexed":true,"name":"roundID","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tournamentID","type":"uint256"},{"indexed":true,"name":"roundID","type":"uint256"},{"indexed":false,"name":"endTime","type":"uint256"},{"indexed":false,"name":"resolutionTime","type":"uint256"}],"name":"RoundCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tournamentID","type":"uint256"}],"name":"TournamentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tournamentID","type":"uint256"},{"indexed":true,"name":"roundID","type":"uint256"},{"indexed":true,"name":"stakerAddress","type":"address"},{"indexed":false,"name":"tag","type":"bytes32"}],"name":"StakeDestroyed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tournamentID","type":"uint256"},{"indexed":true,"name":"roundID","type":"uint256"},{"indexed":true,"name":"stakerAddress","type":"address"},{"indexed":false,"name":"tag","type":"bytes32"},{"indexed":false,"name":"etherReward","type":"uint256"}],"name":"StakeReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Revoke","type":"event"}]

610104805460a860020a60ff0219600160a060020a033016600160a060020a0319928316811791909116750100000000000000000000000000000000000000000017909255610105805490911690911790556a115eec47f6cf7e350000006101065569145c82ac800328189d896101075561010f805460a060020a60ff0219167401000000000000000000000000000000000000000017905560a0604052600560608190527f45524332300000000000000000000000000000000000000000000000000000006080908152620000da916101119190620002c8565b506040805180820190915260098082527f4e756d65726169726500000000000000000000000000000000000000000000006020909201918252620001229161011291620002c8565b506040805180820190915260038082527f4e4d52000000000000000000000000000000000000000000000000000000000060209092019182526200016a9161011391620002c8565b5060126101145534156200017a57fe5b604051620029063803806200290683398101604090815281516020830151918301519201915b82825b81815b6000336001805b0160005b8154600160a060020a039384166101009290920a918202918402191617905533166000908152610101602052604081206001905590505b8251811015620002885782818151811015156200020157fe5b6020908102909101015160016002830161010081106200021d57fe5b0160005b6101000a815481600160a060020a030219169083600160a060020a0316021790555080600201610101600085848151811015156200025b57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020555b600101620001e8565b61010060005411156200029b5760006000fd5b60008290555b5050505b5050600061010b81905561010a5561010881905542610109555b50505062000372565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200030b57805160ff19168380011785556200033b565b828001600101855582156200033b579182015b828111156200033b5782518255916020019190600101906200031e565b5b506200034a9291506200034e565b5090565b6200036f91905b808211156200034a576000815560010162000355565b5090565b90565b61258480620003826000396000f3006060604052361561022a5763ffffffff60e060020a60003504166306fdde038114610233578063095ea7b3146102c357806318160ddd146102f65780631a5bd7fc1461031857806323b872dd1461039357806329684907146103cc5780632f54bf6e146103f8578063313ce5671461042857806339ec68a31461044a5780633c2b07251461047e5780635a3b7e42146104aa5780635bc91b2f1461053a5780635c251cbf1461056a57806363a599a4146105ab57806363ff195d146105bd57806370a08231146105fc5780637503e1b71461062a57806375f12b211461064f578063788023ff1461067357806378b150bd146106ca5780637c8d56b8146106ee57806386d1a69f14610721578063887ccc82146107335780638b1d67f9146107805780638b93d3fc146107a25780639281cd65146107d557806395d89b411461080b5780639e20afdf1461089b578063a0712d68146108bd578063a425b752146108e4578063a5d8cdf21461091d578063a8fa14b01461093f578063a9059cbb14610963578063b75c7dc614610996578063bb4872de146109ab578063be17be5d146109cf578063c2cf7326146109f1578063c41a360a14610a24578063d08b89f314610a53578063d9caed1214610a65578063dc8452cd14610a9e578063dd20a53e14610ac0578063dd62ed3e14610ae7578063df8de3e714610b1b578063e38296e414610b39578063eaac77ea14610b69578063f698bceb14610b8b578063fbd2dbad14610bad575b6102315b5b565b005b341561023b57fe5b610243610bdc565b604080516020808252835181830152835191928392908301918501908083838215610289575b80518252602083111561028957601f199092019160209182019101610269565b505050905090810190601f1680156102b55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102cb57fe5b6102e2600160a060020a0360043516602435610c6b565b604080519115158252519081900360200190f35b34156102fe57fe5b610306610d38565b60408051918252519081900360200190f35b341561032057fe5b61032b600435610d3f565b604051808381526020018060200182810382528381815181526020019150805190602001906020028083836000831461037f575b80518252602083111561037f57601f19909201916020918201910161035f565b505050905001935050505060405180910390f35b341561039b57fe5b6102e2600160a060020a0360043581169060243516604435610dbc565b604080519115158252519081900360200190f35b34156103d457fe5b6103dc610f7b565b60408051600160a060020a039092168252519081900360200190f35b341561040057fe5b6102e2600160a060020a0360043516610f8b565b604080519115158252519081900360200190f35b341561043057fe5b610306610fac565b60408051918252519081900360200190f35b341561045257fe5b610460600435602435610fb3565b60408051938452602084019290925282820152519081900360600190f35b341561048657fe5b6103dc610fea565b60408051600160a060020a039092168252519081900360200190f35b34156104b257fe5b610243610ffa565b604080516020808252835181830152835191928392908301918501908083838215610289575b80518252602083111561028957601f199092019160209182019101610269565b505050905090810190601f1680156102b55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561054257fe5b6102e2600435602435604435606435611089565b604080519115158252519081900360200190f35b341561057257fe5b6102e2600160a060020a036004351660243560443560643560843560a4351515611162565b604080519115158252519081900360200190f35b34156105b357fe5b610231611275565b005b34156105c557fe5b6102e2600160a060020a036004351660243560443560643560843560a4356112d5565b604080519115158252519081900360200190f35b341561060457fe5b610306600160a060020a03600435166113e7565b60408051918252519081900360200190f35b341561063257fe5b6103066004356113fa565b60408051918252519081900360200190f35b341561065757fe5b6102e261140d565b604080519115158252519081900360200190f35b341561067b57fe5b610231600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650509335935061141e92505050565b005b34156106d257fe5b6102e261150e565b604080519115158252519081900360200190f35b34156106f657fe5b6102e2600160a060020a036004351660243561151f565b604080519115158252519081900360200190f35b341561072957fe5b6102316115d1565b005b341561073b57fe5b610758600435602435600160a060020a036044351660643561164a565b6040805194855260208501939093529015158383015215156060830152519081900360800190f35b341561078857fe5b6103066116cf565b60408051918252519081900360200190f35b34156107aa57fe5b6102e26004356024356044356064356084356116d6565b604080519115158252519081900360200190f35b34156107dd57fe5b6102e2600160a060020a03600435166024356044356117d1565b604080519115158252519081900360200190f35b341561081357fe5b610243611895565b604080516020808252835181830152835191928392908301918501908083838215610289575b80518252602083111561028957601f199092019160209182019101610269565b505050905090810190601f1680156102b55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108a357fe5b610306611924565b60408051918252519081900360200190f35b34156108c557fe5b6102e260043561192b565b604080519115158252519081900360200190f35b34156108ec57fe5b6102e2600160a060020a03600435166024356044356064356119dc565b604080519115158252519081900360200190f35b341561092557fe5b610306611ade565b60408051918252519081900360200190f35b341561094757fe5b6102e2611ae5565b604080519115158252519081900360200190f35b341561096b57fe5b6102e2600160a060020a0360043516602435611b4f565b604080519115158252519081900360200190f35b341561099e57fe5b610231600435611c56565b005b34156109b357fe5b6102e2611d01565b604080519115158252519081900360200190f35b34156109d757fe5b610306611d24565b60408051918252519081900360200190f35b34156109f957fe5b6102e2600435600160a060020a0360243516611d2b565b604080519115158252519081900360200190f35b3415610a2c57fe5b6103dc600435611d80565b60408051600160a060020a039092168252519081900360200190f35b3415610a5b57fe5b610231611db0565b005b3415610a6d57fe5b6102e2600160a060020a0360043581169060243516604435611e02565b604080519115158252519081900360200190f35b3415610aa657fe5b610306611ee6565b60408051918252519081900360200190f35b3415610ac857fe5b6102e2600435611eec565b604080519115158252519081900360200190f35b3415610aef57fe5b610306600160a060020a0360043581169060243516611f9b565b60408051918252519081900360200190f35b3415610b2357fe5b610231600160a060020a0360043516611fb9565b005b3415610b4157fe5b6102e2600160a060020a0360043516612128565b604080519115158252519081900360200190f35b3415610b7157fe5b610306612245565b60408051918252519081900360200190f35b3415610b9357fe5b61030661224c565b60408051918252519081900360200190f35b3415610bb557fe5b6103dc600435612293565b60408051600160a060020a039092168252519081900360200190f35b610112805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c635780601f10610c3857610100808354040283529160200191610c63565b820191906000526020600020905b815481529060010190602001808311610c4657829003601f168201915b505050505081565b6101045460009060a060020a900460ff161515610d3157600236604414610c8e57fe5b821580610cbf5750600160a060020a03338116600090815261010d6020908152604080832093881683529290522054155b1515610ccb5760006000fd5b600160a060020a03338116600081815261010d6020908152604080832094891680845294825291829020879055815187815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3600191505b5b505b5b92915050565b61010b5481565b6000610d496124b0565b600083815261010e602090815260409182902080546001820180548551818602810186019096528086529294919390928391830182828015610daa57602002820191906000526020600020905b815481526020019060010190808311610d96575b50505050509050925092505b50915091565b6101045460009060a060020a900460ff161515610f7357600336606414610ddf57fe5b610de885610f8b565b158015610e04575061010554600160a060020a03868116911614155b1515610e105760006000fd5b600160a060020a038516600090815261010c602052604090205483901015610e385760006000fd5b600160a060020a03808616600090815261010d60209081526040808320339094168352929052205483901015610e6e5760006000fd5b600160a060020a038516600090815261010c6020526040902054610e9290846122c6565b600160a060020a03808716600090815261010c602090815260408083209490945561010d8152838220339093168252919091522054610ed190846122c6565b600160a060020a03808716600090815261010d602090815260408083203385168452825280832094909455918716815261010c9091522054610f1390846122ee565b600160a060020a03808616600081815261010c602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3600191505b5b505b5b9392505050565b61010554600160a060020a031681565b600160a060020a03811660009081526101016020526040812054115b919050565b6101145481565b600082815261010e60209081526040808320848452600290810190925290912080546001820154928201549092915b509250925092565b61010f54600160a060020a031681565b610111805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c635780601f10610c3857610100808354040283529160200191610c63565b820191906000526020600020905b815481529060010190602001808311610c4657829003601f168201915b505050505081565b61010f54604080517f637265617465526f756e642875696e743235362c75696e743235362c75696e7481527f3235362c75696e74323536290000000000000000000000000000000000000000602080830191909152825191829003602c0182206000928201839052835163ffffffff60e060020a928390049081169092028152600481018a905260248101899052604481018890526064810187905293519294600160a060020a0316939092608480830193928290030181866102c65a03f4151561115057fe5b5050604051519150505b949350505050565b6101045460009060a060020a900460ff16151561126a5760063660c41461118557fe5b61010f54604080517f72656c656173655374616b6528616464726573732c627974657333322c75696e81527f743235362c75696e743235362c75696e743235362c626f6f6c29000000000000602080830191909152825191829003603a018220600092820192909252825163ffffffff60e060020a938490049081169093028152600160a060020a038d81166004830152602482018d9052604482018c9052606482018b9052608482018a905288151560a483015293519390941693919260c4808401938290030181866102c65a03f4151561125d57fe5b5050604051519250505b5b505b5b9695505050505050565b61127e33610f8b565b1561022e57610104547501000000000000000000000000000000000000000000900460ff1615156112ab57fe5b610104805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b5b565b6101045460009060a060020a900460ff16151561126a5760063660c4146112f857fe5b61010f54604080517f7374616b654f6e426568616c6628616464726573732c75696e743235362c627981527f74657333322c75696e743235362c75696e743235362c75696e74323536290000602080830191909152825191829003603e018220600092820192909252825163ffffffff60e060020a938490049081169093028152600160a060020a038d81166004830152602482018d9052604482018c9052606482018b9052608482018a905260a4820189905293519390941693919260c4808401938290030181866102c65a03f4151561125d57fe5b5050604051519250505b5b505b5b9695505050505050565b61010c6020526000908152604090205481565b61010e6020526000908152604090205481565b6101045460a060020a900460ff1681565b600060003660405180838380828437820191505092505050604051809103902061144781612316565b1561150657600091505b83518210156114ee57838281518110151561146857fe5b602090810290910101516001838101610100811061148257fe5b0160005b6101000a815481600160a060020a030219169083600160a060020a0316021790555081600101610101600086858151811015156114bf57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020555b816001019150611451565b61010060005411156115005760006000fd5b60008390555b5b5b50505050565b61010f5460a060020a900460ff1681565b600060023660441461152d57fe5b61010f54604080517f6e756d657261695472616e7366657228616464726573732c75696e74323536298152815160209181900382018120600091830191909152825160e060020a9182900463ffffffff81169092028152600160a060020a03898116600483015260248201899052935193909416939092604480830193928290030181866102c65a03f415156115bf57fe5b5050604051519250505b5b5092915050565b6000366040518083838082843782019150509250505060405180910390206115f881612316565b1561164557610104547501000000000000000000000000000000000000000000900460ff16151561162557fe5b610104805474ff0000000000000000000000000000000000000000191690555b5b5b50565b600084815261010e602090815260408083208684526002018252808320600160a060020a038616845260030182528083208484529091529020805460018201546fffffffffffffffffffffffffffffffff700100000000000000000000000000000000830481169392169160ff80831692610100900416905b50945094509450949050565b6101085481565b6101045460009060a060020a900460ff1615156117c65761010f54604080517f7374616b652875696e743235362c627974657333322c75696e743235362c756981527f6e743235362c75696e7432353629000000000000000000000000000000000000602080830191909152825191829003602e018220600092820192909252825163ffffffff60e060020a938490049081169093028152600481018b9052602481018a90526044810189905260648101889052608481018790529251600160a060020a0390941693919260a480820193918290030181866102c65a03f415156117bc57fe5b5050604051519150505b5b5b95945050505050565b6101045460009060a060020a900460ff161515610f73576003366064146117f457fe5b600160a060020a03338116600090815261010d602090815260408083209389168352929052205484146118275760006000fd5b600160a060020a03338116600081815261010d60209081526040808320948a1680845294825291829020879055815187815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3600191505b5b505b5b9392505050565b610113805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c635780601f10610c3857610100808354040283529160200191610c63565b820191906000526020600020905b815481529060010190602001808311610c4657829003601f168201915b505050505081565b6101075481565b6101045460009060a060020a900460ff161515610fa75761010f54604080517f6d696e742875696e7432353629000000000000000000000000000000000000008152815190819003600d0181206000602092830152825163ffffffff60e060020a928390049081169092028152600481018790529251600160a060020a0390941693909260248082019392918290030181866102c65a03f415156119cb57fe5b5050604051519150505b5b5b919050565b6101045460009060a060020a900460ff16151561115a576004366084146119ff57fe5b61010f54604080517f64657374726f795374616b6528616464726573732c627974657333322c75696e81527f743235362c75696e743235362900000000000000000000000000000000000000602080830191909152825191829003602d018220600092820192909252825163ffffffff60e060020a938490049081169093028152600160a060020a038b81166004830152602482018b9052604482018a9052606482018990529351939094169391926084808401938290030181866102c65a03f41515611ac857fe5b5050604051519250505b5b505b5b949350505050565b6101095481565b6000600036604051808383808284378201915050925050506040518091039020611b0e81612316565b15611b495761010f5460a060020a900460ff161515611b2957fe5b61010f805474ff0000000000000000000000000000000000000000191690555b5b5b5090565b6101045460009060a060020a900460ff161515610d3157600236604414611b7257fe5b600160a060020a033316600090815261010c602052604090205483901015611b9a5760006000fd5b600160a060020a033316600090815261010c6020526040902054611bbe90846122c6565b600160a060020a03338116600090815261010c60205260408082209390935590861681522054611bee90846122ee565b600160a060020a03808616600081815261010c60209081526040918290209490945580518781529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3600191505b5b505b5b92915050565b600160a060020a033316600090815261010160205260408120549080821515611c7e57611506565b50506000828152610102602052604081206001810154600284900a9290831611156115065780546001908101825581018054839003905560408051600160a060020a03331681526020810186905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5b50505050565b610104547501000000000000000000000000000000000000000000900460ff1681565b61010a5481565b600082815261010260209081526040808320600160a060020a038516845261010190925282205482811515611d635760009350611d77565b8160020a9050808360010154166000141593505b50505092915050565b600060018281016101008110611d9257fe5b0160005b9054906101000a9004600160a060020a031690505b919050565b600036604051808383808284378201915050925050506040518091039020611dd781612316565b1561164557610104805475ff000000000000000000000000000000000000000000191690555b5b5b50565b6000600336606414611e1057fe5b61010f54604080517f776974686472617728616464726573732c616464726573732c75696e7432353681527f29000000000000000000000000000000000000000000000000000000000000006020808301919091528251918290036021018220600092820192909252825163ffffffff60e060020a938490049081169093028152600160a060020a038a811660048301528981166024830152604482018990529351939094169391926064808401938290030181866102c65a03f41515611ed357fe5b5050604051519250505b5b509392505050565b60005481565b600061010f60009054906101000a9004600160a060020a0316600160a060020a031660405180807f637265617465546f75726e616d656e742875696e7432353629000000000000008152506019019050604051809103902060e060020a9004836000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381866102c65a03f415156119cb57fe5b5050604051519150505b919050565b61010d60209081526000928352604080842090915290825290205481565b60006000611fc633610f8b565b156121215761010554600160a060020a0384811691161415611fe457fe5b600160a060020a038316151561202a57604051600160a060020a0333811691309091163180156108fc02916000818181858888f19350505050151561202557fe5b612121565b82915081600160a060020a03166370a08231306000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561208d57fe5b6102c65a03f1151561209b57fe5b50505060405180519050905081600160a060020a031663a9059cbb33836000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b151561210f57fe5b6102c65a03f1151561211d57fe5b5050505b5b5b505050565b6000600060003660405180838380828437820191505092505050604051809103902061215381612316565b1561223c5761010f5460a060020a900460ff16151561216e57fe5b61010f54600160a060020a038581169116146122375761011080546001810161219783826124c2565b916000526020600020900160005b61010f80548354600160a060020a036101009490940a848102199091169184160217909255815473ffffffffffffffffffffffffffffffffffffffff1981168883169081179093556040805191909216808252602082019390935281519295507fef9fc1dee6010109e6e3b21e51d44028e246dbad8a5a71ea192a30b19e1f457f93508290030190a16001925061223c565b600092505b5b5b5050919050565b6101065481565b600061228d6122846101085462093a806122756101075461227042610109546122c6565b612481565b81151561227e57fe5b046122ee565b61010a546122c6565b90505b90565b6101108054829081106122a257fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b60008183038383118015906122db5750838111155b15156122e357fe5b8091505b5092915050565b60008282018381108015906122db5750828110155b15156122e357fe5b8091505b5092915050565b600160a060020a03331660009081526101016020526040812054818082151561233e57612477565b600085815261010260205260409020805490925015156123a157600080548355600180840191909155610103805491612379919083016124c2565b600283018190556101038054879290811061239057fe5b906000526020600020900160005b50555b8260020a905080826001015416600014156124775760408051600160a060020a03331681526020810187905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a181546001901161246457600085815261010260205260409020600201546101038054909190811061242757fe5b906000526020600020900160005b506000908190558581526101026020526040812081815560018082018390556002909101919091559350612477565b8154600019018255600182018054821790555b5b5b505050919050565b60008282028315806122db575082848281151561249a57fe5b04145b15156122e357fe5b8091505b5092915050565b60408051602081019091526000815290565b81548183558181151161212157600083815260209020612121918101908301612516565b5b505050565b81548183558181151161212157600083815260209020612121918101908301612516565b5b505050565b61229091905b80821115611b49576000815560010161251c565b5090565b90565b61229091905b80821115611b49576000815560010161251c565b5090565b905600a165627a7a7230582060f862963ad9cd0e55f0c084f9f7587a2540fff30877737a37ba1e0b0835d11e00290000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000001d6d5883d100064d1dc00000000000000000000000000000000000000000000000000000000000000000400000000000000000000000054479be2ca140163031efec1b7608b9759ec897a000000000000000000000000193b78eb3668982f17862181d083ff2e2a4dcc390000000000000000000000006833b2469e80ef0c72aa784e27b2666ab43568f50000000000000000000000001d68938194004722b814f00003d3eca19357344a

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

0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000001d6d5883d100064d1dc00000000000000000000000000000000000000000000000000000000000000000400000000000000000000000054479be2ca140163031efec1b7608b9759ec897a000000000000000000000000193b78eb3668982f17862181d083ff2e2a4dcc390000000000000000000000006833b2469e80ef0c72aa784e27b2666ab43568f50000000000000000000000001d68938194004722b814f00003d3eca19357344a

-----Decoded View---------------
Arg [0] : _owners (address[]): 0x1d68938194004722b814f00003d3eca19357344a
Arg [1] : _num_required (uint256): 4
Arg [2] : _initial_disbursement (uint256): 2223451220456790000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [2] : 00000000000000000000000000000000000000000001d6d5883d100064d1dc00
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [4] : 00000000000000000000000054479be2ca140163031efec1b7608b9759ec897a
Arg [5] : 000000000000000000000000193b78eb3668982f17862181d083ff2e2a4dcc39
Arg [6] : 0000000000000000000000006833b2469e80ef0c72aa784e27b2666ab43568f5
Arg [7] : 0000000000000000000000001d68938194004722b814f00003d3eca19357344a


Swarm Source

bzzr://60f862963ad9cd0e55f0c084f9f7587a2540fff30877737a37ba1e0b0835d11e
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.