Contract 0x8323dde7e886684923599de7b719c984b5cbd75b

Contract Overview

Balance:
0 Ether

Latest 25 internal transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xe725445ba4940948292abb2163a742258ca79136d32e64e2755ec974af1a4b811059065615 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0xe725445ba4940948292abb2163a742258ca79136d32e64e2755ec974af1a4b811059065615 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0x470a228553c364a3ffcc2a8b95263ec0a6adfd3c4d8947a69ad35ebac4e1c667105903571 hr 15 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0x470a228553c364a3ffcc2a8b95263ec0a6adfd3c4d8947a69ad35ebac4e1c667105903571 hr 15 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0xd24b6a9b165737f798fcd69271e92b3d74e0f08f530f28d257f64a06361b185f105900572 hrs 15 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0xd24b6a9b165737f798fcd69271e92b3d74e0f08f530f28d257f64a06361b185f105900572 hrs 15 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0xf6b24844bcca534fe6600b9a77c5de16789ffb7e42aea7113758ff283854d27f105897633 hrs 14 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0xf6b24844bcca534fe6600b9a77c5de16789ffb7e42aea7113758ff283854d27f105897633 hrs 14 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0x26d047500b6fa90d46e2af2eb952bad758f3c16402e5c58ec213c89338b70df5105894654 hrs 15 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0x26d047500b6fa90d46e2af2eb952bad758f3c16402e5c58ec213c89338b70df5105894654 hrs 15 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0xb9f2990a24ed14ee703a382b7b3ece77d0de4579b9f99ef14051ddef8b9f6b4f105891665 hrs 15 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0xb9f2990a24ed14ee703a382b7b3ece77d0de4579b9f99ef14051ddef8b9f6b4f105891665 hrs 15 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0x322dfae1dbcb4d0cde25739da87d79b40a297552e0c7e17657a05222d7b9ee5d105888736 hrs 15 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0x322dfae1dbcb4d0cde25739da87d79b40a297552e0c7e17657a05222d7b9ee5d105888736 hrs 15 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0xab50aa5f3bed3ddda3067a1b24cc5570130820ead4fe88435bcb7d97c7cab65a105885817 hrs 15 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0xab50aa5f3bed3ddda3067a1b24cc5570130820ead4fe88435bcb7d97c7cab65a105885817 hrs 15 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0x579cb50998f926b38e8558dddd71b32f12750f4e90304e581cde5cdbccd0e3a8105882958 hrs 16 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0x579cb50998f926b38e8558dddd71b32f12750f4e90304e581cde5cdbccd0e3a8105882958 hrs 16 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0x078f0f374ef2feed38ed876de2cfeb3db68ed0c4c2c0f89257382aeb3c51d63c105879989 hrs 15 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0x078f0f374ef2feed38ed876de2cfeb3db68ed0c4c2c0f89257382aeb3c51d63c105879989 hrs 15 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0xf9164bddd27b8a7af3dff2e10ae47d6a42beab0f3246532021888dcc17a4b1851058771110 hrs 16 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0xf9164bddd27b8a7af3dff2e10ae47d6a42beab0f3246532021888dcc17a4b1851058771110 hrs 16 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0xc3c7fb9de9936039dc597c9e05f2ca1e19000aa9cb63e4c8a1b062004741dd3a1058741411 hrs 15 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
0xc3c7fb9de9936039dc597c9e05f2ca1e19000aa9cb63e4c8a1b062004741dd3a1058741411 hrs 15 mins ago0xd4801976438ab7cd4b46b7579de3c3d4988517d60x8323dde7e886684923599de7b719c984b5cbd75b0 Ether
0x119873149c063013666646712fe67adc88a34f239caf54dc847a599fa5c171ec1058711512 hrs 15 mins ago0x8323dde7e886684923599de7b719c984b5cbd75b0xd4801976438ab7cd4b46b7579de3c3d4988517d60 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)

Contract Name:
Medianizer

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes

Runs (Optimizer):
200

Contract Source Code

// hevm: flattened sources of src/medianizer.sol
pragma solidity ^0.4.24;

////// lib/ds-value/lib/ds-thing/lib/ds-auth/src/auth.sol
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity ^0.4.23; */

contract DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) public view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    constructor() public {
        owner = msg.sender;
        emit LogSetOwner(msg.sender);
    }

    function setOwner(address owner_)
        public
        auth
    {
        owner = owner_;
        emit LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
        public
        auth
    {
        authority = authority_;
        emit LogSetAuthority(authority);
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig));
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(0)) {
            return false;
        } else {
            return authority.canCall(src, this, sig);
        }
    }
}

////// lib/ds-value/lib/ds-thing/lib/ds-math/src/math.sol
/// math.sol -- mixin for inline numerical wizardry

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity ^0.4.13; */

contract DSMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x);
    }
    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x);
    }
    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x);
    }

    function min(uint x, uint y) internal pure returns (uint z) {
        return x <= y ? x : y;
    }
    function max(uint x, uint y) internal pure returns (uint z) {
        return x >= y ? x : y;
    }
    function imin(int x, int y) internal pure returns (int z) {
        return x <= y ? x : y;
    }
    function imax(int x, int y) internal pure returns (int z) {
        return x >= y ? x : y;
    }

    uint constant WAD = 10 ** 18;
    uint constant RAY = 10 ** 27;

    function wmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), WAD / 2) / WAD;
    }
    function rmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), RAY / 2) / RAY;
    }
    function wdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, WAD), y / 2) / y;
    }
    function rdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, RAY), y / 2) / y;
    }

    // This famous algorithm is called "exponentiation by squaring"
    // and calculates x^n with x as fixed-point and n as regular unsigned.
    //
    // It's O(log n), instead of O(n) for naive repeated multiplication.
    //
    // These facts are why it works:
    //
    //  If n is even, then x^n = (x^2)^(n/2).
    //  If n is odd,  then x^n = x * x^(n-1),
    //   and applying the equation for even x gives
    //    x^n = x * (x^2)^((n-1) / 2).
    //
    //  Also, EVM division is flooring and
    //    floor[(n-1) / 2] = floor[n / 2].
    //
    function rpow(uint x, uint n) internal pure returns (uint z) {
        z = n % 2 != 0 ? x : RAY;

        for (n /= 2; n != 0; n /= 2) {
            x = rmul(x, x);

            if (n % 2 != 0) {
                z = rmul(z, x);
            }
        }
    }
}

////// lib/ds-value/lib/ds-thing/lib/ds-note/src/note.sol
/// note.sol -- the `note' modifier, for logging calls as events

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity ^0.4.23; */

contract DSNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  guy,
        bytes32  indexed  foo,
        bytes32  indexed  bar,
        uint              wad,
        bytes             fax
    ) anonymous;

    modifier note {
        bytes32 foo;
        bytes32 bar;

        assembly {
            foo := calldataload(4)
            bar := calldataload(36)
        }

        emit LogNote(msg.sig, msg.sender, foo, bar, msg.value, msg.data);

        _;
    }
}

////// lib/ds-value/lib/ds-thing/src/thing.sol
// thing.sol - `auth` with handy mixins. your things should be DSThings

// Copyright (C) 2017  DappHub, LLC

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity ^0.4.23; */

/* import 'ds-auth/auth.sol'; */
/* import 'ds-note/note.sol'; */
/* import 'ds-math/math.sol'; */

contract DSThing is DSAuth, DSNote, DSMath {

    function S(string s) internal pure returns (bytes4) {
        return bytes4(keccak256(abi.encodePacked(s)));
    }

}

////// lib/ds-value/src/value.sol
/// value.sol - a value is a simple thing, it can be get and set

// Copyright (C) 2017  DappHub, LLC

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity ^0.4.23; */

/* import 'ds-thing/thing.sol'; */

contract DSValue is DSThing {
    bool    has;
    bytes32 val;
    function peek() public view returns (bytes32, bool) {
        return (val,has);
    }
    function read() public view returns (bytes32) {
        bytes32 wut; bool haz;
        (wut, haz) = peek();
        assert(haz);
        return wut;
    }
    function poke(bytes32 wut) public note auth {
        val = wut;
        has = true;
    }
    function void() public note auth {  // unset the value
        has = false;
    }
}

////// src/medianizer.sol
/// medianizer.sol - read ds-values and output median

// Copyright (C) 2017, 2018  DappHub, LLC

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity ^0.4.24; */

/* import "ds-value/value.sol"; */

contract Medianizer is DSThing {
    event LogValue(bytes32 val);

    uint128 val;
    bool public has;

    mapping (bytes12 => address) public values;
    mapping (address => bytes12) public indexes;
    bytes12 public next = 0x1;
    uint96 public min = 0x1;

    function set(address wat) public auth {
        bytes12 nextId = bytes12(uint96(next) + 1);
        require(nextId != 0x0);
        this.set(next, wat);
        next = nextId;
    }

    function set(bytes12 pos, address wat) public note auth {
        require(pos != 0x0);
        require(wat == 0 || indexes[wat] == 0);

        indexes[values[pos]] = 0x0; // Making sure to remove a possible existing address in that position

        if (wat != 0) {
            indexes[wat] = pos;
        }

        values[pos] = wat;
    }

    function setMin(uint96 min_) public note auth {
        require(min_ != 0x0);
        min = min_;
    }

    function setNext(bytes12 next_) public note auth {
        require(next_ != 0x0);
        next = next_;
    }

    function unset(bytes12 pos) public auth {
        this.set(pos, 0);
    }

    function unset(address wat) public auth {
        this.set(indexes[wat], 0);
    }

    function void() external auth {
        has = false;
        // TODO: don't allow poke
    }

    function poke() external {
        (bytes32 val_, bool has_) = compute();
        val = uint128(val_);
        has = has_;
        emit LogValue(val_);
    }

    function peek() external view returns (bytes32, bool) {
        return (bytes32(val), has);
    }

    function read() external view returns (bytes32) {
        require(has);
        return bytes32(val);
    }

    function compute() public view returns (bytes32, bool) {
        bytes32[] memory wuts = new bytes32[](uint96(next) - 1);
        uint96 ctr = 0;
        for (uint96 i = 1; i < uint96(next); i++) {
            if (values[bytes12(i)] != 0) {
                bytes32 wut;
                bool wuz;
                (wut, wuz) = DSValue(values[bytes12(i)]).peek();
                if (wuz) {
                    if (ctr == 0 || wut >= wuts[ctr - 1]) {
                        wuts[ctr] = wut;
                    } else {
                        uint96 j = 0;
                        while (wut >= wuts[j]) {
                            j++;
                        }
                        for (uint96 k = ctr; k > j; k--) {
                            wuts[k] = wuts[k - 1];
                        }
                        wuts[j] = wut;
                    }
                    ctr++;
                }
            }
        }

        if (ctr < min) {
            return (bytes32(val), false);
        }

        bytes32 value;
        if (ctr % 2 == 0) {
            uint128 val1 = uint128(wuts[(ctr / 2) - 1]);
            uint128 val2 = uint128(wuts[ctr / 2]);
            value = bytes32(wdiv(add(val1, val2), 2 ether));
        } else {
            value = wuts[(ctr - 1) / 2];
        }

        return (value, true);
    }

}

Contract ABI

[{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"poke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"compute","outputs":[{"name":"","type":"bytes32"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"wat","type":"address"}],"name":"set","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wat","type":"address"}],"name":"unset","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"indexes","outputs":[{"name":"","type":"bytes12"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"next","outputs":[{"name":"","type":"bytes12"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"read","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"peek","outputs":[{"name":"","type":"bytes32"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes12"}],"name":"values","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"min_","type":"uint96"}],"name":"setMin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"void","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"has","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pos","type":"bytes12"},{"name":"wat","type":"address"}],"name":"set","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pos","type":"bytes12"}],"name":"unset","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"next_","type":"bytes12"}],"name":"setNext","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"min","outputs":[{"name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"val","type":"bytes32"}],"name":"LogValue","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"name":"sig","type":"bytes4"},{"indexed":true,"name":"guy","type":"address"},{"indexed":true,"name":"foo","type":"bytes32"},{"indexed":true,"name":"bar","type":"bytes32"},{"indexed":false,"name":"wad","type":"uint256"},{"indexed":false,"name":"fax","type":"bytes"}],"name":"LogNote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]

Contract Creation Code

60806040819052600580546c0100000000000000000000000060016001606060020a03199092168217606060020a60c060020a03191617909155805433600160a060020a03199091168117909155907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a2611170806100836000396000f3006080604052600436106101115763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af4035811461011657806318178358146101395780631a43c3381461014e5780632801617e1461017c5780632966d1b91461019d5780632db78d93146101be5780634c8fe526146101fc57806357de26a41461021157806359e02dd714610238578063651dd0de1461024d5780636ba5ef0d1461028b5780637a9e5e4b146102ac5780638da5cb5b146102cd578063ac4c25b2146102e2578063b689d5ac146102f7578063beb38b4314610320578063bf7e214f1461034e578063e0a1fdad14610363578063f2c5925d14610385578063f8897945146103a7575b600080fd5b34801561012257600080fd5b50610137600160a060020a03600435166103d8565b005b34801561014557600080fd5b50610137610449565b34801561015a57600080fd5b506101636104ed565b6040805192835290151560208301528051918290030190f35b34801561018857600080fd5b50610137600160a060020a03600435166108d6565b3480156101a957600080fd5b50610137600160a060020a03600435166109d8565b3480156101ca57600080fd5b506101df600160a060020a0360043516610a9a565b60408051600160a060020a03199092168252519081900360200190f35b34801561020857600080fd5b506101df610ab2565b34801561021d57600080fd5b50610226610abe565b60408051918252519081900360200190f35b34801561024457600080fd5b50610163610aff565b34801561025957600080fd5b5061026f600160a060020a031960043516610b31565b60408051600160a060020a039092168252519081900360200190f35b34801561029757600080fd5b506101376001606060020a0360043516610b4c565b3480156102b857600080fd5b50610137600160a060020a0360043516610c18565b3480156102d957600080fd5b5061026f610c85565b3480156102ee57600080fd5b50610137610c94565b34801561030357600080fd5b5061030c610cd1565b604080519115158252519081900360200190f35b34801561032c57600080fd5b50610137600160a060020a031960043516602435600160a060020a0316610cee565b34801561035a57600080fd5b5061026f610e6f565b34801561036f57600080fd5b50610137600160a060020a031960043516610e7e565b34801561039157600080fd5b50610137600160a060020a031960043516610f05565b3480156103b357600080fd5b506103bc610fb2565b604080516001606060020a039092168252519081900360200190f35b6103ee33600035600160e060020a031916610fd1565b15156103f957600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b6000806104546104ed565b600280546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff84161770ff000000000000000000000000000000001916700100000000000000000000000000000000831515021790556040805183815290519294509092507f296ba4ca62c6c21c95e828080cb8aec7481b71390585605300a8a76f9e95b527916020918190039190910190a15050565b600080606060008060008060008060008060006001600560009054906101000a900460a060020a0260a060020a9004036001606060020a031660405190808252806020026020018201604052801561054f578160200160208202803883390190505b50995060009850600197505b60055460a060020a908102046001606060020a0390811690891610156107a357600160a060020a031960a060020a890216600090815260036020526040902054600160a060020a0316156107985760a060020a8802600160a060020a0319166000908152600360205260408082205481517f59e02dd70000000000000000000000000000000000000000000000000000000081528251600160a060020a03909216936359e02dd79360048084019491939192918390030190829087803b15801561062457600080fd5b505af1158015610638573d6000803e3d6000fd5b505050506040513d604081101561064e57600080fd5b50805160209091015190975095508515610798576001606060020a038916158061069b57508960018a036001606060020a031681518110151561068d57fe5b602090810290910101518710155b156106c757868a8a6001606060020a03168151811015156106b857fe5b60209081029091010152610791565b600094505b89856001606060020a03168151811015156106e357fe5b6020908102909101015187106106fe576001909401936106cc565b8893505b846001606060020a0316846001606060020a0316111561076e5789600185036001606060020a031681518110151561073657fe5b906020019060200201518a856001606060020a031681518110151561075757fe5b602090810290910101526000199390930192610702565b868a866001606060020a031681518110151561078657fe5b602090810290910101525b6001909801975b60019097019661055b565b6005546001606060020a036c010000000000000000000000009091048116908a1610156107ea576002546fffffffffffffffffffffffffffffffff169b5060009a506108c8565b60018916151561088c5789600160026001606060020a038c1604036001606060020a031681518110151561081a57fe5b6020908102909101015191508960026001606060020a038b16046001606060020a031681518110151561084957fe5b6020908102909101015190506108856108776fffffffffffffffffffffffffffffffff8085169084166110da565b671bc16d674ec800006110ea565b92506108c0565b8960026001606060020a036000198c0116046001606060020a03168151811015156108b357fe5b9060200190602002015192505b8260019b509b505b505050505050505050509091565b60006108ee33600035600160e060020a031916610fd1565b15156108f957600080fd5b5060055460a060020a90810281900460010102600160a060020a03198116151561092257600080fd5b600554604080517fbeb38b4300000000000000000000000000000000000000000000000000000000815260a060020a909202600160a060020a0319166004830152600160a060020a038416602483015251309163beb38b4391604480830192600092919082900301818387803b15801561099b57600080fd5b505af11580156109af573d6000803e3d6000fd5b5050600580546bffffffffffffffffffffffff191660a060020a90940493909317909255505050565b6109ee33600035600160e060020a031916610fd1565b15156109f957600080fd5b600160a060020a03811660009081526004602081905260408083205481517fbeb38b4300000000000000000000000000000000000000000000000000000000815260a060020a909102600160a060020a031916928101929092526024820183905251309263beb38b43926044808201939182900301818387803b158015610a7f57600080fd5b505af1158015610a93573d6000803e3d6000fd5b5050505050565b60046020526000908152604090205460a060020a0281565b60055460a060020a0281565b600254600090700100000000000000000000000000000000900460ff161515610ae657600080fd5b506002546fffffffffffffffffffffffffffffffff1690565b6002546fffffffffffffffffffffffffffffffff81169170010000000000000000000000000000000090910460ff1690565b600360205260009081526040902054600160a060020a031681565b60408051348082526020820183815236938301849052600435936024359384938693339360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4610bb333600035600160e060020a031916610fd1565b1515610bbe57600080fd5b6001606060020a0383161515610bd357600080fd5b5050600580546001606060020a039092166c010000000000000000000000000277ffffffffffffffffffffffff00000000000000000000000019909216919091179055565b610c2e33600035600160e060020a031916610fd1565b1515610c3957600080fd5b60008054600160a060020a031916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b610caa33600035600160e060020a031916610fd1565b1515610cb557600080fd5b6002805470ff0000000000000000000000000000000019169055565b600254700100000000000000000000000000000000900460ff1681565b60408051348082526020820183815236938301849052600435936024359384938693339360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4610d5533600035600160e060020a031916610fd1565b1515610d6057600080fd5b600160a060020a031984161515610d7657600080fd5b600160a060020a0383161580610db25750600160a060020a03831660009081526004602052604090205460a060020a02600160a060020a031916155b1515610dbd57600080fd5b600160a060020a03198416600090815260036020908152604080832054600160a060020a039081168452600490925290912080546bffffffffffffffffffffffff19169055831615610e3d57600160a060020a038316600090815260046020526040902080546bffffffffffffffffffffffff191660a060020a86041790555b5050600160a060020a031991821660009081526003602052604090208054600160a060020a0390921691909216179055565b600054600160a060020a031681565b610e9433600035600160e060020a031916610fd1565b1515610e9f57600080fd5b604080517fbeb38b43000000000000000000000000000000000000000000000000000000008152600160a060020a0319831660048201526000602482018190529151309263beb38b43926044808201939182900301818387803b158015610a7f57600080fd5b60408051348082526020820183815236938301849052600435936024359384938693339360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4610f6c33600035600160e060020a031916610fd1565b1515610f7757600080fd5b600160a060020a031983161515610f8d57600080fd5b5050600580546bffffffffffffffffffffffff191660a060020a909204919091179055565b6005546c0100000000000000000000000090046001606060020a031681565b6000600160a060020a038316301415610fec575060016110d4565b600154600160a060020a038481169116141561100a575060016110d4565b600054600160a060020a03161515611024575060006110d4565b60008054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152306024830152600160e060020a0319871660448301529151919092169263b700961392606480820193602093909283900390910190829087803b1580156110a557600080fd5b505af11580156110b9573d6000803e3d6000fd5b505050506040513d60208110156110cf57600080fd5b505190505b92915050565b808201828110156110d457600080fd5b60008161110b61110285670de0b6b3a764000061111c565b600285046110da565b81151561111457fe5b049392505050565b600081158061113957505080820282828281151561113657fe5b04145b15156110d457600080fd00a165627a7a723058203f41e0830166449788dbf5559006cd62d9434a3b84bd3efab9bd0156183940eb0029

Swarm Source

bzzr://3f41e0830166449788dbf5559006cd62d9434a3b84bd3efab9bd0156183940eb
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward