Contract 0x1f12efd28c75b84724a954281c2e0a95a6601fd7

Contract Overview

Balance:
0 Ether
TxHash Block Age From To Value [TxFee]
0x22dd12ea8f575073534c77684c7169c30c6d802a9e875a595d7b7e0a8d826c76481428169 days 17 hrs ago0xb6035d58489028e46925c4aa9c2aae4c866141a1 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0x4011d92d7339150a13a0fbd8af2eb7e72a7290c11b9b8129bcbfea236a71f726481427769 days 17 hrs ago0x3e543af4a810c5046a8f8b2c3fd10177a5ef5e3e IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0x65a32d785c17cdade2fc33f13f83f6d2b374b9065ae6d85a5b0436e61df8c634481427569 days 17 hrs ago0xd8727d03242d8469feb67fd4369330a3776e8bd6 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0xad1433a026ff62fff35114daf8d802760b8d1764f3357e1f35de7f49cfc0aabd481427569 days 17 hrs ago0x8d0aac3a421bfc8e767ca4251e62286c467627eb IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0xfafc96f2fa0991469f0581ee784e42df74d4911fe8f1d8494cf709a0b710595d481427269 days 17 hrs ago0x8e779cdef8bb43178b018101f54ac3230ec19495 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000089166
0x5d34a4da2172a672d35a1cec195ced269d32779413fee5472779384ea5fe5cf8481418069 days 18 hrs ago0x9edb93bec9d003653a3db73b43f1759168ec92ca IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0x1e2c5f64eb38af97b0513699f55613f4419b76db74cd42eac2745a7f2b990555481416169 days 18 hrs ago0x1b3220f72ebef25649a97c7d995e437f6f8a9e7b IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0x5d1721530f5dad7c57f759f0cb785043ad11eac14bc34f0f956d5754e3ba11d8481413469 days 18 hrs ago0xcc3b1871d111c7ed8d01a4890aebd2ae778e43f2 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000024618
0xee6d99e8ac70cc5d22ff3142ed50b79dc43f0e7cdb7fb0375895aeaad200d746481412969 days 18 hrs ago0x87aa1150caf247a35f303aa051568a81feca11a2 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000980826
0x01cdaa668e714e03c3b7ff0981808c4af5411d66e0e1b33fa53cb80be58e89fe481408169 days 18 hrs ago0x5062625afadae885066b0486733bd1bb3d1da729 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0x773e01f6b80658fa171dd745ce996e523ff93d20376ecfb2797d4ba3a38701d9481407769 days 18 hrs ago0xf85c9972b6e2e133460ef6a41bfe80c3289b9b57 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0xec4c44ba755bcbc8bc6fcc1651177868f7042a021c8d824f4845b2e37396ad08481407769 days 18 hrs ago0xcc17d0cb773a2cfabca13aaecb8904b86b213f04 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0x3701043eff48bcda54322f424a3fb2a7568a0d1a3b77b08d94f666f52e7cef92481407569 days 18 hrs ago0x87352af26805176272dd48a865e0dcd31151aa22 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0x9a249229bae94eba8b06061b548a5258a7fb48df6b76ec34bd2301f29141137c481406469 days 18 hrs ago0x5a202e2f409a5c8e998c501a8844e9a274548eb1 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000089166
0xbd0d5f946875992f8269058150c1104c5a75115f205d1501828c82788c3c4b28481405469 days 18 hrs ago0x84c170ed7d6c7d5a0f47805665d52fb11e4862b4 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.0044583
0x9a74b893b046202b65aeef8a337797ad5aeb7096f5735b479bf018167b986ef2481404569 days 18 hrs ago0x39219b5423a08cd4b40db6002cb607b505e6c6c6 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.00222915
0x46b8b85eb3b58e74dbe10e36b80dbc646359292c84501217d8757d4aacbef6ae481403969 days 18 hrs ago0xcc3b1871d111c7ed8d01a4890aebd2ae778e43f2 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0xec34942fcd9ac35047ce6ee72de0eb3dd0410d7a71d49f2e288820552b43b564481402969 days 18 hrs ago0x0f8881dd7c7fbbdcd54ce69d95c5a5ab0bcf86ff IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000133749
0x6a27bc4931eb39d1ba843151dcafa58077279cf8713a13353a1eef5629803218481402369 days 18 hrs ago0x590e422bd9284c49d5f5f5121a58c652d0b32dca IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0xf4552b4906c90f1686b6f7f7b047e3f677ef1abc63ad5fcb8b454b226b96e9e9481401669 days 18 hrs ago0x99351e30a87550786acb5162fa5d7e118359db78 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.002006235
0xbba53edf1d4b420d4cad89b7a64e9c461900f873a92b888b8360a174cadd0bb7481400069 days 18 hrs ago0x7cbe8052cdd0530fcd169c1263448a66acbf9ace IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0xedfb82abe009a8459733f7107f12ff2ba5ba7c2f45509d1e0afc5c0bb6dca39d481398469 days 19 hrs ago0xae3b1dee6e1b42bb0007e8d78b1284b198d5060a IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0x2ce82dc718737426a19b3a0135a613d0b209d366f7488211764ce67f9b2b90ba481397569 days 19 hrs ago0x58e93d68ca59d5064ce985afda3ff5fa04e74155 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000044583
0xf666287444ffa2d1e21183ee21a95fef3957a41611fc876ccdc9dd5513c4d5f7481397569 days 19 hrs ago0xa4dec2b85edab57c0c1ccb65f3bc7d1c26a4bfb8 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.0044583
0xec495a87a677ad52c556949c7c885438e7a00378b4882649291fb0fc94689d91481397469 days 19 hrs ago0x84730f48ae74e8185fefdad76e12eabd117e72b4 IN  0x1f12efd28c75b84724a954281c2e0a95a6601fd70 Ether0.000089166
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Verified Source Code for Contract 0x1112807e0b526bfd5e649bddfe02991bca73e2f5

Contract Name:
VerityEvent

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes

Runs (Optimizer):
200

Contract Source Code

pragma solidity ^0.4.24;

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

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

contract VerityEvent
{
  /// Contract's owner, used for permission management
  address public owner;
  /// Token contract address, used for tokend distribution
  address public tokenAddress;

  /// owner can recover tokens and ether after this time
  uint public leftoversRecoverableAfter;

  /**
  * A list of all the participating wallet addresses, implemented as a mapping
  * to provide constant lookup times.
  */
  mapping(address => bool) participants;
  /// A mapping of addresses to their assigned rewards
  mapping(address => mapping(string => uint)) rewards;

  /// Event application start time, users cannot apply to participate before it
  uint public applicationStartTime;
  /// Event application end time, users cannot apply after this time
  uint public applicationEndTime;

  /// Data feed hash, used for verification
  string public dataFeedHash;
  
  /// Event result
  string public eventResult;

  /**
  * Event's states
  * Events advance in the order defined here. Once the event reaches "Reward"
  * state, it cannot advance further.
  * Event states:
  *	 - Waiting     -- Contract has been created, nothing is happening yet
  *	 - Application -- After applicationStartTime, the event advances here
  *	   new wallets can be added to the participats list during this state.
  *	 - Running     -- Event is running, no new participants can be added
  *	 - Reward      -- Participants can claim their payouts here
  */
  enum EventStates
  {
    Waiting,
    Application,
    Running,
    Reward
  }

  /// Event's state, as described above. Defaults to Waiting.
  EventStates eventState = EventStates.Waiting;

  event StateTransition(EventStates newState);
  event JoinEvent(address wallet);
  event ClaimReward(address recipient);
  event Error(string description);

  constructor(
    uint _applicationStartTime,
    uint _applicationEndTime,
    address _tokenAddress,
    uint _leftoversRecoverableAfter
  )
    public
    payable
  {
    require(_applicationStartTime < _applicationEndTime);

    applicationStartTime = _applicationStartTime;
    applicationEndTime = _applicationEndTime;
    tokenAddress = _tokenAddress;

    owner = msg.sender;
    leftoversRecoverableAfter = _leftoversRecoverableAfter;
  }

  /**
  * A modifier signifiying that a certain method can only be used by the creator
  * of the contract.
  * Rollbacks the transaction on failure.
  */
  modifier onlyOwner()
  {
    require(msg.sender == owner);
    _;
  }
  
  /**
  * A modifier signifiying that a certain method can only be used by the nodes
  * of the event.
  * Rollbacks the transaction on failure.
  */
  modifier onlyNodes()
  {
    require(msg.sender == 0x8a08E65003a0f679293fb23ed11D2A53BCd43BB3);
    _;
  }

  /**
  * 	A modifier signifying that a certain method can only be used by a wallet
  * 	marked as a participant.
  * 	Rollbacks the transaction or failure.
  */
  modifier onlyParticipating()
  {
    require(isParticipating(msg.sender));
    _;
  }

  /**
  * A modifier signifying that a certain method can only be used when the event
  * is in a certain state.
  *
  * @param _state The event's required state
  *
  * Example:
  * 	function claimReward() onlyParticipanting onlyState(EventStates.Reward) {
  * 		// ... content
  * 	}
  */
  modifier onlyState(EventStates _state)
  {
    require(_state == eventState);
    _;
  }

  /**
  * A modifier taking care of all the timed state transitions.
  * Should always be used before all other modifiers, especially `onlyState`,
  * since it can change state.
  * Should probably be used in ALL non-constant (transaction) methods of
  * the contract.
  */
  modifier timedStateTransition()
  {
    if (eventState == EventStates.Waiting && now >= applicationStartTime) {
      advanceState();
    }

    if (eventState == EventStates.Application && now >= applicationEndTime) {
      advanceState();
    }

    _;
  }

  modifier onlyAfterLefroversCanBeRecovered()
  {
    require(now >= leftoversRecoverableAfter);
    _;
  }

  /**
  * Ensure we can receive money at any time.
  *
  * Not used, but we might want to extend the reward fund while event is running.
  */
  function() public payable {}

  /**
  * Apply for participation in this event.
  *
  * Available only during the Application state.
  * A transaction to this function has to be done by the users themselves,
  * registering their wallet address as a participent.
  * The transaction does not have to include any funds.
  */
  function joinEvent()
    public
    timedStateTransition
  {
    if (isParticipating(msg.sender))
    {
      emit Error("You are already participating.");
      return;
    }

    if (eventState != EventStates.Application)
    {
      emit Error("You can only join in the Application state.");
      return;
    }

    participants[msg.sender] = true;
    emit JoinEvent(msg.sender);
  }

  /**
  * Checks whether an address is participating in this event.
  *
  * @param _user The addres to check for participation
  * @return {bool} Whether the given address is a participant of this event
  */
  function isParticipating(address _user) public constant returns(bool)
  {
    return participants[_user];
  }

  /**
  * Assign the actual rewards.
  *
  * Receives a list of addresses and a list rewards. Mapping between the two
  * is done by the addresses' and reward's numerical index in the list, so
  * order is important.
  *
  * @param _addresses A list of addresses
  * @param _etherRewards A list of ether rewards, must be the exact same length as addresses
  * @param _tokenRewards A list of token rewards, must be the exact same length as addresses
  */
  function setRewards(
    address[] _addresses,
    uint[] _etherRewards,
    uint[] _tokenRewards
  )
    public
    onlyNodes
    timedStateTransition
    onlyState(EventStates.Running)
  {
    require(
      _addresses.length == _etherRewards.length &&
        _addresses.length == _tokenRewards.length
    );

    for (uint i = 0; i < _addresses.length; ++i) {
      rewards[_addresses[i]]["ether"] = _etherRewards[i];
      rewards[_addresses[i]]["token"] = _tokenRewards[i];
    }
  }

  function markRewardsSet()
    public
    onlyNodes
    timedStateTransition
    onlyState(EventStates.Running)
  {
    advanceState();
  }

  /**
  * Returns the calling user's assigned rewards. Can be 0.
  *
  * Only available to participating users in the Reward state, since rewards
  * are not assigned before that.
  */
  function getReward()
    public
    constant
    returns(uint[2])
  {
    return [rewards[msg.sender]["ether"], rewards[msg.sender]["token"]];
  }

  /**
  * Claim a reward.
  * Needs to be called by the users themselves.
  *
  * Only available in the Reward state, after rewards have been received from
  * the validation nodes.
  */
  function claimReward()
    public
    onlyParticipating
    onlyState(EventStates.Reward)
  {
    if (rewards[msg.sender]["ether"] == 0 && rewards[msg.sender]["token"] == 0)
    {
      emit Error("You do not have any rewards to claim.");
      return;
    }

    if (address(this).balance < rewards[msg.sender]["ether"] ||
          VerityToken(tokenAddress).balanceOf(address(this)) < rewards[msg.sender]["token"])
    {
      emit Error("Critical error: not enough balance to pay out reward. Contact Eventum.");
      return;
    }

    uint etherReward = rewards[msg.sender]["ether"];
    uint tokenReward = rewards[msg.sender]["token"];
    rewards[msg.sender]["ether"] = 0;
    rewards[msg.sender]["token"] = 0;

    msg.sender.transfer(etherReward);
    VerityToken(tokenAddress).transfer(msg.sender, tokenReward);

    emit ClaimReward(msg.sender);
  }

  /**
  * Advances the event's state to the next one. Only for internal use.
  */
  function advanceState() private
  {
    require(eventState != EventStates.Reward);

    eventState = EventStates(uint(eventState) + 1);
    emit StateTransition(eventState);
  }

  function setDataFeedHash(string _hash) public onlyOwner
  {
    dataFeedHash = _hash;
  }

  function getState() public constant returns(uint)
  {
    return uint(eventState);
  }

  function getBalance() public constant returns(uint[2])
  {
    return [
      address(this).balance,
      VerityToken(tokenAddress).balanceOf(address(this))
    ];
  }
  
  function setEventResult(string _result)
    public
    onlyNodes
    onlyState(EventStates.Reward)
  {
      eventResult = _result;
  }
  
  function getResult() public constant returns(string)
  {
    return eventResult;
  }

  function recoverLeftovers() public onlyOwner onlyAfterLefroversCanBeRecovered
  {
    owner.transfer(address(this).balance);
    uint tokenBalance = VerityToken(tokenAddress).balanceOf(address(this));
    VerityToken(tokenAddress).transfer(owner, tokenBalance);
  }
}

Contract ABI

[{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256[2]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getState","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_etherRewards","type":"uint256[]"},{"name":"_tokenRewards","type":"uint256[]"}],"name":"setRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"markRewardsSet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getReward","outputs":[{"name":"","type":"uint256[2]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dataFeedHash","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_hash","type":"string"}],"name":"setDataFeedHash","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"applicationEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"eventResult","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_result","type":"string"}],"name":"setEventResult","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"applicationStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getResult","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"recoverLeftovers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"leftoversRecoverableAfter","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"isParticipating","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"joinEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_applicationStartTime","type":"uint256"},{"name":"_applicationEndTime","type":"uint256"},{"name":"_tokenAddress","type":"address"},{"name":"_leftoversRecoverableAfter","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newState","type":"uint8"}],"name":"StateTransition","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"wallet","type":"address"}],"name":"JoinEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"}],"name":"ClaimReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"description","type":"string"}],"name":"Error","type":"event"}]

Contract Creation Code

608060408190526009805460ff1916905580806114c3813981016040908152815160208301519183015160609093015190929082841061003e57600080fd5b60059390935560069190915560018054600160a060020a03909216600160a060020a0319928316179055600080549091163317905560025561143e806100856000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166312065fe081146101085780631865c57d146101585780631a0ddce91461017f5780632cc689f9146102465780633d18b9121461025b5780634227357c14610270578063437933cc146102fa5780634e1937ab14610353578063676fdbb1146103685780638da5cb5b1461037d5780639d76ea58146103ae578063a376c19d146103c3578063b88a802f1461041c578063c17b9b9514610431578063de29278914610446578063efba9bd21461045b578063f38a803f14610470578063f4caee8814610485578063f9010d19146104ba575b005b34801561011457600080fd5b5061011d6104cf565b6040518082600260200280838360005b8381101561014557818101518382015260200161012d565b5050505090500191505060405180910390f35b34801561016457600080fd5b5061016d610582565b60408051918252519081900360200190f35b34801561018b57600080fd5b506040805160206004803580820135838102808601850190965280855261010695369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061059b9650505050505050565b34801561025257600080fd5b50610106610766565b34801561026757600080fd5b5061011d610819565b34801561027c57600080fd5b50610285610893565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102bf5781810151838201526020016102a7565b50505050905090810190601f1680156102ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101069436949293602493928401919081908401838280828437509497506109219650505050505050565b34801561035f57600080fd5b5061016d61094f565b34801561037457600080fd5b50610285610955565b34801561038957600080fd5b506103926109b0565b60408051600160a060020a039092168252519081900360200190f35b3480156103ba57600080fd5b506103926109bf565b3480156103cf57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101069436949293602493928401919081908401838280828437509497506109ce9650505050505050565b34801561042857600080fd5b50610106610a2f565b34801561043d57600080fd5b5061016d610ea3565b34801561045257600080fd5b50610285610ea9565b34801561046757600080fd5b50610106610f3f565b34801561047c57600080fd5b5061016d6110d3565b34801561049157600080fd5b506104a6600160a060020a03600435166110d9565b604080519115158252519081900360200190f35b3480156104c657600080fd5b506101066110f7565b6104d761133f565b604080518082018252308031825260015483517f70a08231000000000000000000000000000000000000000000000000000000008152600481019290925292519192602080850193600160a060020a03909216926370a0823192602480830193928290030181600087803b15801561054e57600080fd5b505af1158015610562573d6000803e3d6000fd5b505050506040513d602081101561057857600080fd5b5051905290505b90565b60095460009060ff16600381111561059657fe5b905090565b6000738a08e65003a0f679293fb23ed11d2a53bcd43bb333146105bd57600080fd5b600060095460ff1660038111156105d057fe5b1480156105df57506005544210155b156105ec576105ec611299565b600160095460ff1660038111156105ff57fe5b14801561060e57506006544210155b1561061b5761061b611299565b60095460029060ff16600381111561062f57fe5b81600381111561063b57fe5b1461064557600080fd5b83518551148015610657575082518551145b151561066257600080fd5b600091505b845182101561075f57838281518110151561067e57fe5b9060200190602002015160046000878581518110151561069a57fe5b6020908102909101810151600160a060020a031682528101919091526040908101600020815160d960020a6432ba3432b9028152600581019190915290519081900360250190205582518390839081106106f057fe5b9060200190602002015160046000878581518110151561070c57fe5b6020908102909101810151600160a060020a031682528101919091526040908101600020815160d960020a643a37b5b2b70281526005810191909152905190819003602501902055600190910190610667565b5050505050565b738a08e65003a0f679293fb23ed11d2a53bcd43bb3331461078657600080fd5b600060095460ff16600381111561079957fe5b1480156107a857506005544210155b156107b5576107b5611299565b600160095460ff1660038111156107c857fe5b1480156107d757506006544210155b156107e4576107e4611299565b60095460029060ff1660038111156107f857fe5b81600381111561080457fe5b1461080e57600080fd5b610816611299565b50565b61082161133f565b50604080518082018083523360008181526004602081815286832060d960020a6432ba3432b9029095526045860185905286518087036065019020548652929091528152835160d960020a643a37b5b2b702815260058101929092529251908190036025019020549181019190915290565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109195780601f106108ee57610100808354040283529160200191610919565b820191906000526020600020905b8154815290600101906020018083116108fc57829003601f168201915b505050505081565b600054600160a060020a0316331461093857600080fd5b805161094b90600790602084019061135a565b5050565b60065481565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109195780601f106108ee57610100808354040283529160200191610919565b600054600160a060020a031681565b600154600160a060020a031681565b738a08e65003a0f679293fb23ed11d2a53bcd43bb333146109ee57600080fd5b60095460039060ff1681811115610a0157fe5b816003811115610a0d57fe5b14610a1757600080fd5b8151610a2a90600890602085019061135a565b505050565b600080610a3b336110d9565b1515610a4657600080fd5b60095460039060ff1681811115610a5957fe5b816003811115610a6557fe5b14610a6f57600080fd5b3360009081526004602052604090819020815160d960020a6432ba3432b90281526005810191909152905190819003602501902054158015610ae357503360009081526004602052604090819020815160d960020a643a37b5b2b70281526005810191909152905190819003602501902054155b15610b61576040805160208082526025908201527f596f7520646f206e6f74206861766520616e79207265776172647320746f2063818301527f6c61696d2e000000000000000000000000000000000000000000000000000000606082015290516000805160206113f38339815191529181900360800190a1610a2a565b3360009081526004602052604090819020815160d960020a6432ba3432b9028152600581019190915290519081900360250190205430311080610c695750336000908152600460208181526040808420815160d960020a643a37b5b2b702815260058101919091528151908190036025018120546001547f70a08231000000000000000000000000000000000000000000000000000000008352309583019590955291519194600160a060020a0394909416936370a082319360248084019491939192918390030190829087803b158015610c3b57600080fd5b505af1158015610c4f573d6000803e3d6000fd5b505050506040513d6020811015610c6557600080fd5b5051105b15610d0d576040805160208082526046908201527f437269746963616c206572726f723a206e6f7420656e6f7567682062616c616e818301527f636520746f20706179206f7574207265776172642e20436f6e7461637420457660608201527f656e74756d2e0000000000000000000000000000000000000000000000000000608082015290516000805160206113f38339815191529181900360a00190a1610a2a565b336000818152600460208181526040808420815160d960020a6432ba3432b9028082526005808301849052845160259381900384018120548a8a5288885260d960020a643a37b5b2b70280835282840187905287519283900386018320548c8c528a8a52948352828401879052875192839003860183208b90558b8b5298909752968752860192909252915193849003909101832084905590965094506108fc86150291869190818181858888f19350505050158015610dd1573d6000803e3d6000fd5b50600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015610e3f57600080fd5b505af1158015610e53573d6000803e3d6000fd5b505050506040513d6020811015610e6957600080fd5b50506040805133815290517f63e32091e4445d16e29c33a6b264577c2d86694021aa4e6f4dd590048f5792e89181900360200190a1505050565b60055481565b60088054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f355780601f10610f0a57610100808354040283529160200191610f35565b820191906000526020600020905b815481529060010190602001808311610f1857829003601f168201915b5050505050905090565b60008054600160a060020a03163314610f5757600080fd5b600254421015610f6657600080fd5b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015610fa1573d6000803e3d6000fd5b50600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561100857600080fd5b505af115801561101c573d6000803e3d6000fd5b505050506040513d602081101561103257600080fd5b505160015460008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101869052905194955092169263a9059cbb926044808201936020939283900390910190829087803b1580156110a957600080fd5b505af11580156110bd573d6000803e3d6000fd5b505050506040513d6020811015610a2a57600080fd5b60025481565b600160a060020a031660009081526003602052604090205460ff1690565b600060095460ff16600381111561110a57fe5b14801561111957506005544210155b1561112657611126611299565b600160095460ff16600381111561113957fe5b14801561114857506006544210155b1561115557611155611299565b61115e336110d9565b156111b657604080516020808252601e908201527f596f752061726520616c72656164792070617274696369706174696e672e00008183015290516000805160206113f38339815191529181900360600190a1611297565b600160095460ff1660038111156111c957fe5b1461124757604080516020808252602b908201527f596f752063616e206f6e6c79206a6f696e20696e20746865204170706c696361818301527f74696f6e2073746174652e000000000000000000000000000000000000000000606082015290516000805160206113f38339815191529181900360800190a1611297565b33600081815260036020908152604091829020805460ff19166001179055815192835290517f0940fd5e528ae9fa6c086f42387c791c3854e0febdf0717c2da155c9dbf1e86c9281900390910190a15b565b600360095460ff1660038111156112ac57fe5b14156112b757600080fd5b60095460ff1660038111156112c857fe5b60010160038111156112d657fe5b6009805460ff191660018360038111156112ec57fe5b02179055506009546040517fb9eb8a309bf89f3159b39681f485b6430fec1035b2b457edbcdadcdece888c0b9160ff16908082600381111561132a57fe5b60ff16815260200191505060405180910390a1565b60408051808201825290600290829080388339509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061139b57805160ff19168380011785556113c8565b828001600101855582156113c8579182015b828111156113c85782518255916020019190600101906113ad565b506113d49291506113d8565b5090565b61057f91905b808211156113d457600081556001016113de560008c379a0afcc32b1a39302f7cb8073359698411ab5fd6e3edb2c02c0b5fba8aaa165627a7a7230582019b4e9b4109ab88c83f66193b951b392ad200b9ac3729dedeffe0e2bf580a9490029000000000000000000000000000000000000000000000000000000005b9f8930000000000000000000000000000000000000000000000000000000005ba0d8580000000000000000000000004af4114f73d1c1c903ac9e0361b379d1291808a2000000000000000000000000000000000000000000000000000000005ba230e0

Swarm Source

bzzr://19b4e9b4109ab88c83f66193b951b392ad200b9ac3729dedeffe0e2bf580a949
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward