Latest 25 transactions from a total of 23037 transactions

TxHash Age From To Value [TxFee]
0x1eb5327b88ba201b2da73f106664a90e924ce8347c8712bc0c49aa37cda0e792149 days 11 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0xfb5888d2632f6905dfface6d09a7220228b3f182b640164fab5797d21a43091f149 days 11 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x875ef7580648e8f3ce0ebecca4ba9a89cbec75ea92723fdfc5839ee526b56f3a149 days 12 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x4ae8a3a3e31ea61c859ff50f53fa0b105a8ba6e260f02d10db1368f6df3da4a6149 days 12 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x62b5c95ca0ac758b0a7510918b7e78dd2a1b1225b6231557539ba2a7a901fb1b149 days 13 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x9db23b59701903370b742f0da2288b7c554aba4cc2cc5689403f967a2ae0d770149 days 13 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0xe2bbd3dd9877d17b587d5e23015f3ea102d977e8a0aba465c8b2f3500d77d83c149 days 13 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x56a7016b1372901a3b1aa0faeeeabaf951392902346578d1ab7d9d16826bef27149 days 13 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x14f0a1b77a995c3cefd69307e26a812bf042008be80b5c5f0a109840ce29af56149 days 13 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x8ab56353dab5c461c77940f811b744da443cc83557ff1d783943fcedfc135cc1149 days 13 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0xd065bd7f5596c4544deeea1993af9e62f17b0a4c2f23a8c6d0625846bee142ff149 days 13 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x016bc41468e1fb6a5122006f76df0434b3918c7e4e740403771ed1462d4bbc18149 days 13 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x4b161242d2fc179aeb3d14c911702aaf21d56218a0386c95e99dfa59e22b2039149 days 13 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x1e0f7ca8f5ab0e650c5e63cf5aa962af9f118b4139651837b2e944d8a3efbd93149 days 14 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x294c36a8df003682316cd57bc40997b0d8a00555ee40978eda67a3406e2d46ea149 days 14 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x52fc2ba2676bbe6aff9d3b63bfae4d872d675216bccd39fdf2bdea0a8fb60ef6149 days 14 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x92ec9f6cbe6c574bff4438be7ed05d3383d9b37e4f0cc6b7f529700484d4aad4149 days 14 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x4413d4bee34dedcc8214677c059318355389dcb2f9a88b552044aeffef94bbda149 days 14 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0xc667d1c6c2075ea92ed942fc926e944c573f1adde1ea2f94856cfde06f22e3b0149 days 14 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x51c6b0158ba5ea80ebc126ff5d72b415a2d66cfd5ab8a8780593debe9a1c532b149 days 14 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x095e34a656608b025904acffa7c6a3e375589ff9c5821f8134fb91662aae4d6a149 days 14 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x0202c976dfacef33fe93d25476e813f5944370c284a6241cd3ee48edc810ccd5149 days 14 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x49f62b40385f2216a6029554a99703e44283ffbdcebe098099ade3680a8fb792149 days 15 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0x5f9ad5d456fa06ea3df44b94c4a1e116c7f39b142ebf53314347613419737627149 days 15 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
0xd4f1d172b693d4a0abb70096201b91ee7a5fd26c79dbd6ccb9f84e0e67fd649a149 days 15 hrs ago0xdaa1a6c972d4b8d57dce119e48c6abb19baf8402  IN   0xd36029d76af6fe4a356528e4dc66b2c18123597d0 Ether0.00105189
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x53cef8c963ad7218e0293fe63c502d6f44594faed421a45e7deeaafecaf2c3af4072946151 days 12 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0xc66f77054bf7536f3d1e7c8dd311e5394a4c8b7b0.00000006054 Ether
0x53cef8c963ad7218e0293fe63c502d6f44594faed421a45e7deeaafecaf2c3af4072946151 days 12 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0x72402058ea385fa9900ae16abd3459f9d0fa05bf0 Ether
0x4ad9c43f4239f23fa48be7f045b7d9cd4bd8348152e52ae0af9e24f40b6b40f14072940151 days 12 hrs ago0x06dfdf0daeb31df0e817d2575371ae6f850701810xd36029d76af6fe4a356528e4dc66b2c18123597d0.00000006054 Ether
0x3cc8c1ce98b0e9a6cbd06855b36fb66a2c11181303d98cfd9c2cee4a57ee919b4072912151 days 12 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0xc66f77054bf7536f3d1e7c8dd311e5394a4c8b7b0.00000004464 Ether
0x3cc8c1ce98b0e9a6cbd06855b36fb66a2c11181303d98cfd9c2cee4a57ee919b4072912151 days 12 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0x72402058ea385fa9900ae16abd3459f9d0fa05bf0 Ether
0x73cf8d1fc57511921e85cf8cfc47b54fa6d4b34ee1d3c852e3e85370d98a500f4072888151 days 12 hrs ago0x06dfdf0daeb31df0e817d2575371ae6f850701810xd36029d76af6fe4a356528e4dc66b2c18123597d0.00000004464 Ether
0xa53f107fdf2f8367e045ff3e624ba20aa44e47533dea1ae19f4c81710d3d9e1c4072726151 days 13 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0xc66f77054bf7536f3d1e7c8dd311e5394a4c8b7b0.0000000789 Ether
0xa53f107fdf2f8367e045ff3e624ba20aa44e47533dea1ae19f4c81710d3d9e1c4072726151 days 13 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0x72402058ea385fa9900ae16abd3459f9d0fa05bf0 Ether
0x034ed475b092b7ddf65973cdccc84e1ec29ffbc4857338a6f557c3b2dec28de34072712151 days 13 hrs ago0x06dfdf0daeb31df0e817d2575371ae6f850701810xd36029d76af6fe4a356528e4dc66b2c18123597d0.0000000789 Ether
0x7f468e14d0810cde7f60f28562efed05f1ff7e6d5df6adbceef3f55c559c50923993085163 days 14 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0x72402058ea385fa9900ae16abd3459f9d0fa05bf0 Ether
0x7f468e14d0810cde7f60f28562efed05f1ff7e6d5df6adbceef3f55c559c50923993085163 days 14 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0x72402058ea385fa9900ae16abd3459f9d0fa05bf0 Ether
0xdde7539d8b38b5a8ec0c8d861deca89e705f23e296907599938ccf28b77106d33993052163 days 14 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0xc66f77054bf7536f3d1e7c8dd311e5394a4c8b7b0.00000030121 Ether
0xdde7539d8b38b5a8ec0c8d861deca89e705f23e296907599938ccf28b77106d33993052163 days 14 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0x72402058ea385fa9900ae16abd3459f9d0fa05bf0 Ether
0xdde7539d8b38b5a8ec0c8d861deca89e705f23e296907599938ccf28b77106d33993052163 days 14 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0x72402058ea385fa9900ae16abd3459f9d0fa05bf0 Ether
0x4b1d5ac45484bc7fab97cdff3602cb30b66033b10a574c2941d5c4848151ab873993026163 days 14 hrs ago0x844888514b1f18eaa7334bb9bcf63f8e8d7756140xd36029d76af6fe4a356528e4dc66b2c18123597d0.00000001915 Ether
0xf33a69d4c3a75dc1de42fb7e9c2c881bd9af72db1490b92b245e127cce9099703993023163 days 14 hrs ago0x844888514b1f18eaa7334bb9bcf63f8e8d7756140xd36029d76af6fe4a356528e4dc66b2c18123597d0.00000027496 Ether
0x50d22061b817c653973d338c669b32dcc54fc8ef2cc862f53a21956fdc8ba82e3993019163 days 14 hrs ago0x844888514b1f18eaa7334bb9bcf63f8e8d7756140xd36029d76af6fe4a356528e4dc66b2c18123597d0.0000000071 Ether
0xb51b2aab9fede04999c6a6a40848ccbcdf5d0e4d3a2b042540c8dd96ef3e09933993019163 days 14 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0xc66f77054bf7536f3d1e7c8dd311e5394a4c8b7b0.00000072452 Ether
0xb51b2aab9fede04999c6a6a40848ccbcdf5d0e4d3a2b042540c8dd96ef3e09933993019163 days 14 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0x72402058ea385fa9900ae16abd3459f9d0fa05bf0 Ether
0xb51b2aab9fede04999c6a6a40848ccbcdf5d0e4d3a2b042540c8dd96ef3e09933993019163 days 14 hrs ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0x72402058ea385fa9900ae16abd3459f9d0fa05bf0 Ether
0xd94fc4461c11bcfaaf5b67064b7b29dbf4c9d67445a0663bfc44d245689f52763993018163 days 14 hrs ago0x844888514b1f18eaa7334bb9bcf63f8e8d7756140xd36029d76af6fe4a356528e4dc66b2c18123597d0.00000030419 Ether
0x8894b925fad2bf95d5f5d84f82926ed2b0685919c5b62792880f84ac7820e6e13993018163 days 14 hrs ago0x844888514b1f18eaa7334bb9bcf63f8e8d7756140xd36029d76af6fe4a356528e4dc66b2c18123597d0.00000042033 Ether
0x522e9ee6ce336c81052b4e753fdee9df9baf13c27d83ca3b54f3460f786493e03989626164 days 1 hr ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0xc66f77054bf7536f3d1e7c8dd311e5394a4c8b7b0.00000006222 Ether
0x522e9ee6ce336c81052b4e753fdee9df9baf13c27d83ca3b54f3460f786493e03989626164 days 1 hr ago0xd36029d76af6fe4a356528e4dc66b2c18123597d0x72402058ea385fa9900ae16abd3459f9d0fa05bf0 Ether
0xc392c18b7433e01253558a0d07bff25f4a6c0be8027b2e8ad540019127f1b16d3989600164 days 1 hr ago0x06dfdf0daeb31df0e817d2575371ae6f850701810xd36029d76af6fe4a356528e4dc66b2c18123597d0.00000006222 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: Stake
Compiler Version: v0.4.19+commit.c4cbbb05
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.19;

// File: contracts/SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

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

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

// File: contracts/Owned.sol

contract Owned {
  event OwnerAddition(address indexed owner);

  event OwnerRemoval(address indexed owner);

  // owner address to enable admin functions
  mapping (address => bool) public isOwner;

  address[] public owners;

  address public operator;

  modifier onlyOwner {

    require(isOwner[msg.sender]);
    _;
  }

  modifier onlyOperator {
    require(msg.sender == operator);
    _;
  }

  function setOperator(address _operator) external onlyOwner {
    require(_operator != address(0));
    operator = _operator;
  }

  function removeOwner(address _owner) public onlyOwner {
    require(owners.length > 1);
    isOwner[_owner] = false;
    for (uint i = 0; i < owners.length - 1; i++) {
      if (owners[i] == _owner) {
        owners[i] = owners[SafeMath.sub(owners.length, 1)];
        break;
      }
    }
    owners.length = SafeMath.sub(owners.length, 1);
    OwnerRemoval(_owner);
  }

  function addOwner(address _owner) external onlyOwner {
    require(_owner != address(0));
    if(isOwner[_owner]) return;
    isOwner[_owner] = true;
    owners.push(_owner);
    OwnerAddition(_owner);
  }

  function setOwners(address[] _owners) internal {
    for (uint i = 0; i < _owners.length; i++) {
      require(_owners[i] != address(0));
      isOwner[_owners[i]] = true;
      OwnerAddition(_owners[i]);
    }
    owners = _owners;
  }

  function getOwners() public constant returns (address[])  {
    return owners;
  }

}

// File: contracts/Token.sol

// Abstract contract for the full ERC 20 Token standard
// https://github.com/ethereum/EIPs/issues/20
pragma solidity ^0.4.19;

contract Token {
    /* This is a slight change to the ERC20 base standard.
    function totalSupply() constant returns (uint256 supply);
    is replaced with:
    uint256 public totalSupply;
    This automatically creates a getter function for the totalSupply.
    This is moved to the base contract since public getter functions are not
    currently recognised as an implementation of the matching abstract
    function by the compiler.
    */
    /// total amount of tokens
    uint256 public totalSupply;

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) public constant returns (uint256 balance);

    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _value) public returns (bool success);

    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);

    /// @notice `msg.sender` approves `_spender` to spend `_value` tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of tokens to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint256 _value) public returns (bool success);

    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

// File: contracts/StandardToken.sol

/*
You should inherit from StandardToken or, for a token like you would want to
deploy in something like Mist, see HumanStandardToken.sol.
(This implements ONLY the standard functions and NOTHING else.
If you deploy this, you won't have anything useful.)

Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20
.*/
pragma solidity ^0.4.19;


contract StandardToken is Token {

    function transfer(address _to, uint256 _value) public returns (bool success) {
        //Default assumes totalSupply can't be over max (2^256 - 1).
        //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.
        //Replace the if with this one instead.
        //require(balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]);
        require(balances[msg.sender] >= _value);
        balances[msg.sender] -= _value;
        balances[_to] += _value;
        Transfer(msg.sender, _to, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        //same as above. Replace this line with the following if you want to protect against wrapping uints.
        //require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]);
        require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value);
        balances[_to] += _value;
        balances[_from] -= _value;
        allowed[_from][msg.sender] -= _value;
        Transfer(_from, _to, _value);
        return true;
    }

    function balanceOf(address _owner) public constant returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }

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

// File: contracts/Validating.sol

contract Validating {

  modifier validAddress(address _address) {
    require(_address != address(0x0));
    _;
  }

  modifier notZero(uint _number) {
    require(_number != 0);
    _;
  }

  modifier notEmpty(string _string) {
    require(bytes(_string).length != 0);
    _;
  }

}

// File: contracts/Fee.sol

/**
  * @title FEE is an ERC20 token used to pay for trading on the exchange.
  * For deeper rational read https://leverj.io/whitepaper.pdf.
  * FEE tokens do not have limit. A new token can be generated by owner.
  */
contract Fee is Owned, Validating, StandardToken {

  /* This notifies clients about the amount burnt */
  event Burn(address indexed from, uint256 value);

  string public name;                   //fancy name: eg Simon Bucks
  uint8 public decimals;                //How many decimals to show. ie. There could 1000 base units with 3 decimals. Meaning 0.980 SBX = 980 base units. It's like comparing 1 wei to 1 ether.
  string public symbol;                 //An identifier: eg SBX
  string public version = 'F0.2';       //human 0.1 standard. Just an arbitrary versioning scheme.
  address public minter;

  modifier onlyMinter {
    require(msg.sender == minter);
    _;
  }

  /// @notice Constructor to set the owner, tokenName, decimals and symbol
  function Fee(
  address[] _owners,
  string _tokenName,
  uint8 _decimalUnits,
  string _tokenSymbol
  )
  public
  notEmpty(_tokenName)
  notEmpty(_tokenSymbol)
  {
    setOwners(_owners);
    name = _tokenName;
    decimals = _decimalUnits;
    symbol = _tokenSymbol;
  }

  /// @notice To set a new minter address
  /// @param _minter The address of the minter
  function setMinter(address _minter) external onlyOwner validAddress(_minter) {
    minter = _minter;
  }

  /// @notice To eliminate tokens and adjust the price of the FEE tokens
  /// @param _value Amount of tokens to delete
  function burnTokens(uint _value) public notZero(_value) {
    require(balances[msg.sender] >= _value);
    balances[msg.sender] = SafeMath.sub(balances[msg.sender], _value);
    totalSupply = SafeMath.sub(totalSupply, _value);
    Burn(msg.sender, _value);
  }

  /// @notice To send tokens to another user. New FEE tokens are generated when
  /// doing this process by the minter
  /// @param _to The receiver of the tokens
  /// @param _value The amount o
  function sendTokens(address _to, uint _value) public onlyMinter validAddress(_to) notZero(_value) {
    balances[_to] = SafeMath.add(balances[_to], _value);
    totalSupply = SafeMath.add(totalSupply, _value);
    Transfer(0x0, _to, _value);
  }
}

// File: contracts/GenericCall.sol

contract GenericCall {

  /************************************ abstract **********************************/
  modifier isAllowed {_;}
  /********************************************************************************/

  event Execution(address destination, uint value, bytes data);

  function execute(address destination, uint value, bytes data) external isAllowed {
    if (destination.call.value(value)(data)) {
      Execution(destination, value, data);
    }
  }
}

// File: contracts/Stake.sol

/**
  * stake users levs
  * get fee from trading contract
  * get eth from trading contract
  * calculate fee tokens to be generated
  * distribute fee tokens and lev to users in chunks.
  * re-purpose it for next trading duration.
  * what happens to extra fee if not enough trading happened? destroy it.
  * Stake will have full control over FEE.sol
  */
pragma solidity ^0.4.19;








contract Stake is Owned, Validating, GenericCall {
  using SafeMath for uint;

  event StakeEvent(address indexed user, uint levs, uint startBlock, uint endBlock);

  event RedeemEvent(address indexed user, uint levs, uint feeEarned, uint startBlock, uint endBlock);

  event FeeCalculated(uint feeCalculated, uint feeReceived, uint weiReceived, uint startBlock, uint endBlock);

  event StakingInterval(uint startBlock, uint endBlock);

  // User address to (lev tokens)*(blocks left to end)
  mapping (address => uint) public levBlocks;

  // User address to lev tokens at stake
  mapping (address => uint) public stakes;

  uint public totalLevs;

  // Total lev blocks. this will be help not to iterate through full mapping
  uint public totalLevBlocks;

  // Wei for each Fee token
  uint public weiPerFee;

  // Total fee to be distributed
  uint public feeForTheStakingInterval;

  // Lev token reference
  Token public levToken; //revisit: is there a difference in storage versus using address?

  // FEE token reference
  Fee public feeToken; //revisit: is there a difference in storage versus using address?

  uint public startBlock;

  uint public endBlock;

  address public wallet;

  bool public feeCalculated = false;

  modifier isStaking {
    require(startBlock <= block.number && block.number < endBlock);
    _;
  }

  modifier isDoneStaking {
    require(block.number >= endBlock);
    _;
  }

  modifier isAllowed{
    require(isOwner[msg.sender]);
    _;
  }

  function() public payable {
  }

  /// @notice Constructor to set all the default values for the owner, wallet,
  /// weiPerFee, tokenID and endBlock
  function Stake(
  address[] _owners,
  address _operator,
  address _wallet,
  uint _weiPerFee,
  address _levToken
  ) public
  validAddress(_wallet)
  validAddress(_operator)
  validAddress(_levToken)
  notZero(_weiPerFee)
  {
    setOwners(_owners);
    operator = _operator;
    wallet = _wallet;
    weiPerFee = _weiPerFee;
    levToken = Token(_levToken);
  }

  function version() external pure returns (string) {
    return "1.0.0";
  }

  /// @notice To set the the address of the LEV token
  /// @param _levToken The token address
  function setLevToken(address _levToken) external validAddress(_levToken) onlyOwner {
    levToken = Token(_levToken);
  }

  /// @notice To set the FEE token address
  /// @param _feeToken The address of that token
  function setFeeToken(address _feeToken) external validAddress(_feeToken) onlyOwner {
    feeToken = Fee(_feeToken);
  }

  /// @notice To set the wallet address by the owner only
  /// @param _wallet The wallet address
  function setWallet(address _wallet) external validAddress(_wallet) onlyOwner {
    wallet = _wallet;
  }

  /// @notice Public function to stake tokens executable by any user.
  /// The user has to approve the staking contract on token before calling this function.
  /// Refer to the tests for more information
  /// @param _quantity How many LEV tokens to lock for staking
  function stakeTokens(uint _quantity) external isStaking notZero(_quantity) {
    require(levToken.allowance(msg.sender, this) >= _quantity);

    levBlocks[msg.sender] = levBlocks[msg.sender].add(_quantity.mul(endBlock.sub(block.number)));
    stakes[msg.sender] = stakes[msg.sender].add(_quantity);
    totalLevBlocks = totalLevBlocks.add(_quantity.mul(endBlock.sub(block.number)));
    totalLevs = totalLevs.add(_quantity);
    require(levToken.transferFrom(msg.sender, this, _quantity));
    StakeEvent(msg.sender, _quantity, startBlock, endBlock);
  }

  function revertFeeCalculatedFlag(bool _flag) external onlyOwner isDoneStaking {
    feeCalculated = _flag;
  }

  /// @notice To update the price of FEE tokens to the current value.
  /// Executable by the operator only
  function updateFeeForCurrentStakingInterval() external onlyOperator isDoneStaking {
    require(feeCalculated == false);
    uint feeReceived = feeToken.balanceOf(this);
    feeForTheStakingInterval = feeForTheStakingInterval.add(feeReceived.add(this.balance.div(weiPerFee)));
    feeCalculated = true;
    FeeCalculated(feeForTheStakingInterval, feeReceived, this.balance, startBlock, endBlock);
    if (feeReceived > 0) feeToken.burnTokens(feeReceived);
    if (this.balance > 0) wallet.transfer(this.balance);
  }

  /// @notice To unlock and recover your LEV and FEE tokens after staking and fee to any user
  function redeemLevAndFeeByStaker() external {
    redeemLevAndFee(msg.sender);
  }

  function redeemLevAndFeeToStakers(address[] _stakers) external onlyOperator {
    for (uint i = 0; i < _stakers.length; i++) redeemLevAndFee(_stakers[i]);
  }

  function redeemLevAndFee(address _staker) private validAddress(_staker) isDoneStaking {
    require(feeCalculated);
    require(totalLevBlocks > 0);

    uint levBlock = levBlocks[_staker];
    uint stake = stakes[_staker];
    require(stake > 0);

    uint feeEarned = levBlock.mul(feeForTheStakingInterval).div(totalLevBlocks);
    delete stakes[_staker];
    delete levBlocks[_staker];
    totalLevs = totalLevs.sub(stake);
    if (feeEarned > 0) feeToken.sendTokens(_staker, feeEarned);
    require(levToken.transfer(_staker, stake));
    RedeemEvent(_staker, stake, feeEarned, startBlock, endBlock);
  }

  /// @notice To start a new trading staking-interval where the price of the FEE will be updated
  /// @param _start The starting block.number of the new staking-interval
  /// @param _end When the new staking-interval ends in block.number
  function startNewStakingInterval(uint _start, uint _end)
  external
  notZero(_start)
  notZero(_end)
  onlyOperator
  isDoneStaking
  {
    require(totalLevs == 0);

    startBlock = _start;
    endBlock = _end;

    // reset
    totalLevBlocks = 0;
    feeForTheStakingInterval = 0;
    feeCalculated = false;
    StakingInterval(_start, _end);
  }

}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_levToken","type":"address"}],"name":"setLevToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_feeToken","type":"address"}],"name":"setFeeToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"stakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"updateFeeForCurrentStakingInterval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalLevBlocks","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"levBlocks","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_stakers","type":"address[]"}],"name":"redeemLevAndFeeToStakers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"operator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_quantity","type":"uint256"}],"name":"stakeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeForTheStakingInterval","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLevs","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_start","type":"uint256"},{"name":"_end","type":"uint256"}],"name":"startNewStakingInterval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeCalculated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"}],"name":"setOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"execute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_flag","type":"bool"}],"name":"revertFeeCalculatedFlag","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"levToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"redeemLevAndFeeByStaker","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_wallet","type":"address"}],"name":"setWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"weiPerFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_operator","type":"address"},{"name":"_wallet","type":"address"},{"name":"_weiPerFee","type":"uint256"},{"name":"_levToken","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"levs","type":"uint256"},{"indexed":false,"name":"startBlock","type":"uint256"},{"indexed":false,"name":"endBlock","type":"uint256"}],"name":"StakeEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"levs","type":"uint256"},{"indexed":false,"name":"feeEarned","type":"uint256"},{"indexed":false,"name":"startBlock","type":"uint256"},{"indexed":false,"name":"endBlock","type":"uint256"}],"name":"RedeemEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"feeCalculated","type":"uint256"},{"indexed":false,"name":"feeReceived","type":"uint256"},{"indexed":false,"name":"weiReceived","type":"uint256"},{"indexed":false,"name":"startBlock","type":"uint256"},{"indexed":false,"name":"endBlock","type":"uint256"}],"name":"FeeCalculated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"startBlock","type":"uint256"},{"indexed":false,"name":"endBlock","type":"uint256"}],"name":"StakingInterval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"destination","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526000600d60146101000a81548160ff02191690831515021790555034156200002b57600080fd5b60405162002a6438038062002a648339810160405280805182019190602001805190602001909190805190602001909190805190602001909190805190602001909190505082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620000ae57600080fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620000ec57600080fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200012a57600080fd5b84600081141515156200013c57600080fd5b6200015b896200023464010000000002620023a6176401000000009004565b87600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508560078190555084600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505062000463565b60008090505b81518110156200037157600073ffffffffffffffffffffffffffffffffffffffff1682828151811015156200026b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff16141515156200029957600080fd5b60016000808484815181101515620002ad57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081818151811015156200031757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a280806001019150506200023a565b8160019080519060200190620003899291906200038e565b505050565b8280548282559060005260206000209081019282156200040a579160200282015b82811115620004095782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620003af565b5b5090506200041991906200041d565b5090565b6200046091905b808211156200045c57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010162000424565b5090565b90565b6125f180620004736000396000f300606060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c2714610182578063083c6323146101e5578063133323c81461020e57806315cce2241461024757806316934fc414610280578063173825d9146102cd5780632f54bf6e1461030657806332191017146103575780633328f3961461036c57806341237fd51461039557806348cd4cb1146103e2578063521eb2731461040b578063545842ff1461046057806354fd4d501461048e578063570ca7351461051c578063647846a5146105715780637065cb48146105c65780637547c7a3146105ff5780638cac5f5514610622578063a0e67e2b1461064b578063a675807e146106b5578063a7ae9756146106de578063a7f2cc541461070a578063b3ab15fb14610737578063b61d27f614610770578063c761a2f5146107c6578063c819f6e9146107eb578063daa147f314610840578063deaa59df14610855578063ebdb730d1461088e575b005b341561018d57600080fd5b6101a360048080359060200190919050506108b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101f057600080fd5b6101f86108f6565b6040518082815260200191505060405180910390f35b341561021957600080fd5b610245600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108fc565b005b341561025257600080fd5b61027e600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506109d5565b005b341561028b57600080fd5b6102b7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610aae565b6040518082815260200191505060405180910390f35b34156102d857600080fd5b610304600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ac6565b005b341561031157600080fd5b61033d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d24565b604051808215151515815260200191505060405180910390f35b341561036257600080fd5b61036a610d44565b005b341561037757600080fd5b61037f6110e9565b6040518082815260200191505060405180910390f35b34156103a057600080fd5b6103cc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110ef565b6040518082815260200191505060405180910390f35b34156103ed57600080fd5b6103f5611107565b6040518082815260200191505060405180910390f35b341561041657600080fd5b61041e61110d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046b57600080fd5b61048c60048080359060200190820180359060200191909192905050611133565b005b341561049957600080fd5b6104a16111e6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104e15780820151818401526020810190506104c6565b50505050905090810190601f16801561050e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561052757600080fd5b61052f611229565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057c57600080fd5b61058461124f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105d157600080fd5b6105fd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611275565b005b341561060a57600080fd5b610620600480803590602001909190505061145f565b005b341561062d57600080fd5b6106356118e9565b6040518082815260200191505060405180910390f35b341561065657600080fd5b61065e6118ef565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106a1578082015181840152602081019050610686565b505050509050019250505060405180910390f35b34156106c057600080fd5b6106c8611983565b6040518082815260200191505060405180910390f35b34156106e957600080fd5b6107086004808035906020019091908035906020019091905050611989565b005b341561071557600080fd5b61071d611aa7565b604051808215151515815260200191505060405180910390f35b341561074257600080fd5b61076e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611aba565b005b341561077b57600080fd5b6107c4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919080359060200190820180359060200191909192905050611b91565b005b34156107d157600080fd5b6107e960048080351515906020019091905050611cc3565b005b34156107f657600080fd5b6107fe611d48565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561084b57600080fd5b610853611d6e565b005b341561086057600080fd5b61088c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d79565b005b341561089957600080fd5b6108a1611e52565b6040518082815260200191505060405180910390f35b6001818154811015156108c657fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561093957600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561099057600080fd5b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a1257600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610a6957600080fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60046020528060005260406000206000915090505481565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b1f57600080fd5b60018080549050111515610b3257600080fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600090505b6001808054905003811015610cbf578173ffffffffffffffffffffffffffffffffffffffff16600182815481101515610bc357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610cb2576001610c1d6001805490506001611e58565b815481101515610c2957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600182815481101515610c6457fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cbf565b8080600101915050610b8e565b610ccf6001805490506001611e58565b600181610cdc9190612301565b508173ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a25050565b60006020528060005260406000206000915054906101000a900460ff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610da257600080fd5b600c544310151515610db357600080fd5b60001515600d60149054906101000a900460ff161515141515610dd557600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610e9a57600080fd5b6102c65a03f11515610eab57600080fd5b505050604051805190509050610f09610ef8610ee96007543073ffffffffffffffffffffffffffffffffffffffff1631611e7190919063ffffffff16565b83611e8c90919063ffffffff16565b600854611e8c90919063ffffffff16565b6008819055506001600d60146101000a81548160ff0219169083151502179055507f69361fe26cc838b9bed2d497e0d10881912387b276c7f1cfd62d3bcbd5d585e0600854823073ffffffffffffffffffffffffffffffffffffffff1631600b54600c54604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a1600081111561104c57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636d1b229d826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561103757600080fd5b6102c65a03f1151561104857600080fd5b5050505b60003073ffffffffffffffffffffffffffffffffffffffff163111156110e657600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156110e557600080fd5b5b50565b60065481565b60036020528060005260406000206000915090505481565b600b5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561119157600080fd5b600090505b828290508110156111e1576111d483838381811015156111b257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16611eaa565b8080600101915050611196565b505050565b6111ee61232d565b6040805190810160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156112cc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561130857600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561135e5761145c565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600180548060010182816113c99190612341565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25b50565b43600b54111580156114725750600c5443105b151561147d57600080fd5b806000811415151561148e57600080fd5b81600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b151561158857600080fd5b6102c65a03f1151561159957600080fd5b50505060405180519050101515156115b057600080fd5b6116286115da6115cb43600c54611e5890919063ffffffff16565b846122ce90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8c90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116bd82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061173b61172a61171b43600c54611e5890919063ffffffff16565b846122ce90919063ffffffff16565b600654611e8c90919063ffffffff16565b60068190555061175682600554611e8c90919063ffffffff16565b600581905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561185d57600080fd5b6102c65a03f1151561186e57600080fd5b50505060405180519050151561188357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f622b0b297bd118c5266c715c5635eeeef788c83a63bd3c707fb9f50b19aff18d83600b54600c5460405180848152602001838152602001828152602001935050505060405180910390a25050565b60085481565b6118f761236d565b600180548060200260200160405190810160405280929190818152602001828054801561197957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161192f575b5050505050905090565b60055481565b816000811415151561199a57600080fd5b81600081141515156119ab57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a0757600080fd5b600c544310151515611a1857600080fd5b6000600554141515611a2957600080fd5b83600b8190555082600c81905550600060068190555060006008819055506000600d60146101000a81548160ff0219169083151502179055507f5a68dce2063a52f4b812a07c4269bb7fc25fc225acac5a561b4d5ec9879a53178484604051808381526020018281526020019250505060405180910390a150505050565b600d60149054906101000a900460ff1681565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611b1157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b4d57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611be857600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168383836040518083838082843782019150509250505060006040518083038185876187965a03f19250505015611cbd577f39f46e1dedea184144e3feaf4e595d78345d9a9d8b43da87912efbe4df3c8a3184848484604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a15b50505050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611d1a57600080fd5b600c544310151515611d2b57600080fd5b80600d60146101000a81548160ff02191690831515021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d7733611eaa565b565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611db657600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e0d57600080fd5b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60075481565b6000828211151515611e6657fe5b818303905092915050565b6000808284811515611e7f57fe5b0490508091505092915050565b6000808284019050838110151515611ea057fe5b8091505092915050565b600080600083600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611eec57600080fd5b600c544310151515611efd57600080fd5b600d60149054906101000a900460ff161515611f1857600080fd5b6000600654111515611f2957600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250600083111515611fbc57600080fd5b611fe5600654611fd7600854876122ce90919063ffffffff16565b611e7190919063ffffffff16565b9150600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009055600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905561208283600554611e5890919063ffffffff16565b600581905550600082111561216a57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166305ab421d86846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561215557600080fd5b6102c65a03f1151561216657600080fd5b5050505b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561223757600080fd5b6102c65a03f1151561224857600080fd5b50505060405180519050151561225d57600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167fd2650fe53ed3f2b2748930f19c91bb23524536efc659be088ef7ababba66738a8484600b54600c546040518085815260200184815260200183815260200182815260200194505050505060405180910390a25050505050565b600080828402905060008414806122ef57508284828115156122ec57fe5b04145b15156122f757fe5b8091505092915050565b815481835581811511612328578183600052602060002091820191016123279190612381565b5b505050565b602060405190810160405280600081525090565b815481835581811511612368578183600052602060002091820191016123679190612381565b5b505050565b602060405190810160405280600081525090565b6123a391905b8082111561239f576000816000905550600101612387565b5090565b90565b60008090505b81518110156124dd57600073ffffffffffffffffffffffffffffffffffffffff1682828151811015156123db57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415151561240857600080fd5b6001600080848481518110151561241b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818181518110151561248457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a280806001019150506123ac565b81600190805190602001906124f39291906124f8565b505050565b828054828255906000526020600020908101928215612571579160200282015b828111156125705782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612518565b5b50905061257e9190612582565b5090565b6125c291905b808211156125be57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612588565b5090565b905600a165627a7a7230582025dbdf7bcd04670b96fbd849df96a59ca5c39a3c39906cce63653a6f6e696851002900000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000daa1a6c972d4b8d57dce119e48c6abb19baf8402000000000000000000000000c66f77054bf7536f3d1e7c8dd311e5394a4c8b7b00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000aa7127e250e87476fdd253f15e86a4ea9c4c4bd40000000000000000000000000000000000000000000000000000000000000004000000000000000000000000833a2fa19349daf085b94376ac3042197cf66443000000000000000000000000d8ada5c29785f5e486bba48bd196b103d58bbca50000000000000000000000007461ccf1fd55c069ce13e07d163c65c78c8b48d1000000000000000000000000daa1a6c972d4b8d57dce119e48c6abb19baf8402

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

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 000000000000000000000000daa1a6c972d4b8d57dce119e48c6abb19baf8402
Arg [2] : 000000000000000000000000c66f77054bf7536f3d1e7c8dd311e5394a4c8b7b
Arg [3] : 00000000000000000000000000000000000000000000000000000000000f4240
Arg [4] : 000000000000000000000000aa7127e250e87476fdd253f15e86a4ea9c4c4bd4
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 000000000000000000000000833a2fa19349daf085b94376ac3042197cf66443
Arg [7] : 000000000000000000000000d8ada5c29785f5e486bba48bd196b103d58bbca5
Arg [8] : 0000000000000000000000007461ccf1fd55c069ce13e07d163c65c78c8b48d1
Arg [9] : 000000000000000000000000daa1a6c972d4b8d57dce119e48c6abb19baf8402


   Swarm Source:
bzzr://25dbdf7bcd04670b96fbd849df96a59ca5c39a3c39906cce63653a6f6e696851

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward