ETH Price: $3,327.43 (-2.56%)

Contract

0x3dBDc81a6edc94c720B0B88FB65dBD7e395fDcf6
 

Overview

ETH Balance

3.16167785894131735 ETH

Eth Value

$10,520.27 (@ $3,327.43/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Base Price160461912022-11-25 9:45:59732 days ago1669369559IN
0x3dBDc81a...e395fDcf6
0 ETH0.0040950511.97926861
Set Base Price146677362022-04-27 16:59:30944 days ago1651078770IN
0x3dBDc81a...e395fDcf6
0 ETH0.0174503951.04767279
Query1142177602022-02-16 14:47:491014 days ago1645022869IN
0x3dBDc81a...e395fDcf6
0.005 ETH0.0041164275.73229915
Set Offchain Pay...131786422021-09-07 12:38:401176 days ago1631018320IN
0x3dBDc81a...e395fDcf6
0 ETH0.00275496100.24619159
Remove Cb Addres...131391242021-09-01 10:08:091182 days ago1630490889IN
0x3dBDc81a...e395fDcf6
0 ETH0.0027289103.76863424
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0026298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366542021-09-01 0:53:031182 days ago1630457583IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366502021-09-01 0:52:411182 days ago1630457561IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366502021-09-01 0:52:411182 days ago1630457561IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366502021-09-01 0:52:411182 days ago1630457561IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366502021-09-01 0:52:411182 days ago1630457561IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366502021-09-01 0:52:411182 days ago1630457561IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024286100
Remove Cb Addres...131366502021-09-01 0:52:411182 days ago1630457561IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
Remove Cb Addres...131366502021-09-01 0:52:411182 days ago1630457561IN
0x3dBDc81a...e395fDcf6
0 ETH0.0024298100
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
210839062024-10-31 6:45:1126 days ago1730357111
0x3dBDc81a...e395fDcf6
0.00100847 ETH
206960912024-09-07 3:40:2380 days ago1725680423
0x3dBDc81a...e395fDcf6
0.00402542 ETH
203768562024-07-24 13:59:47125 days ago1721829587
0x3dBDc81a...e395fDcf6
0.00200847 ETH
194330272024-03-14 11:43:35257 days ago1710416615
0x3dBDc81a...e395fDcf6
0.00249152 ETH
189190822024-01-02 10:23:47329 days ago1704191027
0x3dBDc81a...e395fDcf6
0.00402542 ETH
185250342023-11-08 5:03:59384 days ago1699419839
0x3dBDc81a...e395fDcf6
0.00402542 ETH
184980522023-11-04 10:22:47388 days ago1699093367
0x3dBDc81a...e395fDcf6
0.00402542 ETH
184894352023-11-03 5:24:47389 days ago1698989087
0x3dBDc81a...e395fDcf6
0.00402542 ETH
184767532023-11-01 10:47:23391 days ago1698835643
0x3dBDc81a...e395fDcf6
0.00402542 ETH
184694852023-10-31 10:22:23392 days ago1698747743
0x3dBDc81a...e395fDcf6
0.00402542 ETH
184536892023-10-29 5:14:11394 days ago1698556451
0x3dBDc81a...e395fDcf6
0.00402542 ETH
184270132023-10-25 11:40:47398 days ago1698234047
0x3dBDc81a...e395fDcf6
0.00402542 ETH
184188172023-10-24 8:05:59399 days ago1698134759
0x3dBDc81a...e395fDcf6
0.00402542 ETH
184047722023-10-22 8:53:11401 days ago1697964791
0x3dBDc81a...e395fDcf6
0.00402542 ETH
183974872023-10-21 8:26:59402 days ago1697876819
0x3dBDc81a...e395fDcf6
0.00402542 ETH
183899542023-10-20 7:09:11403 days ago1697785751
0x3dBDc81a...e395fDcf6
0.00402542 ETH
183820862023-10-19 4:44:35404 days ago1697690675
0x3dBDc81a...e395fDcf6
0.00402542 ETH
183748672023-10-18 4:29:59405 days ago1697603399
0x3dBDc81a...e395fDcf6
0.00402542 ETH
183676932023-10-17 4:24:47406 days ago1697516687
0x3dBDc81a...e395fDcf6
0.00402542 ETH
183564362023-10-15 14:41:11408 days ago1697380871
0x3dBDc81a...e395fDcf6
0.00402542 ETH
183473462023-10-14 8:11:11409 days ago1697271071
0x3dBDc81a...e395fDcf6
0.00402542 ETH
183395492023-10-13 6:00:47410 days ago1697176847
0x3dBDc81a...e395fDcf6
0.00402542 ETH
183339072023-10-12 11:02:11411 days ago1697108531
0x3dBDc81a...e395fDcf6
0.00504237 ETH
183248992023-10-11 4:43:11412 days ago1696999391
0x3dBDc81a...e395fDcf6
0.00402542 ETH
183241622023-10-11 2:14:59412 days ago1696990499
0x3dBDc81a...e395fDcf6
0.00504237 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Oraclize

Compiler Version
v0.4.15+commit.bbb8e64f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-10-12
*/

/*
Copyright (c) 2015-2016 Oraclize SRL
Copyright (c) 2016-2017 Oraclize LTD
*/

/*
Oraclize Connector v1.2.0
*/

// 'compressed' alternative, where all modifiers have been changed to FUNCTIONS
// which is cheaper for deployment, potentially cheaper execution

pragma solidity ^0.4.11;

contract Oraclize {
    mapping (address => uint) reqc;

    mapping (address => byte) public cbAddresses;

    mapping (address => bool) public offchainPayment;

    event Log1(address sender, bytes32 cid, uint timestamp, string datasource, string arg, uint gaslimit, byte proofType, uint gasPrice);
    event Log2(address sender, bytes32 cid, uint timestamp, string datasource, string arg1, string arg2, uint gaslimit, byte proofType, uint gasPrice);
    event LogN(address sender, bytes32 cid, uint timestamp, string datasource, bytes args, uint gaslimit, byte proofType, uint gasPrice);
    event Log1_fnc(address sender, bytes32 cid, uint timestamp, string datasource, string arg, function() external callback, uint gaslimit, byte proofType, uint gasPrice);
    event Log2_fnc(address sender, bytes32 cid, uint timestamp, string datasource, string arg1, string arg2, function() external callback, uint gaslimit, byte proofType, uint gasPrice);
    event LogN_fnc(address sender, bytes32 cid, uint timestamp, string datasource, bytes args, function() external callback, uint gaslimit, byte proofType, uint gasPrice);

    event Emit_OffchainPaymentFlag(address indexed idx_sender, address sender, bool indexed idx_flag, bool flag);

    address owner;
    address paymentFlagger;

    function changeAdmin(address _newAdmin)
    external
    {
        onlyadmin();
        owner = _newAdmin;
    }

    function changePaymentFlagger(address _newFlagger)
    external
    {
        onlyadmin();
        paymentFlagger = _newFlagger;
    }

    function addCbAddress(address newCbAddress, byte addressType)
    external
    {
        onlyadmin();
        //bytes memory nil = '';
        addCbAddress(newCbAddress, addressType, hex'');
    }

    // proof is currently a placeholder for when associated proof for addressType is added
    function addCbAddress(address newCbAddress, byte addressType, bytes proof)
    public
    {
        onlyadmin();
        cbAddresses[newCbAddress] = addressType;
    }

    function removeCbAddress(address newCbAddress)
    external
    {
        onlyadmin();
        delete cbAddresses[newCbAddress];
    }

    function cbAddress()
    constant
    returns (address _cbAddress)
    {
        if (cbAddresses[tx.origin] != 0)
            _cbAddress = tx.origin;
    }

    function addDSource(string dsname, uint multiplier)
    external
    {
        addDSource(dsname, 0x00, multiplier);
    }

    function addDSource(string dsname, byte proofType, uint multiplier)
    public
    {
        onlyadmin();
        bytes32 dsname_hash = sha3(dsname, proofType);
        dsources[dsources.length++] = dsname_hash;
        price_multiplier[dsname_hash] = multiplier;
    }

    // Utilized by bridge
    function multiAddDSource(bytes32[] dsHash, uint256[] multiplier)
    external
    {
        onlyadmin();
        // dsHash -> sha3(DATASOURCE_NAME, PROOF_TYPE);
        for (uint i=0; i<dsHash.length; i++) {
            dsources[dsources.length++] = dsHash[i];
            price_multiplier[dsHash[i]] = multiplier[i];
        }
    }

    function multisetProofType(uint[] _proofType, address[] _addr)
    external
    {
        onlyadmin();
        for (uint i=0; i<_addr.length; i++) addr_proofType[_addr[i]] = byte(_proofType[i]);
    }

    function multisetCustomGasPrice(uint[] _gasPrice, address[] _addr)
    external
    {
        onlyadmin();
        for (uint i=0; i<_addr.length; i++) addr_gasPrice[_addr[i]] = _gasPrice[i];
    }

    uint gasprice = 20000000000;

    function setGasPrice(uint newgasprice)
    external
    {
        onlyadmin();
        gasprice = newgasprice;
    }

    function setBasePrice(uint new_baseprice)
    external
    { //0.001 usd in ether
        onlyadmin();
        baseprice = new_baseprice;
        for (uint i=0; i<dsources.length; i++) price[dsources[i]] = new_baseprice*price_multiplier[dsources[i]];
    }

    function setBasePrice(uint new_baseprice, bytes proofID)
    external
    { //0.001 usd in ether
        onlyadmin();
        baseprice = new_baseprice;
        for (uint i=0; i<dsources.length; i++) price[dsources[i]] = new_baseprice*price_multiplier[dsources[i]];
    }

    function setOffchainPayment(address _addr, bool _flag)
    external
    {
      if (msg.sender != paymentFlagger) throw;
      offchainPayment[_addr] = _flag;
      Emit_OffchainPaymentFlag(_addr, _addr, _flag, _flag);
    }

    function withdrawFunds(address _addr)
    external
    {
        onlyadmin();
        _addr.send(this.balance);
    }

    // unnecessary?
    //function() {}

    function Oraclize() {
        owner = msg.sender;
    }

    // Pesudo-modifiers

    function onlyadmin()
    private {
        if (msg.sender != owner) throw;
    }

    function costs(string datasource, uint gaslimit)
    private
    returns (uint price) {
        price = getPrice(datasource, gaslimit, msg.sender);

        if (msg.value >= price){
            uint diff = msg.value - price;
            if (diff > 0) {
                // added for correct query cost to be returned
                if(!msg.sender.send(diff)) {
                    throw;
                }
            }
        } else throw;
    }

    mapping (address => byte) addr_proofType;
    mapping (address => uint) addr_gasPrice;
    uint public baseprice;
    mapping (bytes32 => uint) price;
    mapping (bytes32 => uint) price_multiplier;
    bytes32[] dsources;

    bytes32[] public randomDS_sessionPubKeysHash;

    function randomDS_updateSessionPubKeysHash(bytes32[] _newSessionPubKeysHash)
    external
    {
        onlyadmin();
        randomDS_sessionPubKeysHash.length = 0;
        for (uint i=0; i<_newSessionPubKeysHash.length; i++) randomDS_sessionPubKeysHash.push(_newSessionPubKeysHash[i]);
    }

    function randomDS_getSessionPubKeyHash()
    external
    constant
    returns (bytes32) {
        uint i = uint(sha3(reqc[msg.sender]))%randomDS_sessionPubKeysHash.length;
        return randomDS_sessionPubKeysHash[i];
    }

    function setProofType(byte _proofType)
    external
    {
        addr_proofType[msg.sender] = _proofType;
    }

    function setCustomGasPrice(uint _gasPrice)
    external
    {
        addr_gasPrice[msg.sender] = _gasPrice;
    }

    function getPrice(string _datasource)
    public
    returns (uint _dsprice)
    {
        return getPrice(_datasource, msg.sender);
    }

    function getPrice(string _datasource, uint _gaslimit)
    public
    returns (uint _dsprice)
    {
        return getPrice(_datasource, _gaslimit, msg.sender);
    }

    function getPrice(string _datasource, address _addr)
    private
    returns (uint _dsprice)
    {
        return getPrice(_datasource, 200000, _addr);
    }

    function getPrice(string _datasource, uint _gaslimit, address _addr)
    private
    returns (uint _dsprice)
    {
        uint gasprice_ = addr_gasPrice[_addr];
        if (
                (offchainPayment[_addr])
            ||(
                (_gaslimit <= 200000)&&
                (reqc[_addr] == 0)&&
                (gasprice_ <= gasprice)&&
                (tx.origin != cbAddress())
            )
        ) return 0;

        if (gasprice_ == 0) gasprice_ = gasprice;
        _dsprice = price[sha3(_datasource, addr_proofType[_addr])];
        _dsprice += _gaslimit*gasprice_;
        return _dsprice;
    }

    function getCodeSize(address _addr)
    private
    constant
    returns(uint _size)
    {
        assembly {
            _size := extcodesize(_addr)
        }
    }

    function query(string _datasource, string _arg)
    payable
    external
    returns (bytes32 _id)
    {
        return query1(0, _datasource, _arg, 200000);
    }

    function query1(string _datasource, string _arg)
    payable
    external
    returns (bytes32 _id)
    {
        return query1(0, _datasource, _arg, 200000);
    }

    function query2(string _datasource, string _arg1, string _arg2)
    payable
    external
    returns (bytes32 _id)
    {
        return query2(0, _datasource, _arg1, _arg2, 200000);
    }

    function queryN(string _datasource, bytes _args)
    payable
    external
    returns (bytes32 _id)
    {
        return queryN(0, _datasource, _args, 200000);
    }

    function query(uint _timestamp, string _datasource, string _arg)
    payable
    external
    returns (bytes32 _id)
    {
        return query1(_timestamp, _datasource, _arg, 200000);
    }

    function query1(uint _timestamp, string _datasource, string _arg)
    payable
    external
    returns (bytes32 _id)
    {
        return query1(_timestamp, _datasource, _arg, 200000);
    }

    function query2(uint _timestamp, string _datasource, string _arg1, string _arg2)
    payable
    external
    returns (bytes32 _id)
    {
        return query2(_timestamp, _datasource, _arg1, _arg2, 200000);
    }

    function queryN(uint _timestamp, string _datasource, bytes _args)
    payable
    external
    returns (bytes32 _id)
    {
        return queryN(_timestamp, _datasource, _args, 200000);
    }

/*  Needless?
    function query(uint _timestamp, string _datasource, string _arg, uint _gaslimit)
    payable
    external
    returns (bytes32 _id)
    {
        return query1(_timestamp, _datasource, _arg, _gaslimit);
    }
*/
    function query_withGasLimit(uint _timestamp, string _datasource, string _arg, uint _gaslimit)
    payable
    external
    returns (bytes32 _id)
    {
        return query1(_timestamp, _datasource, _arg, _gaslimit);
    }

    function query1_withGasLimit(uint _timestamp, string _datasource, string _arg, uint _gaslimit)
    payable
    external
    returns (bytes32 _id)
    {
        return query1(_timestamp, _datasource, _arg, _gaslimit);
    }

    function query2_withGasLimit(uint _timestamp, string _datasource, string _arg1, string _arg2, uint _gaslimit)
    payable
    external
    returns (bytes32 _id)
    {
        return query2(_timestamp, _datasource, _arg1, _arg2, _gaslimit);
    }

    function queryN_withGasLimit(uint _timestamp, string _datasource, bytes _args, uint _gaslimit)
    payable
    external
    returns (bytes32 _id)
    {
        return queryN(_timestamp, _datasource, _args, _gaslimit);
    }

    function query1(uint _timestamp, string _datasource, string _arg, uint _gaslimit)
    payable
    public
    returns (bytes32 _id)
    {
        costs(_datasource, _gaslimit);
    	if ((_timestamp > now+3600*24*60)||(_gaslimit > block.gaslimit)) throw;

        _id = sha3(this, msg.sender, reqc[msg.sender]);
        reqc[msg.sender]++;
        Log1(msg.sender, _id, _timestamp, _datasource, _arg, _gaslimit, addr_proofType[msg.sender], addr_gasPrice[msg.sender]);
        return _id;
    }

    function query2(uint _timestamp, string _datasource, string _arg1, string _arg2, uint _gaslimit)
    payable
    public
    returns (bytes32 _id)
    {
        costs(_datasource, _gaslimit);
    	if ((_timestamp > now+3600*24*60)||(_gaslimit > block.gaslimit)) throw;

        _id = sha3(this, msg.sender, reqc[msg.sender]);
        reqc[msg.sender]++;
        Log2(msg.sender, _id, _timestamp, _datasource, _arg1, _arg2, _gaslimit, addr_proofType[msg.sender], addr_gasPrice[msg.sender]);
        return _id;
    }

    function queryN(uint _timestamp, string _datasource, bytes _args, uint _gaslimit)
    payable
    public
    returns (bytes32 _id)
    {
        costs(_datasource, _gaslimit);
    	if ((_timestamp > now+3600*24*60)||(_gaslimit > block.gaslimit)) throw;

        _id = sha3(this, msg.sender, reqc[msg.sender]);
        reqc[msg.sender]++;
        LogN(msg.sender, _id, _timestamp, _datasource, _args, _gaslimit, addr_proofType[msg.sender], addr_gasPrice[msg.sender]);
        return _id;
    }

    function query1_fnc(uint _timestamp, string _datasource, string _arg, function() external _fnc, uint _gaslimit)
    payable
    public
    returns (bytes32 _id)
    {
        costs(_datasource, _gaslimit);
        if ((_timestamp > now+3600*24*60)||(_gaslimit > block.gaslimit)||address(_fnc) != msg.sender) throw;

        _id = sha3(this, msg.sender, reqc[msg.sender]);
        reqc[msg.sender]++;
        Log1_fnc(msg.sender, _id, _timestamp, _datasource, _arg, _fnc, _gaslimit, addr_proofType[msg.sender], addr_gasPrice[msg.sender]);
        return _id;
    }

    function query2_fnc(uint _timestamp, string _datasource, string _arg1, string _arg2, function() external _fnc, uint _gaslimit)
    payable
    public
    returns (bytes32 _id)
    {
        costs(_datasource, _gaslimit);
        if ((_timestamp > now+3600*24*60)||(_gaslimit > block.gaslimit)||address(_fnc) != msg.sender) throw;

        _id = sha3(this, msg.sender, reqc[msg.sender]);
        reqc[msg.sender]++;
        Log2_fnc(msg.sender, _id, _timestamp, _datasource, _arg1, _arg2, _fnc,  _gaslimit, addr_proofType[msg.sender], addr_gasPrice[msg.sender]);
        return _id;
    }

    function queryN_fnc(uint _timestamp, string _datasource, bytes _args, function() external _fnc, uint _gaslimit)
    payable
    public
    returns (bytes32 _id)
    {
        costs(_datasource, _gaslimit);
        if ((_timestamp > now+3600*24*60)||(_gaslimit > block.gaslimit)||address(_fnc) != msg.sender) throw;

        _id = sha3(this, msg.sender, reqc[msg.sender]);
        reqc[msg.sender]++;
        LogN_fnc(msg.sender, _id, _timestamp, _datasource, _args, _fnc, _gaslimit, addr_proofType[msg.sender], addr_gasPrice[msg.sender]);
        return _id;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_arg","type":"string"}],"name":"query1","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_datasource","type":"string"},{"name":"_gaslimit","type":"uint256"}],"name":"getPrice","outputs":[{"name":"_dsprice","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_datasource","type":"string"},{"name":"_arg","type":"string"}],"name":"query1","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"baseprice","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newCbAddress","type":"address"}],"name":"removeCbAddress","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newSessionPubKeysHash","type":"bytes32[]"}],"name":"randomDS_updateSessionPubKeysHash","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_datasource","type":"string"}],"name":"getPrice","outputs":[{"name":"_dsprice","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_arg","type":"string"},{"name":"_gaslimit","type":"uint256"}],"name":"query1","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"newCbAddress","type":"address"},{"name":"addressType","type":"bytes1"}],"name":"addCbAddress","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"withdrawFunds","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_proofType","type":"bytes1"}],"name":"setProofType","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"dsHash","type":"bytes32[]"},{"name":"multiplier","type":"uint256[]"}],"name":"multiAddDSource","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_arg","type":"string"},{"name":"_gaslimit","type":"uint256"}],"name":"query1_withGasLimit","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"newCbAddress","type":"address"},{"name":"addressType","type":"bytes1"},{"name":"proof","type":"bytes"}],"name":"addCbAddress","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_arg1","type":"string"},{"name":"_arg2","type":"string"}],"name":"query2","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"offchainPayment","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"new_baseprice","type":"uint256"},{"name":"proofID","type":"bytes"}],"name":"setBasePrice","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_arg1","type":"string"},{"name":"_arg2","type":"string"},{"name":"_gaslimit","type":"uint256"}],"name":"query2","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_newFlagger","type":"address"}],"name":"changePaymentFlagger","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_args","type":"bytes"},{"name":"_gaslimit","type":"uint256"}],"name":"queryN","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_datasource","type":"string"},{"name":"_arg","type":"string"}],"name":"query","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_args","type":"bytes"}],"name":"queryN","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_arg1","type":"string"},{"name":"_arg2","type":"string"},{"name":"_gaslimit","type":"uint256"}],"name":"query2_withGasLimit","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_datasource","type":"string"},{"name":"_args","type":"bytes"}],"name":"queryN","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"dsname","type":"string"},{"name":"multiplier","type":"uint256"}],"name":"addDSource","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"randomDS_getSessionPubKeyHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_arg1","type":"string"},{"name":"_arg2","type":"string"},{"name":"_fnc","type":"function"},{"name":"_gaslimit","type":"uint256"}],"name":"query2_fnc","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_arg","type":"string"}],"name":"query","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"dsname","type":"string"},{"name":"proofType","type":"bytes1"},{"name":"multiplier","type":"uint256"}],"name":"addDSource","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newgasprice","type":"uint256"}],"name":"setGasPrice","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"cbAddress","outputs":[{"name":"_cbAddress","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_arg","type":"string"},{"name":"_gaslimit","type":"uint256"}],"name":"query_withGasLimit","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_args","type":"bytes"},{"name":"_gaslimit","type":"uint256"}],"name":"queryN_withGasLimit","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_gasPrice","type":"uint256"}],"name":"setCustomGasPrice","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_gasPrice","type":"uint256[]"},{"name":"_addr","type":"address[]"}],"name":"multisetCustomGasPrice","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"cbAddresses","outputs":[{"name":"","type":"bytes1"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_proofType","type":"uint256[]"},{"name":"_addr","type":"address[]"}],"name":"multisetProofType","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_arg","type":"string"},{"name":"_fnc","type":"function"},{"name":"_gaslimit","type":"uint256"}],"name":"query1_fnc","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"new_baseprice","type":"uint256"}],"name":"setBasePrice","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"randomDS_sessionPubKeysHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_datasource","type":"string"},{"name":"_arg1","type":"string"},{"name":"_arg2","type":"string"}],"name":"query2","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_flag","type":"bool"}],"name":"setOffchainPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"},{"name":"_datasource","type":"string"},{"name":"_args","type":"bytes"},{"name":"_fnc","type":"function"},{"name":"_gaslimit","type":"uint256"}],"name":"queryN_fnc","outputs":[{"name":"_id","type":"bytes32"}],"payable":true,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"cid","type":"bytes32"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"datasource","type":"string"},{"indexed":false,"name":"arg","type":"string"},{"indexed":false,"name":"gaslimit","type":"uint256"},{"indexed":false,"name":"proofType","type":"bytes1"},{"indexed":false,"name":"gasPrice","type":"uint256"}],"name":"Log1","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"cid","type":"bytes32"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"datasource","type":"string"},{"indexed":false,"name":"arg1","type":"string"},{"indexed":false,"name":"arg2","type":"string"},{"indexed":false,"name":"gaslimit","type":"uint256"},{"indexed":false,"name":"proofType","type":"bytes1"},{"indexed":false,"name":"gasPrice","type":"uint256"}],"name":"Log2","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"cid","type":"bytes32"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"datasource","type":"string"},{"indexed":false,"name":"args","type":"bytes"},{"indexed":false,"name":"gaslimit","type":"uint256"},{"indexed":false,"name":"proofType","type":"bytes1"},{"indexed":false,"name":"gasPrice","type":"uint256"}],"name":"LogN","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"cid","type":"bytes32"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"datasource","type":"string"},{"indexed":false,"name":"arg","type":"string"},{"indexed":false,"name":"callback","type":"function"},{"indexed":false,"name":"gaslimit","type":"uint256"},{"indexed":false,"name":"proofType","type":"bytes1"},{"indexed":false,"name":"gasPrice","type":"uint256"}],"name":"Log1_fnc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"cid","type":"bytes32"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"datasource","type":"string"},{"indexed":false,"name":"arg1","type":"string"},{"indexed":false,"name":"arg2","type":"string"},{"indexed":false,"name":"callback","type":"function"},{"indexed":false,"name":"gaslimit","type":"uint256"},{"indexed":false,"name":"proofType","type":"bytes1"},{"indexed":false,"name":"gasPrice","type":"uint256"}],"name":"Log2_fnc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"cid","type":"bytes32"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"datasource","type":"string"},{"indexed":false,"name":"args","type":"bytes"},{"indexed":false,"name":"callback","type":"function"},{"indexed":false,"name":"gaslimit","type":"uint256"},{"indexed":false,"name":"proofType","type":"bytes1"},{"indexed":false,"name":"gasPrice","type":"uint256"}],"name":"LogN_fnc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idx_sender","type":"address"},{"indexed":false,"name":"sender","type":"address"},{"indexed":true,"name":"idx_flag","type":"bool"},{"indexed":false,"name":"flag","type":"bool"}],"name":"Emit_OffchainPaymentFlag","type":"event"}]

60606040526404a817c800600555341561001857600080fd5b5b60038054600160a060020a03191633600160a060020a03161790555b5b612d49806100456000396000f300606060405236156102175763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166323dc42e7811461021c5780632ef3accc1461025157806345362978146102b6578063480a434d146102e75780634a64c23f1461030c578063512c0b9c1461032d578063524f38891461034d5780635c242c59146103b0578063627fd3bb1461045157806368742da61461047f578063688dcfd7146104a05780636c0f7ee7146104c257806375700437146104ee5780637653740f1461052657806377228659146105975780637bc9165b146105d85780637d242ae51461060b5780637e1c42051461062f578063801298fa1461071257806380325b2d1461073357806381ade307146102b657806383eed3d51461080557806385dee34c1461083a5780638f2839701461087e57806398cf6f221461089f578063a2ec191a146108d0578063abaa5f3e146108f4578063ad44d0ca14610919578063adf59f991461021c578063b5bfdd7314610a52578063bf1fe42014610ab6578063c281d19e14610ace578063c51be90f146104ee578063c55c1cb614610b35578063ca6ad1e414610b6d578063d959701614610b85578063db23995114610bb1578063db37e42f14610bed578063dba8fc6114610c19578063de4b326214610cdb578063e6c0e9e114610cf3578063e839e65e14610d1b578063e8be385314610d58578063f84072a514610d7e575b600080fd5b61023f600480359060248035808201929081013591604435908101910135610e40565b60405190815260200160405180910390f35b341561025c57600080fd5b61023f60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350610ebe92505050565b60405190815260200160405180910390f35b61023f6024600480358281019290820135918135918201910135610ed4565b60405190815260200160405180910390f35b34156102f257600080fd5b61023f610f52565b60405190815260200160405180910390f35b341561031757600080fd5b61032b600160a060020a0360043516610f58565b005b341561033857600080fd5b61032b6004803560248101910135610f84565b005b341561035857600080fd5b61023f60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610ff295505050505050565b60405190815260200160405180910390f35b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650509335935061100692505050565b60405190815260200160405180910390f35b341561045c57600080fd5b61032b600160a060020a0360043516600160f860020a03196024351661121f565b005b341561048a57600080fd5b61032b600160a060020a0360043516611245565b005b34156104ab57600080fd5b61032b600160f860020a031960043516611283565b005b34156104cd57600080fd5b61032b60246004803582810192908201359181359182019101356112af565b005b61023f600480359060248035808201929081013591604435908101910135606435611359565b60405190815260200160405180910390f35b341561053157600080fd5b61032b60048035600160a060020a03169060248035600160f860020a031916919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506113d595505050505050565b005b61023f60048035906024803580820192908101359160443580820192908101359160643590810191013561140b565b60405190815260200160405180910390f35b34156105e357600080fd5b6105f7600160a060020a03600435166114bd565b604051901515815260200160405180910390f35b341561061657600080fd5b61032b6004803590602480359081019101356114d2565b005b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650509335935061156f92505050565b60405190815260200160405180910390f35b341561071d57600080fd5b61032b600160a060020a03600435166117f8565b005b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650509335935061182c92505050565b60405190815260200160405180910390f35b61023f6024600480358281019290820135918135918201910135610ed4565b60405190815260200160405180910390f35b61023f600480359060248035808201929081013591604435908101910135611ac3565b60405190815260200160405180910390f35b61023f600480359060248035808201929081013591604435808201929081013591606435908101910135608435611b41565b60405190815260200160405180910390f35b341561088957600080fd5b61032b600160a060020a0360043516611bf1565b005b61023f6024600480358281019290820135918135918201910135611c25565b60405190815260200160405180910390f35b34156108db57600080fd5b61032b602460048035828101929101359035611ca3565b005b34156108ff57600080fd5b61023f611ce6565b60405190815260200160405180910390f35b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050606060020a8535908104956801000000000000000090910463ffffffff169450602001359250611d4b915050565b60405190815260200160405180910390f35b61023f600480359060248035808201929081013591604435908101910135610e40565b60405190815260200160405180910390f35b3415610a5d57600080fd5b61032b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160f860020a03198535169460200135935061209792505050565b005b3415610ac157600080fd5b61032b60043561215a565b005b3415610ad957600080fd5b610ae161216b565b604051600160a060020a03909116815260200160405180910390f35b61023f600480359060248035808201929081013591604435908101910135606435611359565b60405190815260200160405180910390f35b61023f60048035906024803580820192908101359160443590810191013560643561221c565b60405190815260200160405180910390f35b3415610b7857600080fd5b61032b600435612298565b005b3415610b9057600080fd5b61032b60246004803582810192908201359181359182019101356122b7565b005b3415610bbc57600080fd5b610bd0600160a060020a0360043516612337565b604051600160f860020a0319909116815260200160405180910390f35b3415610bf857600080fd5b61032b602460048035828101929082013591813591820191013561234f565b005b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050606060020a8535908104956801000000000000000090910463ffffffff1694506020013592506123ed915050565b60405190815260200160405180910390f35b3415610ce657600080fd5b61032b60043561264d565b005b3415610cfe57600080fd5b61023f6004356126e8565b60405190815260200160405180910390f35b61023f602460048035828101929082013591813580830192908201359160443591820191013561270b565b60405190815260200160405180910390f35b3415610d6357600080fd5b61032b600160a060020a036004351660243515156127bd565b005b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050606060020a8535908104956801000000000000000090910463ffffffff16945060200135925061284f915050565b60405190815260200160405180910390f35b6000610eb28686868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d4094506110069350505050565b90505b95945050505050565b6000610ecb838333612aaf565b90505b92915050565b6000610f47600086868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d4094506110069350505050565b90505b949350505050565b60085481565b610f60612c07565b600160a060020a0381166000908152600160205260409020805460ff191690555b50565b6000610f8e612c07565b6000610f9b600c82612ca8565b50600090505b81811015610fec57600c805460018101610fbb8382612ca8565b916000526020600020900160005b858585818110610fd557fe5b60200291909101359092555050505b600101610fa1565b5b505050565b6000610ffe8233612c25565b90505b919050565b60006110128483612c3e565b5042624f1a000185118061102557504582115b1561102f57600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507fb76d0edd90c6a07aa3ff7a222d7f5933e29c6acc660c059c97837f05c4ca1a849385928a928a928a928a9260f860020a02919051600160a060020a0389168152602081018890526040810187905260a08101849052600160f860020a0319831660c082015260e0810182905261010060608201818152906080830190830188818151815260200191508051906020019080838360005b838110156111705780820151818401525b602001611157565b50505050905090810190601f16801561119d5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156111d45780820151818401525b6020016111bb565b50505050905090810190601f1680156112015780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a15b949350505050565b611227612c07565b61124082826020604051908101604052600081526113d5565b5b5050565b61124d612c07565b80600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f150505050505b50565b33600160a060020a03166000908152600660205260409020805460ff191660f860020a83041790555b50565b60006112b9612c07565b5060005b83811015611351578484828181106112d157fe5b600b8054602090920293909301359291506112ef8260018301612ca8565b815481106112f957fe5b906000526020600020900160005b505582828281811061131557fe5b90506020020135600a6000878785818110151561132e57fe5b60209081029290920135835250810191909152604001600020555b6001016112bd565b5b5050505050565b60006113c88787878080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505086868080601f0160208091040260200160405190810160405281815292919060208401838380828437508a94506110069350505050565b90505b9695505050505050565b6113dd612c07565b600160a060020a0383166000908152600160205260409020805460ff191660f860020a84041790555b505050565b60006114af8888888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505086868080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d40945061156f9350505050565b90505b979650505050505050565b60026020526000908152604090205460ff1681565b60006114dc612c07565b50600883905560005b600b5481101561156857600a6000600b8381548110151561150257fe5b906000526020600020900160005b50546000191660001916815260200190815260200160002054840260096000600b8481548110151561153e57fe5b906000526020600020900160005b505481526020810191909152604001600020555b6001016114e5565b5b50505050565b600061157b8583612c3e565b5042624f1a000186118061158e57504582115b1561159857600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507faf30e4d66b2f1f23e63ef4591058a897f67e6867233e33ca3508b982dcc4129b9385928b928b928b928b928b9260f860020a9091029151600160a060020a038a168152602081018990526040810188905260c08101849052600160f860020a0319831660e082015261010081018290526101206060820181815290608083019060a084019084018a818151815260200191508051906020019080838360005b838110156116e25780820151818401525b6020016116c9565b50505050905090810190601f16801561170f5780820380516001836020036101000a031916815260200191505b50848103835289818151815260200191508051906020019080838360005b838110156117465780820151818401525b60200161172d565b50505050905090810190601f1680156117735780820380516001836020036101000a031916815260200191505b50848103825288818151815260200191508051906020019080838360005b838110156117aa5780820151818401525b602001611791565b50505050905090810190601f1680156117d75780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a15b95945050505050565b611800612c07565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60006118388483612c3e565b5042624f1a000185118061184b57504582115b1561185557600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507f3af7d71c651d8670228b02a0b636ffa73a7f759ef99ff9c024bc3b044a7244389385928a928a928a928a9260f860020a02919051600160a060020a0389168152602081018890526040810187905260a08101849052600160f860020a0319831660c082015260e0810182905261010060608201818152906080830190830188818151815260200191508051906020019080838360005b838110156111705780820151818401525b602001611157565b50505050905090810190601f16801561119d5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156111d45780820151818401525b6020016111bb565b50505050905090810190601f1680156112015780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a15b949350505050565b6000610f47600086868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d4094506110069350505050565b90505b949350505050565b6000610eb28686868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d40945061182c9350505050565b90505b95945050505050565b6000611be28989898080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505088888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f0160208091040260200160405190810160405281815292919060208401838380828437508b945061156f9350505050565b90505b98975050505050505050565b611bf9612c07565b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6000610f47600086868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d40945061182c9350505050565b90505b949350505050565b610fec83838080601f0160208091040260200160405190810160405281815292919060208401838380828437506000945087935061209792505050565b5b505050565b600c54600160a060020a0333166000908152602081905260408082205491928392909151908152602001604051908190039020811515611d2257fe5b069050600c81815481101515611d3457fe5b906000526020600020900160005b505491505b5090565b6000611d578783612c3e565b5042624f1a0001881180611d6a57504582115b80611d87575033600160a060020a031684600160a060020a031614155b15611d9157600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507fcc57f89a6a20799d672e6569d224340220a0891ad6efa3039e7728f0c88854b39385928d928d928d928d928d928d928d9260f860020a02919051600160a060020a038c168152602081018b9052604081018a905268010000000000000000640100000000870263ffffffff8716170260c082015260e08101849052600160f860020a0319831661010082015261012081018290526101406060820181815290608083019060a084019084018c818151815260200191508051906020019080838360005b83811015611eff5780820151818401525b602001611ee6565b50505050905090810190601f168015611f2c5780820380516001836020036101000a031916815260200191505b5084810383528b818151815260200191508051906020019080838360005b83811015611f635780820151818401525b602001611f4a565b50505050905090810190601f168015611f905780820380516001836020036101000a031916815260200191505b5084810382528a818151815260200191508051906020019080838360005b83811015611fc75780820151818401525b602001611fae565b50505050905090810190601f168015611ff45780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390a15b979650505050505050565b6000610eb28686868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d4094506110069350505050565b90505b95945050505050565b60006120a1612c07565b83836040518083805190602001908083835b602083106120d357805182525b601f1990920191602091820191016120b3565b6001836020036101000a0380198251168184511617909252505050600160f860020a0319909416919093019081526001019250604091505051908190039020600b805491925082916121288260018301612ca8565b8154811061213257fe5b906000526020600020900160005b50556000818152600a602052604090208290555b50505050565b612162612c07565b60058190555b50565b32600160a060020a031660009081526001602052604081205460f860020a02600160f860020a0319161561219c5750325b5b90565b60006113c88787878080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505086868080601f0160208091040260200160405190810160405281815292919060208401838380828437508a94506110069350505050565b90505b9695505050505050565b60006113c88787878080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505086868080601f0160208091040260200160405190810160405281815292919060208401838380828437508a945061182c9350505050565b90505b9695505050505050565b600160a060020a03331660009081526007602052604090208190555b50565b60006122c1612c07565b5060005b81811015611351578484828181106122d957fe5b905060200201356007600085858581811015156122f257fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020819055505b6001016122c5565b5b5050505050565b60016020526000908152604090205460f860020a0281565b6000612359612c07565b5060005b818110156113515784848281811061237157fe5b9050602002013560f860020a0260066000858585818110151561239057fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff021916908360f860020a900402179055505b60010161235d565b5b5050505050565b60006123f98683612c3e565b5042624f1a000187118061240c57504582115b80612429575033600160a060020a031684600160a060020a031614155b1561243357600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507f5051eab4e301cef16e893db3c7a192f8cbf7bb44e1a92b928665c66170930a399385928c928c928c928c928c928c9260f860020a9092029151600160a060020a038b168152602081018a90526040810189905268010000000000000000640100000000870263ffffffff8716170260a082015260c08101849052600160f860020a0319831660e082015261010081018290526101206060820181815290608083019083018a818151815260200191508051906020019080838360005b8381101561259a5780820151818401525b602001612581565b50505050905090810190601f1680156125c75780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b838110156125fe5780820151818401525b6020016125e5565b50505050905090810190601f16801561262b5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a15b9695505050505050565b6000612657612c07565b50600881905560005b600b5481101561124057600a6000600b8381548110151561267d57fe5b906000526020600020900160005b50546000191660001916815260200190815260200160002054820260096000600b848154811015156126b957fe5b906000526020600020900160005b505481526020810191909152604001600020555b600101612660565b5b5050565b600c8054829081106126f657fe5b906000526020600020900160005b5054905081565b60006113c8600088888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505086868080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d40945061156f9350505050565b90505b9695505050505050565b60045433600160a060020a039081169116146127d857600080fd5b600160a060020a03821660008181526002602052604090819020805460ff191684151590811790915591907f84feab93d65c19f28e91b26f8245938bf3a97dab7b8dafe3c8b028954e9ac934908590859051600160a060020a039092168252151560208201526040908101905180910390a35b5050565b600061285b8683612c3e565b5042624f1a000187118061286e57504582115b8061288b575033600160a060020a031684600160a060020a031614155b1561289557600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507f90552fb8e54d9a2aa4212413b16aa948c66cab32c9fe727ff74be1850bb0a8be9385928c928c928c928c928c928c9260f860020a9092029151600160a060020a038b168152602081018a90526040810189905268010000000000000000640100000000870263ffffffff8716170260a082015260c08101849052600160f860020a0319831660e082015261010081018290526101206060820181815290608083019083018a818151815260200191508051906020019080838360005b8381101561259a5780820151818401525b602001612581565b50505050905090810190601f1680156125c75780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b838110156125fe5780820151818401525b6020016125e5565b50505050905090810190601f16801561262b5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a15b9695505050505050565b600160a060020a038116600090815260076020908152604080832054600290925282205460ff1680612b38575062030d408411158015612b055750600160a060020a038316600090815260208190526040902054155b8015612b1357506005548111155b8015612b385750612b2261216b565b600160a060020a031632600160a060020a031614155b5b15612b475760009150612bff565b801515612b5357506005545b600160a060020a0383166000908152600660205260408082205460099291889160f860020a0290518083805190602001908083835b60208310612ba857805182525b601f199092019160209182019101612b88565b6001836020036101000a0380198251168184511617909252505050600160f860020a031990941691909301908152600101925060409150505190819003902081526020810191909152604001600020548482020191505b509392505050565b60035433600160a060020a03908116911614612c2257600080fd5b5b565b6000610ecb8362030d4084612aaf565b90505b92915050565b600080612c4c848433612aaf565b9150348290106102175781340390506000811115612c9557600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515612c9557600080fd5b5b612ca0565b600080fd5b5b5092915050565b815481835581811511610fec57600083815260209020610fec918101908301612cfc565b5b505050565b815481835581811511610fec57600083815260209020610fec918101908301612cfc565b5b505050565b61219c91905b80821115611d475760008155600101612d02565b5090565b905600a165627a7a723058204a8139af1bf2a9591f800190ee829830157762d6342103f42e55424b288403ae0029

Deployed Bytecode

0x606060405236156102175763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166323dc42e7811461021c5780632ef3accc1461025157806345362978146102b6578063480a434d146102e75780634a64c23f1461030c578063512c0b9c1461032d578063524f38891461034d5780635c242c59146103b0578063627fd3bb1461045157806368742da61461047f578063688dcfd7146104a05780636c0f7ee7146104c257806375700437146104ee5780637653740f1461052657806377228659146105975780637bc9165b146105d85780637d242ae51461060b5780637e1c42051461062f578063801298fa1461071257806380325b2d1461073357806381ade307146102b657806383eed3d51461080557806385dee34c1461083a5780638f2839701461087e57806398cf6f221461089f578063a2ec191a146108d0578063abaa5f3e146108f4578063ad44d0ca14610919578063adf59f991461021c578063b5bfdd7314610a52578063bf1fe42014610ab6578063c281d19e14610ace578063c51be90f146104ee578063c55c1cb614610b35578063ca6ad1e414610b6d578063d959701614610b85578063db23995114610bb1578063db37e42f14610bed578063dba8fc6114610c19578063de4b326214610cdb578063e6c0e9e114610cf3578063e839e65e14610d1b578063e8be385314610d58578063f84072a514610d7e575b600080fd5b61023f600480359060248035808201929081013591604435908101910135610e40565b60405190815260200160405180910390f35b341561025c57600080fd5b61023f60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350610ebe92505050565b60405190815260200160405180910390f35b61023f6024600480358281019290820135918135918201910135610ed4565b60405190815260200160405180910390f35b34156102f257600080fd5b61023f610f52565b60405190815260200160405180910390f35b341561031757600080fd5b61032b600160a060020a0360043516610f58565b005b341561033857600080fd5b61032b6004803560248101910135610f84565b005b341561035857600080fd5b61023f60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610ff295505050505050565b60405190815260200160405180910390f35b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650509335935061100692505050565b60405190815260200160405180910390f35b341561045c57600080fd5b61032b600160a060020a0360043516600160f860020a03196024351661121f565b005b341561048a57600080fd5b61032b600160a060020a0360043516611245565b005b34156104ab57600080fd5b61032b600160f860020a031960043516611283565b005b34156104cd57600080fd5b61032b60246004803582810192908201359181359182019101356112af565b005b61023f600480359060248035808201929081013591604435908101910135606435611359565b60405190815260200160405180910390f35b341561053157600080fd5b61032b60048035600160a060020a03169060248035600160f860020a031916919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506113d595505050505050565b005b61023f60048035906024803580820192908101359160443580820192908101359160643590810191013561140b565b60405190815260200160405180910390f35b34156105e357600080fd5b6105f7600160a060020a03600435166114bd565b604051901515815260200160405180910390f35b341561061657600080fd5b61032b6004803590602480359081019101356114d2565b005b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650509335935061156f92505050565b60405190815260200160405180910390f35b341561071d57600080fd5b61032b600160a060020a03600435166117f8565b005b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650509335935061182c92505050565b60405190815260200160405180910390f35b61023f6024600480358281019290820135918135918201910135610ed4565b60405190815260200160405180910390f35b61023f600480359060248035808201929081013591604435908101910135611ac3565b60405190815260200160405180910390f35b61023f600480359060248035808201929081013591604435808201929081013591606435908101910135608435611b41565b60405190815260200160405180910390f35b341561088957600080fd5b61032b600160a060020a0360043516611bf1565b005b61023f6024600480358281019290820135918135918201910135611c25565b60405190815260200160405180910390f35b34156108db57600080fd5b61032b602460048035828101929101359035611ca3565b005b34156108ff57600080fd5b61023f611ce6565b60405190815260200160405180910390f35b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050606060020a8535908104956801000000000000000090910463ffffffff169450602001359250611d4b915050565b60405190815260200160405180910390f35b61023f600480359060248035808201929081013591604435908101910135610e40565b60405190815260200160405180910390f35b3415610a5d57600080fd5b61032b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050600160f860020a03198535169460200135935061209792505050565b005b3415610ac157600080fd5b61032b60043561215a565b005b3415610ad957600080fd5b610ae161216b565b604051600160a060020a03909116815260200160405180910390f35b61023f600480359060248035808201929081013591604435908101910135606435611359565b60405190815260200160405180910390f35b61023f60048035906024803580820192908101359160443590810191013560643561221c565b60405190815260200160405180910390f35b3415610b7857600080fd5b61032b600435612298565b005b3415610b9057600080fd5b61032b60246004803582810192908201359181359182019101356122b7565b005b3415610bbc57600080fd5b610bd0600160a060020a0360043516612337565b604051600160f860020a0319909116815260200160405180910390f35b3415610bf857600080fd5b61032b602460048035828101929082013591813591820191013561234f565b005b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050606060020a8535908104956801000000000000000090910463ffffffff1694506020013592506123ed915050565b60405190815260200160405180910390f35b3415610ce657600080fd5b61032b60043561264d565b005b3415610cfe57600080fd5b61023f6004356126e8565b60405190815260200160405180910390f35b61023f602460048035828101929082013591813580830192908201359160443591820191013561270b565b60405190815260200160405180910390f35b3415610d6357600080fd5b61032b600160a060020a036004351660243515156127bd565b005b61023f600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050606060020a8535908104956801000000000000000090910463ffffffff16945060200135925061284f915050565b60405190815260200160405180910390f35b6000610eb28686868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d4094506110069350505050565b90505b95945050505050565b6000610ecb838333612aaf565b90505b92915050565b6000610f47600086868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d4094506110069350505050565b90505b949350505050565b60085481565b610f60612c07565b600160a060020a0381166000908152600160205260409020805460ff191690555b50565b6000610f8e612c07565b6000610f9b600c82612ca8565b50600090505b81811015610fec57600c805460018101610fbb8382612ca8565b916000526020600020900160005b858585818110610fd557fe5b60200291909101359092555050505b600101610fa1565b5b505050565b6000610ffe8233612c25565b90505b919050565b60006110128483612c3e565b5042624f1a000185118061102557504582115b1561102f57600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507fb76d0edd90c6a07aa3ff7a222d7f5933e29c6acc660c059c97837f05c4ca1a849385928a928a928a928a9260f860020a02919051600160a060020a0389168152602081018890526040810187905260a08101849052600160f860020a0319831660c082015260e0810182905261010060608201818152906080830190830188818151815260200191508051906020019080838360005b838110156111705780820151818401525b602001611157565b50505050905090810190601f16801561119d5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156111d45780820151818401525b6020016111bb565b50505050905090810190601f1680156112015780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a15b949350505050565b611227612c07565b61124082826020604051908101604052600081526113d5565b5b5050565b61124d612c07565b80600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f150505050505b50565b33600160a060020a03166000908152600660205260409020805460ff191660f860020a83041790555b50565b60006112b9612c07565b5060005b83811015611351578484828181106112d157fe5b600b8054602090920293909301359291506112ef8260018301612ca8565b815481106112f957fe5b906000526020600020900160005b505582828281811061131557fe5b90506020020135600a6000878785818110151561132e57fe5b60209081029290920135835250810191909152604001600020555b6001016112bd565b5b5050505050565b60006113c88787878080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505086868080601f0160208091040260200160405190810160405281815292919060208401838380828437508a94506110069350505050565b90505b9695505050505050565b6113dd612c07565b600160a060020a0383166000908152600160205260409020805460ff191660f860020a84041790555b505050565b60006114af8888888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505086868080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d40945061156f9350505050565b90505b979650505050505050565b60026020526000908152604090205460ff1681565b60006114dc612c07565b50600883905560005b600b5481101561156857600a6000600b8381548110151561150257fe5b906000526020600020900160005b50546000191660001916815260200190815260200160002054840260096000600b8481548110151561153e57fe5b906000526020600020900160005b505481526020810191909152604001600020555b6001016114e5565b5b50505050565b600061157b8583612c3e565b5042624f1a000186118061158e57504582115b1561159857600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507faf30e4d66b2f1f23e63ef4591058a897f67e6867233e33ca3508b982dcc4129b9385928b928b928b928b928b9260f860020a9091029151600160a060020a038a168152602081018990526040810188905260c08101849052600160f860020a0319831660e082015261010081018290526101206060820181815290608083019060a084019084018a818151815260200191508051906020019080838360005b838110156116e25780820151818401525b6020016116c9565b50505050905090810190601f16801561170f5780820380516001836020036101000a031916815260200191505b50848103835289818151815260200191508051906020019080838360005b838110156117465780820151818401525b60200161172d565b50505050905090810190601f1680156117735780820380516001836020036101000a031916815260200191505b50848103825288818151815260200191508051906020019080838360005b838110156117aa5780820151818401525b602001611791565b50505050905090810190601f1680156117d75780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a15b95945050505050565b611800612c07565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60006118388483612c3e565b5042624f1a000185118061184b57504582115b1561185557600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507f3af7d71c651d8670228b02a0b636ffa73a7f759ef99ff9c024bc3b044a7244389385928a928a928a928a9260f860020a02919051600160a060020a0389168152602081018890526040810187905260a08101849052600160f860020a0319831660c082015260e0810182905261010060608201818152906080830190830188818151815260200191508051906020019080838360005b838110156111705780820151818401525b602001611157565b50505050905090810190601f16801561119d5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156111d45780820151818401525b6020016111bb565b50505050905090810190601f1680156112015780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a15b949350505050565b6000610f47600086868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d4094506110069350505050565b90505b949350505050565b6000610eb28686868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d40945061182c9350505050565b90505b95945050505050565b6000611be28989898080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505088888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f0160208091040260200160405190810160405281815292919060208401838380828437508b945061156f9350505050565b90505b98975050505050505050565b611bf9612c07565b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6000610f47600086868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d40945061182c9350505050565b90505b949350505050565b610fec83838080601f0160208091040260200160405190810160405281815292919060208401838380828437506000945087935061209792505050565b5b505050565b600c54600160a060020a0333166000908152602081905260408082205491928392909151908152602001604051908190039020811515611d2257fe5b069050600c81815481101515611d3457fe5b906000526020600020900160005b505491505b5090565b6000611d578783612c3e565b5042624f1a0001881180611d6a57504582115b80611d87575033600160a060020a031684600160a060020a031614155b15611d9157600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507fcc57f89a6a20799d672e6569d224340220a0891ad6efa3039e7728f0c88854b39385928d928d928d928d928d928d928d9260f860020a02919051600160a060020a038c168152602081018b9052604081018a905268010000000000000000640100000000870263ffffffff8716170260c082015260e08101849052600160f860020a0319831661010082015261012081018290526101406060820181815290608083019060a084019084018c818151815260200191508051906020019080838360005b83811015611eff5780820151818401525b602001611ee6565b50505050905090810190601f168015611f2c5780820380516001836020036101000a031916815260200191505b5084810383528b818151815260200191508051906020019080838360005b83811015611f635780820151818401525b602001611f4a565b50505050905090810190601f168015611f905780820380516001836020036101000a031916815260200191505b5084810382528a818151815260200191508051906020019080838360005b83811015611fc75780820151818401525b602001611fae565b50505050905090810190601f168015611ff45780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390a15b979650505050505050565b6000610eb28686868080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505085858080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d4094506110069350505050565b90505b95945050505050565b60006120a1612c07565b83836040518083805190602001908083835b602083106120d357805182525b601f1990920191602091820191016120b3565b6001836020036101000a0380198251168184511617909252505050600160f860020a0319909416919093019081526001019250604091505051908190039020600b805491925082916121288260018301612ca8565b8154811061213257fe5b906000526020600020900160005b50556000818152600a602052604090208290555b50505050565b612162612c07565b60058190555b50565b32600160a060020a031660009081526001602052604081205460f860020a02600160f860020a0319161561219c5750325b5b90565b60006113c88787878080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505086868080601f0160208091040260200160405190810160405281815292919060208401838380828437508a94506110069350505050565b90505b9695505050505050565b60006113c88787878080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505086868080601f0160208091040260200160405190810160405281815292919060208401838380828437508a945061182c9350505050565b90505b9695505050505050565b600160a060020a03331660009081526007602052604090208190555b50565b60006122c1612c07565b5060005b81811015611351578484828181106122d957fe5b905060200201356007600085858581811015156122f257fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020819055505b6001016122c5565b5b5050505050565b60016020526000908152604090205460f860020a0281565b6000612359612c07565b5060005b818110156113515784848281811061237157fe5b9050602002013560f860020a0260066000858585818110151561239057fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff021916908360f860020a900402179055505b60010161235d565b5b5050505050565b60006123f98683612c3e565b5042624f1a000187118061240c57504582115b80612429575033600160a060020a031684600160a060020a031614155b1561243357600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507f5051eab4e301cef16e893db3c7a192f8cbf7bb44e1a92b928665c66170930a399385928c928c928c928c928c928c9260f860020a9092029151600160a060020a038b168152602081018a90526040810189905268010000000000000000640100000000870263ffffffff8716170260a082015260c08101849052600160f860020a0319831660e082015261010081018290526101206060820181815290608083019083018a818151815260200191508051906020019080838360005b8381101561259a5780820151818401525b602001612581565b50505050905090810190601f1680156125c75780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b838110156125fe5780820151818401525b6020016125e5565b50505050905090810190601f16801561262b5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a15b9695505050505050565b6000612657612c07565b50600881905560005b600b5481101561124057600a6000600b8381548110151561267d57fe5b906000526020600020900160005b50546000191660001916815260200190815260200160002054820260096000600b848154811015156126b957fe5b906000526020600020900160005b505481526020810191909152604001600020555b600101612660565b5b5050565b600c8054829081106126f657fe5b906000526020600020900160005b5054905081565b60006113c8600088888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505086868080601f01602080910402602001604051908101604052818152929190602084018383808284375062030d40945061156f9350505050565b90505b9695505050505050565b60045433600160a060020a039081169116146127d857600080fd5b600160a060020a03821660008181526002602052604090819020805460ff191684151590811790915591907f84feab93d65c19f28e91b26f8245938bf3a97dab7b8dafe3c8b028954e9ac934908590859051600160a060020a039092168252151560208201526040908101905180910390a35b5050565b600061285b8683612c3e565b5042624f1a000187118061286e57504582115b8061288b575033600160a060020a031684600160a060020a031614155b1561289557600080fd5b303360008033600160a060020a0316600160a060020a0316815260200190815260200160002054604051606060020a600160a060020a0394851681028252929093169091026014830152602882015260480160405190819003902033600160a060020a038116600090815260208181526040808320805460010190556006825280832054600790925291829020549394507f90552fb8e54d9a2aa4212413b16aa948c66cab32c9fe727ff74be1850bb0a8be9385928c928c928c928c928c928c9260f860020a9092029151600160a060020a038b168152602081018a90526040810189905268010000000000000000640100000000870263ffffffff8716170260a082015260c08101849052600160f860020a0319831660e082015261010081018290526101206060820181815290608083019083018a818151815260200191508051906020019080838360005b8381101561259a5780820151818401525b602001612581565b50505050905090810190601f1680156125c75780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b838110156125fe5780820151818401525b6020016125e5565b50505050905090810190601f16801561262b5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a15b9695505050505050565b600160a060020a038116600090815260076020908152604080832054600290925282205460ff1680612b38575062030d408411158015612b055750600160a060020a038316600090815260208190526040902054155b8015612b1357506005548111155b8015612b385750612b2261216b565b600160a060020a031632600160a060020a031614155b5b15612b475760009150612bff565b801515612b5357506005545b600160a060020a0383166000908152600660205260408082205460099291889160f860020a0290518083805190602001908083835b60208310612ba857805182525b601f199092019160209182019101612b88565b6001836020036101000a0380198251168184511617909252505050600160f860020a031990941691909301908152600101925060409150505190819003902081526020810191909152604001600020548482020191505b509392505050565b60035433600160a060020a03908116911614612c2257600080fd5b5b565b6000610ecb8362030d4084612aaf565b90505b92915050565b600080612c4c848433612aaf565b9150348290106102175781340390506000811115612c9557600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515612c9557600080fd5b5b612ca0565b600080fd5b5b5092915050565b815481835581811511610fec57600083815260209020610fec918101908301612cfc565b5b505050565b815481835581811511610fec57600083815260209020610fec918101908301612cfc565b5b505050565b61219c91905b80821115611d475760008155600101612d02565b5090565b905600a165627a7a723058204a8139af1bf2a9591f800190ee829830157762d6342103f42e55424b288403ae0029

Swarm Source

bzzr://4a8139af1bf2a9591f800190ee829830157762d6342103f42e55424b288403ae

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.