Balance:0 Ether | Buy more
Created by: 0xafd97d2712d6b29ddf1ac1c0f4de8db9bcfc11b11d2ff8e5e81d3f5257e0893b

Last 100 sent transactions

HashToAmountTime

Last 100 received transactions

HashFromAmountTime
0xd651e14a...0x3E632D2A1F4804896728d1fAB24620D2168FDbc70 Ether2016-01-27 00:15:36 (a year ago)
0xafd97d27...0x3E632D2A1F4804896728d1fAB24620D2168FDbc70 Ether2016-01-26 11:17:46 (a year ago)

Last 100 mined blocks

NumberDifficultyTimeReward

Last 100 mined uncles

Block NumberUncle NumberReward

Verified contract source code available!

How does it work?
  • Contract name: poi
  • Compiler version: v0.2.0-2016-01-20-67c855c
  • Optimization used: No
  • Source:
    contract poi {
        
        bool debug;
        uint blockNum;
    
        uint groupSize;
        bytes32 entropy;
        
        uint public numUsers;
        mapping(address => bytes32) public userHash;
        //mapping(bytes32 => address) public userAddress;
        mapping(address => uint) public userGroup;
    
        // max value of a sha3 hash
        bytes32 maxHash = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
        
        enum Phases { Registration, Commitment, Verification } 
        event Registration(bytes32 userHash);
        event Commitment(bytes32 userHash, uint group);
        event Verification(bytes32 userHash);
    
        Phases phase;
        uint public genesisBlock;
        uint public registrationBlock;
        uint public commitmentBlock;
        uint public validityBlock;
        
        function blockNumber() constant returns(uint){ if (debug) { return blockNum; } return block.number; }
        function numGroups() constant returns(uint){ return numUsers / groupSize;}
        
        function poi(){
            debug = true;
            groupSize = 5;
            entropy = sha3(block.blockhash(block.number));
            genesisBlock = block.number;
            registrationBlock = genesisBlock + 7;
            commitmentBlock = registrationBlock + 3;
            validityBlock = commitmentBlock + 20;
            phase = Phases.Registration;
        }
        
        function register() returns(bool success){
            if ((blockNumber() > registrationBlock) // registation period over
            || (userHash[msg.sender] != bytes32(0))) return; // already registered
            
            // generate a hash for the given user, using previous entropy, 
            // senders address and current blocknumber.
            bytes32 h = sha3(entropy, msg.sender, block.blockhash(block.number));
            entropy = h;
            userHash[msg.sender] = h;
            //userAddress[h] = msg.sender;
            numUsers++;
            Registration(h);
            return true;
        }
        
        function commit() returns(bool success){
            if ((blockNumber() < registrationBlock) // registation period not yet over
            || (blockNumber() > commitmentBlock) // commitment period over
            || (userGroup[msg.sender] != 0)) return; // group already assigned
    
            phase = Phases.Commitment;
            
            // deterministically assign user to random group (1-indexed)
            // based on number of users, group size and user hash;
            userGroup[msg.sender] = uint(userHash[msg.sender]) / (uint(maxHash) / numGroups()) + 1;
            Commitment(userHash[msg.sender], userGroup[msg.sender]);
            return true;
        }
        
        function verify(bytes32 data, uint8 v, bytes32 r, bytes32 s ) returns(bool success){
            if ((blockNumber() < commitmentBlock) // commitment period not yet over
            || (blockNumber() > validityBlock) // verification period over
            || (userGroup[msg.sender] == 0)) return;
    
            phase = Phases.Verification;
            
            // TODO :)
            address signer = ecrecover( data, v, r, s);
            // is the proof provided by a user in the same group
            if (userGroup[signer] == userGroup[msg.sender]) {
                Verification(userHash[msg.sender]);
                return true;
            }
        }
        
        function _incBlock() { if (debug) blockNum++; }
        function _myAddressHelper() constant returns(address){ return msg.sender; }
        function _myGroupHelper() constant returns(uint group) {
            return userGroup[msg.sender];
        }
        
    }
  • ABI:
    [
      {
        "constant": true,
        "inputs": [
          {
            "name": "",
            "type": "address"
          }
        ],
        "name": "userHash",
        "outputs": [
          {
            "name": "",
            "type": "bytes32"
          }
        ],
        "type": "function"
      },
      {
        "constant": true,
        "inputs": [
          {
            "name": "",
            "type": "address"
          }
        ],
        "name": "userGroup",
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "type": "function"
      },
      {
        "constant": true,
        "inputs": [],
        "name": "numUsers",
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "type": "function"
      },
      {
        "constant": false,
        "inputs": [],
        "name": "register",
        "outputs": [
          {
            "name": "success",
            "type": "bool"
          }
        ],
        "type": "function"
      },
      {
        "constant": true,
        "inputs": [],
        "name": "registrationBlock",
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "type": "function"
      },
      {
        "constant": false,
        "inputs": [],
        "name": "commit",
        "outputs": [
          {
            "name": "success",
            "type": "bool"
          }
        ],
        "type": "function"
      },
      {
        "constant": true,
        "inputs": [],
        "name": "genesisBlock",
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "type": "function"
      },
      {
        "constant": true,
        "inputs": [],
        "name": "blockNumber",
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "type": "function"
      },
      {
        "constant": true,
        "inputs": [],
        "name": "_myGroupHelper",
        "outputs": [
          {
            "name": "group",
            "type": "uint256"
          }
        ],
        "type": "function"
      },
      {
        "constant": true,
        "inputs": [],
        "name": "_myAddressHelper",
        "outputs": [
          {
            "name": "",
            "type": "address"
          }
        ],
        "type": "function"
      },
      {
        "constant": true,
        "inputs": [],
        "name": "numGroups",
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "type": "function"
      },
      {
        "constant": false,
        "inputs": [],
        "name": "_incBlock",
        "outputs": [],
        "type": "function"
      },
      {
        "constant": true,
        "inputs": [],
        "name": "validityBlock",
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "type": "function"
      },
      {
        "constant": true,
        "inputs": [],
        "name": "commitmentBlock",
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "type": "function"
      },
      {
        "constant": false,
        "inputs": [
          {
            "name": "data",
            "type": "bytes32"
          },
          {
            "name": "v",
            "type": "uint8"
          },
          {
            "name": "r",
            "type": "bytes32"
          },
          {
            "name": "s",
            "type": "bytes32"
          }
        ],
        "name": "verify",
        "outputs": [
          {
            "name": "success",
            "type": "bool"
          }
        ],
        "type": "function"
      },
      {
        "inputs": [],
        "type": "constructor"
      },
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": false,
            "name": "userHash",
            "type": "bytes32"
          }
        ],
        "name": "Registration",
        "type": "event"
      },
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": false,
            "name": "userHash",
            "type": "bytes32"
          },
          {
            "indexed": false,
            "name": "group",
            "type": "uint256"
          }
        ],
        "name": "Commitment",
        "type": "event"
      },
      {
        "anonymous": false,
        "inputs": [
          {
            "indexed": false,
            "name": "userHash",
            "type": "bytes32"
          }
        ],
        "name": "Verification",
        "type": "event"
      }
    ]
  • Contract creation bytecode:
    0x60606040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001026007600050555b6001600060006101000a81548160ff021916908302179055506005600260005081905550434060405180828152602001915050604051809103902060036000508190555043600960005081905550600760096000505401600a600050819055506003600a6000505401600b600050819055506014600b6000505401600c600050819055506000600860006101000a81548160ff021916908302179055505b6108e4806100db6000396000f3606060405236156100d7576000357c01000000000000000000000000000000000000000000000000000000009004806312b8573c146100d9578063154b2d571461010557806319a50f49146101315780631aa3a008146101545780631cac0831146101775780633c7a3aff1461019a5780634cdc9c63146101bd57806357e871e7146101e05780635bbfe9b6146102035780636a4a6b6e1461022657806383324e8c1461025f5780638cfd8901146102825780639f66520914610291578063a5e9600a146102b4578063f1835db7146102d7576100d7565b005b6100ef6004808035906020019091905050610327565b6040518082815260200191505060405180910390f35b61011b6004808035906020019091905050610342565b6040518082815260200191505060405180910390f35b61013e600480505061031e565b6040518082815260200191505060405180910390f35b61016160048050506103c9565b6040518082815260200191505060405180910390f35b6101846004805050610366565b6040518082815260200191505060405180910390f35b6101a7600480505061050d565b6040518082815260200191505060405180910390f35b6101ca600480505061035d565b6040518082815260200191505060405180910390f35b6101ed6004805050610381565b6040518082815260200191505060405180910390f35b61021060048050506108a8565b6040518082815260200191505060405180910390f35b610233600480505061089b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61026c60048050506103b0565b6040518082815260200191505060405180910390f35b61028f600480505061086e565b005b61029e6004805050610378565b6040518082815260200191505060405180910390f35b6102c1600480505061036f565b6040518082815260200191505060405180910390f35b61030860048080359060200190919080359060200190919080359060200190919080359060200190919050506106b9565b6040518082815260200191505060405180910390f35b60046000505481565b60056000506020528060005260406000206000915090505481565b60066000506020528060005260406000206000915090505481565b60096000505481565b600a6000505481565b600b6000505481565b600c6000505481565b6000600060009054906101000a900460ff16156103a55760016000505490506103ad565b4390506103ad565b90565b60006002600050546004600050540490506103c6565b90565b60006000600a600050546103db610381565b118061041a57506000600102600560005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505414155b1561042457610509565b600360005054334340604051808481526020018373ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019350505050604051809103902090508060036000508190555080600560005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000508190555060046000818150548092919060010191905055507fb9a5c167b9c0465bcbeee18d1b0d37a9a82813f8262486cee744967849901e22816040518082815260200191505060405180910390a160019150610509565b5090565b6000600a6000505461051d610381565b10806105345750600b60005054610532610381565b115b8061056f57506000600660005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505414155b15610579576106b6565b6001600860006101000a81548160ff02191690830217905550600161059c6103b0565b6007600050546001900404600560005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054600190040401600660005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050819055507f3d36cdc6eeaaa8ae9f797d7d651af09b33095e02ef076f6393c1575d1cf9dbdc600560005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054600660005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054604051808381526020018281526020019250505060405180910390a1600190506106b6565b90565b60006000600b600050546106cb610381565b10806106e25750600c600050546106e0610381565b115b8061071c57506000600660005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054145b1561072657610865565b6002600860006101000a81548160ff02191690830217905550600186868686604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051808303816000866161da5a03f115610002575050604051805190602001509050600660005060003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005054600660005060008373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050541415610864577f47b1c6e8920e156bb6862de23a50e8c30b3603fc85f26e0b245a144b5ced4ed6600560005060003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600050546040518082815260200191505060405180910390a160019150610865565b5b50949350505050565b600060009054906101000a900460ff16156108985760016000818150548092919060010191905055505b5b565b60003390506108a5565b90565b6000600660005060003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000505490506108e1565b9056
PUSH1 0x60 (`)
PUSH1 0x40 (@)
MSTORE
CALLDATASIZE
ISZERO
PUSH2 0x00d7 (×)
JUMPI
PUSH1 0x00 ()
CALLDATALOAD
PUSH29 0x0100000000000000000000000000000000000000000000000000000000 ()
SWAP1
DIV
DUP1
PUSH4 0x12b8573c (¸W<)
EQ
PUSH2 0x00d9 (Ù)
JUMPI
DUP1
PUSH4 0x154b2d57 (K-W)
EQ
PUSH2 0x0105 ()
JUMPI
DUP1
PUSH4 0x19a50f49 (¥I)
EQ
PUSH2 0x0131 (1)
JUMPI
DUP1
PUSH4 0x1aa3a008 (£ )
EQ
PUSH2 0x0154 (T)
JUMPI
DUP1
PUSH4 0x1cac0831 (¬1)
EQ
PUSH2 0x0177 (w)
JUMPI
DUP1
PUSH4 0x3c7a3aff (<z:ÿ)
EQ
PUSH2 0x019a (š)
JUMPI
DUP1
PUSH4 0x4cdc9c63 (Lܜc)
EQ
PUSH2 0x01bd (½)
JUMPI
DUP1
PUSH4 0x57e871e7 (Wèqç)
EQ
PUSH2 0x01e0 (à)
JUMPI
DUP1
PUSH4 0x5bbfe9b6 ([¿é¶)
EQ
PUSH2 0x0203 ()
JUMPI
DUP1
PUSH4 0x6a4a6b6e (jJkn)
EQ
PUSH2 0x0226 (&)
JUMPI
DUP1
PUSH4 0x83324e8c (ƒ2NŒ)
EQ
PUSH2 0x025f (_)
JUMPI
DUP1
PUSH4 0x8cfd8901 (Œý‰)
EQ
PUSH2 0x0282 (‚)
JUMPI
DUP1
PUSH4 0x9f665209 (ŸfR	)
EQ
PUSH2 0x0291 (‘)
JUMPI
DUP1
PUSH4 0xa5e9600a (¥é`
)
EQ
PUSH2 0x02b4 (´)
JUMPI
DUP1
PUSH4 0xf1835db7 (ñƒ]·)
EQ
PUSH2 0x02d7 (×)
JUMPI
PUSH2 0x00d7 (×)
JUMP
JUMPDEST
STOP
JUMPDEST
PUSH2 0x00ef (ï)
PUSH1 0x04 ()
DUP1
DUP1
CALLDATALOAD
SWAP1
PUSH1 0x20 ( )
ADD
SWAP1
SWAP2
SWAP1
POP
POP
PUSH2 0x0327 (')
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x011b ()
PUSH1 0x04 ()
DUP1
DUP1
CALLDATALOAD
SWAP1
PUSH1 0x20 ( )
ADD
SWAP1
SWAP2
SWAP1
POP
POP
PUSH2 0x0342 (B)
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x013e (>)
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x031e ()
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x0161 (a)
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x03c9 (É)
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x0184 („)
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x0366 (f)
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x01a7 (§)
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x050d (
)
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x01ca (Ê)
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x035d (])
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x01ed (í)
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x0381 ()
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x0210 ()
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x08a8 (¨)
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x0233 (3)
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x089b (›)
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x026c (l)
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x03b0 (°)
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x028f ()
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x086e (n)
JUMP
JUMPDEST
STOP
JUMPDEST
PUSH2 0x029e (ž)
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x0378 (x)
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x02c1 (Á)
PUSH1 0x04 ()
DUP1
POP
POP
PUSH2 0x036f (o)
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH2 0x0308 ()
PUSH1 0x04 ()
DUP1
DUP1
CALLDATALOAD
SWAP1
PUSH1 0x20 ( )
ADD
SWAP1
SWAP2
SWAP1
DUP1
CALLDATALOAD
SWAP1
PUSH1 0x20 ( )
ADD
SWAP1
SWAP2
SWAP1
DUP1
CALLDATALOAD
SWAP1
PUSH1 0x20 ( )
ADD
SWAP1
SWAP2
SWAP1
DUP1
CALLDATALOAD
SWAP1
PUSH1 0x20 ( )
ADD
SWAP1
SWAP2
SWAP1
POP
POP
PUSH2 0x06b9 (¹)
JUMP
JUMPDEST
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
RETURN
JUMPDEST
PUSH1 0x04 ()
PUSH1 0x00 ()
POP
SLOAD
DUP2
JUMP
JUMPDEST
PUSH1 0x05 ()
PUSH1 0x00 ()
POP
PUSH1 0x20 ( )
MSTORE
DUP1
PUSH1 0x00 ()
MSTORE
PUSH1 0x40 (@)
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
SWAP2
POP
SWAP1
POP
SLOAD
DUP2
JUMP
JUMPDEST
PUSH1 0x06 ()
PUSH1 0x00 ()
POP
PUSH1 0x20 ( )
MSTORE
DUP1
PUSH1 0x00 ()
MSTORE
PUSH1 0x40 (@)
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
SWAP2
POP
SWAP1
POP
SLOAD
DUP2
JUMP
JUMPDEST
PUSH1 0x09 (	)
PUSH1 0x00 ()
POP
SLOAD
DUP2
JUMP
JUMPDEST
PUSH1 0x0a (
)
PUSH1 0x00 ()
POP
SLOAD
DUP2
JUMP
JUMPDEST
PUSH1 0x0b ()
PUSH1 0x00 ()
POP
SLOAD
DUP2
JUMP
JUMPDEST
PUSH1 0x0c ()
PUSH1 0x00 ()
POP
SLOAD
DUP2
JUMP
JUMPDEST
PUSH1 0x00 ()
PUSH1 0x00 ()
PUSH1 0x00 ()
SWAP1
SLOAD
SWAP1
PUSH2 0x0100 ()
EXP
SWAP1
DIV
PUSH1 0xff (ÿ)
AND
ISZERO
PUSH2 0x03a5 (¥)
JUMPI
PUSH1 0x01 ()
PUSH1 0x00 ()
POP
SLOAD
SWAP1
POP
PUSH2 0x03ad (­)
JUMP
JUMPDEST
NUMBER
SWAP1
POP
PUSH2 0x03ad (­)
JUMP
JUMPDEST
SWAP1
JUMP
JUMPDEST
PUSH1 0x00 ()
PUSH1 0x02 ()
PUSH1 0x00 ()
POP
SLOAD
PUSH1 0x04 ()
PUSH1 0x00 ()
POP
SLOAD
DIV
SWAP1
POP
PUSH2 0x03c6 (Æ)
JUMP
JUMPDEST
SWAP1
JUMP
JUMPDEST
PUSH1 0x00 ()
PUSH1 0x00 ()
PUSH1 0x0a (
)
PUSH1 0x00 ()
POP
SLOAD
PUSH2 0x03db (Û)
PUSH2 0x0381 ()
JUMP
JUMPDEST
GT
DUP1
PUSH2 0x041a ()
JUMPI
POP
PUSH1 0x00 ()
PUSH1 0x01 ()
MUL
PUSH1 0x05 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
CALLER
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
SLOAD
EQ
ISZERO
JUMPDEST
ISZERO
PUSH2 0x0424 ($)
JUMPI
PUSH2 0x0509 (	)
JUMP
JUMPDEST
PUSH1 0x03 ()
PUSH1 0x00 ()
POP
SLOAD
CALLER
NUMBER
BLOCKHASH
PUSH1 0x40 (@)
MLOAD
DUP1
DUP5
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
DUP4
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
PUSH13 0x01000000000000000000000000 ()
MUL
DUP2
MSTORE
PUSH1 0x14 ()
ADD
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP4
POP
POP
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
SHA3
SWAP1
POP
DUP1
PUSH1 0x03 ()
PUSH1 0x00 ()
POP
DUP2
SWAP1
SSTORE
POP
DUP1
PUSH1 0x05 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
CALLER
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
DUP2
SWAP1
SSTORE
POP
PUSH1 0x04 ()
PUSH1 0x00 ()
DUP2
DUP2
POP
SLOAD
DUP1
SWAP3
SWAP2
SWAP1
PUSH1 0x01 ()
ADD
SWAP2
SWAP1
POP
SSTORE
POP
PUSH32 0xb9a5c167b9c0465bcbeee18d1b0d37a9a82813f8262486cee744967849901e22 (¹¥Ág¹ÀF[Ëîá
7©¨(ø&$†ÎçD–xI")
DUP2
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
LOG1
PUSH1 0x01 ()
SWAP2
POP
PUSH2 0x0509 (	)
JUMP
JUMPDEST
POP
SWAP1
JUMP
JUMPDEST
PUSH1 0x00 ()
PUSH1 0x0a (
)
PUSH1 0x00 ()
POP
SLOAD
PUSH2 0x051d ()
PUSH2 0x0381 ()
JUMP
JUMPDEST
LT
DUP1
PUSH2 0x0534 (4)
JUMPI
POP
PUSH1 0x0b ()
PUSH1 0x00 ()
POP
SLOAD
PUSH2 0x0532 (2)
PUSH2 0x0381 ()
JUMP
JUMPDEST
GT
JUMPDEST
DUP1
PUSH2 0x056f (o)
JUMPI
POP
PUSH1 0x00 ()
PUSH1 0x06 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
CALLER
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
SLOAD
EQ
ISZERO
JUMPDEST
ISZERO
PUSH2 0x0579 (y)
JUMPI
PUSH2 0x06b6 (¶)
JUMP
JUMPDEST
PUSH1 0x01 ()
PUSH1 0x08 ()
PUSH1 0x00 ()
PUSH2 0x0100 ()
EXP
DUP2
SLOAD
DUP2
PUSH1 0xff (ÿ)
MUL
NOT
AND
SWAP1
DUP4
MUL
OR
SWAP1
SSTORE
POP
PUSH1 0x01 ()
PUSH2 0x059c (œ)
PUSH2 0x03b0 (°)
JUMP
JUMPDEST
PUSH1 0x07 ()
PUSH1 0x00 ()
POP
SLOAD
PUSH1 0x01 ()
SWAP1
DIV
DIV
PUSH1 0x05 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
CALLER
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
SLOAD
PUSH1 0x01 ()
SWAP1
DIV
DIV
ADD
PUSH1 0x06 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
CALLER
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
DUP2
SWAP1
SSTORE
POP
PUSH32 0x3d36cdc6eeaaa8ae9f797d7d651af09b33095e02ef076f6393c1575d1cf9dbdc (=6ÍÆ®Ÿy}}eð›3	^ïoc“ÁW]ùÛÜ)
PUSH1 0x05 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
CALLER
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
SLOAD
PUSH1 0x06 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
CALLER
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
SLOAD
PUSH1 0x40 (@)
MLOAD
DUP1
DUP4
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP3
POP
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
LOG1
PUSH1 0x01 ()
SWAP1
POP
PUSH2 0x06b6 (¶)
JUMP
JUMPDEST
SWAP1
JUMP
JUMPDEST
PUSH1 0x00 ()
PUSH1 0x00 ()
PUSH1 0x0b ()
PUSH1 0x00 ()
POP
SLOAD
PUSH2 0x06cb (Ë)
PUSH2 0x0381 ()
JUMP
JUMPDEST
LT
DUP1
PUSH2 0x06e2 (â)
JUMPI
POP
PUSH1 0x0c ()
PUSH1 0x00 ()
POP
SLOAD
PUSH2 0x06e0 (à)
PUSH2 0x0381 ()
JUMP
JUMPDEST
GT
JUMPDEST
DUP1
PUSH2 0x071c ()
JUMPI
POP
PUSH1 0x00 ()
PUSH1 0x06 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
CALLER
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
SLOAD
EQ
JUMPDEST
ISZERO
PUSH2 0x0726 (&)
JUMPI
PUSH2 0x0865 (e)
JUMP
JUMPDEST
PUSH1 0x02 ()
PUSH1 0x08 ()
PUSH1 0x00 ()
PUSH2 0x0100 ()
EXP
DUP2
SLOAD
DUP2
PUSH1 0xff (ÿ)
MUL
NOT
AND
SWAP1
DUP4
MUL
OR
SWAP1
SSTORE
POP
PUSH1 0x01 ()
DUP7
DUP7
DUP7
DUP7
PUSH1 0x40 (@)
MLOAD
DUP1
DUP6
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
DUP5
PUSH1 0xff (ÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
DUP4
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP5
POP
POP
POP
POP
POP
PUSH1 0x20 ( )
PUSH1 0x40 (@)
MLOAD
DUP1
DUP4
SUB
DUP2
PUSH1 0x00 ()
DUP7
PUSH2 0x61da (aÚ)
GAS
SUB
CALL
ISZERO
PUSH2 0x0002 ()
JUMPI
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
MLOAD
SWAP1
PUSH1 0x20 ( )
ADD
POP
SWAP1
POP
PUSH1 0x06 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
CALLER
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
SLOAD
PUSH1 0x06 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
DUP4
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
SLOAD
EQ
ISZERO
PUSH2 0x0864 (d)
JUMPI
PUSH32 0x47b1c6e8920e156bb6862de23a50e8c30b3603fc85f26e0b245a144b5ced4ed6 (G±Æè’k¶†-â:PèÃ6ü…òn$ZK\íNÖ)
PUSH1 0x05 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
CALLER
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
SLOAD
PUSH1 0x40 (@)
MLOAD
DUP1
DUP3
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP2
POP
POP
PUSH1 0x40 (@)
MLOAD
DUP1
SWAP2
SUB
SWAP1
LOG1
PUSH1 0x01 ()
SWAP2
POP
PUSH2 0x0865 (e)
JUMP
JUMPDEST
JUMPDEST
POP
SWAP5
SWAP4
POP
POP
POP
POP
JUMP
JUMPDEST
PUSH1 0x00 ()
PUSH1 0x00 ()
SWAP1
SLOAD
SWAP1
PUSH2 0x0100 ()
EXP
SWAP1
DIV
PUSH1 0xff (ÿ)
AND
ISZERO
PUSH2 0x0898 (˜)
JUMPI
PUSH1 0x01 ()
PUSH1 0x00 ()
DUP2
DUP2
POP
SLOAD
DUP1
SWAP3
SWAP2
SWAP1
PUSH1 0x01 ()
ADD
SWAP2
SWAP1
POP
SSTORE
POP
JUMPDEST
JUMPDEST
JUMP
JUMPDEST
PUSH1 0x00 ()
CALLER
SWAP1
POP
PUSH2 0x08a5 (¥)
JUMP
JUMPDEST
SWAP1
JUMP
JUMPDEST
PUSH1 0x00 ()
PUSH1 0x06 ()
PUSH1 0x00 ()
POP
PUSH1 0x00 ()
CALLER
PUSH20 0xffffffffffffffffffffffffffffffffffffffff (ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)
AND
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
SWAP1
DUP2
MSTORE
PUSH1 0x20 ( )
ADD
PUSH1 0x00 ()
SHA3
PUSH1 0x00 ()
POP
SLOAD
SWAP1
POP
PUSH2 0x08e1 (á)
JUMP
JUMPDEST
SWAP1
JUMP
blog comments powered by Disqus