Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 1 txn
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: SaiValuesAggregator
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

// SaiValuesAggregator.sol -- Sai values aggregator

// 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;

/// 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);
            }
        }
    }
}

contract TopInterface {
    function tub() public view returns (TubInterface);
    function tap() public view returns (TapInterface);
}

contract TubInterface {
    function vox() public view returns (VoxInterface);
    function pit() public view returns (address);
    function pip() public view returns (PipInterface);
    function pep() public view returns (PepInterface);
    function mat() public view returns (uint);
    function chi() public view returns (uint);
    function per() public view returns (uint);
    function tag() public view returns (uint);
    function axe() public view returns (uint);
    function cap() public view returns (uint);
    function fit() public view returns (uint);
    function tax() public view returns (uint);
    function fee() public view returns (uint);
    function gap() public view returns (uint);
    function rho() public view returns (uint);
    function rhi() public view returns (uint);
    function off() public view returns (bool);
    function out() public view returns (bool);
    function gem() public view returns (TokInterface);
    function gov() public view returns (TokInterface);
    function skr() public view returns (TokInterface);
    function sai() public view returns (TokInterface);
    function sin() public view returns (TokInterface);
    function cups(bytes32) public view returns (address, uint, uint, uint);
    function tab(bytes32) public view returns (uint);
    function safe(bytes32) public view returns (bool);
}

contract TapInterface {
    function fix() public view returns (uint);
    function gap() public view returns (uint);
}

contract VoxInterface {
    function par() public view returns (uint);
    function way() public view returns (uint);
    function era() public view returns (uint);
}

contract PipInterface {
    function peek() public view returns (bytes32, bool);
}

contract PepInterface {
    function peek() public view returns (bytes32, bool);
}

contract TokInterface {
    function totalSupply() public view returns (uint);
    function balanceOf(address) public view returns (uint);
    function allowance(address, address) public view returns (uint);
}

contract ProxyInterface {
    function owner() public view returns (address);
}

contract ProxyRegInterface {
    function proxies(address) public view returns (address);
}

contract SaiValuesAggregator is DSMath {
    TopInterface public top;
    TubInterface public tub;
    TapInterface public tap;
    VoxInterface public vox;
    address      public pit;
    PipInterface public pip;
    PepInterface public pep;
    TokInterface public gem;
    TokInterface public gov;
    TokInterface public skr;
    TokInterface public sai;
    TokInterface public sin;

    constructor(address _top) public {
        top = TopInterface(_top);
        tub = top.tub();
        tap = top.tap();
        vox = tub.vox();
        pit = tub.pit();
        pip = tub.pip();
        pep = tub.pep();
        gem = tub.gem();
        gov = tub.gov();
        skr = tub.skr();
        sai = tub.sai();
        sin = tub.sin();
    }

    function getContractsAddrs(address proxyRegistry, address addr) public view returns (
                                                                                uint blockNumber,
                                                                                address[] saiContracts,
                                                                                address proxy
                                                                            ) {
        blockNumber = block.number;
        saiContracts = new address[](12);
        saiContracts[0] = top;
        saiContracts[1] = tub;
        saiContracts[2] = tap;
        saiContracts[3] = vox;
        saiContracts[4] = pit;
        saiContracts[5] = pip;
        saiContracts[6] = pep;
        saiContracts[7] = gem;
        saiContracts[8] = gov;
        saiContracts[9] = skr;
        saiContracts[10] = sai;
        saiContracts[11] = sin;
        proxy = ProxyRegInterface(proxyRegistry).proxies(addr);
        proxy = proxy != address(0) && ProxyInterface(proxy).owner() == addr ? proxy : address(0);
    }

    // Return the aggregated values from tub, vox and tap
    function aggregateValues(address addr, address proxy) public view returns (
                                                        uint blockNumber,
                                                        bytes32 pipVal,
                                                        bool pipSet,
                                                        bytes32 pepVal,
                                                        bool pepSet,
                                                        bool[] sStatus, // System status
                                                        uint[] sValues, // System Values
                                                        uint[] tValues // Token Values
                                                    ) {
        blockNumber = block.number;

        (pipVal, pipSet) = pip.peek(); // Price feed value for gem
        (pepVal, pepSet) = pep.peek(); // Price feed value for gov

        sStatus = new bool[](4);
        sStatus[0] = tub.off(); // off: Cage flag
        sStatus[1] = tub.out(); // out: Post cage exit
        uint pro = rmul(skr.balanceOf(tub), tub.tag());
        sStatus[2] = pro < sin.totalSupply(); // eek: deficit
        sStatus[3] = pro >= rmul(sin.totalSupply(), tub.mat()); // safe

        sValues = new uint[](19);
        // Tub
        sValues[0] = tub.axe(); // Liquidation penalty
        sValues[1] = tub.mat(); // Liquidation ratio
        sValues[2] = tub.cap(); // Debt ceiling
        sValues[3] = tub.fit(); // REF per SKR (just before settlement)
        sValues[4] = tub.tax(); // Stability fee
        sValues[5] = tub.fee(); // Governance fee
        sValues[6] = tub.chi(); // Accumulated Tax Rates
        sValues[7] = tub.rhi(); // Accumulated Tax + Fee Rates
        sValues[8] = tub.rho(); // Time of last drip
        sValues[9] = tub.gap(); // Join-Exit Spread
        sValues[10] = tub.tag(); // Abstracted collateral price (ref per skr)
        sValues[11] = tub.per(); // Wrapper ratio (gem per skr)
        // Vox
        sValues[12] = vox.par(); // Dai Target Price (ref per dai)
        sValues[13] = vox.way(); // The holder fee (interest rate)
        sValues[14] = vox.era();
        // Tap
        sValues[15] = tap.fix(); // Cage price
        sValues[16] = tap.gap(); // Boom-Bust Spread

        tValues = new uint[](20);
        tValues[0] = addr.balance;
        tValues[1] = gem.totalSupply();
        tValues[2] = gem.balanceOf(addr);
        tValues[3] = gem.balanceOf(tub);
        tValues[4] = gem.balanceOf(tap);

        tValues[5] = gov.totalSupply();
        tValues[6] = gov.balanceOf(addr);
        tValues[7] = gov.balanceOf(pit);
        tValues[8] = gov.allowance(addr, proxy);

        tValues[9] = skr.totalSupply();
        tValues[10] = skr.balanceOf(addr);
        tValues[11] = skr.balanceOf(tub);
        tValues[12] = skr.balanceOf(tap);

        tValues[13] = sai.totalSupply();
        tValues[14] = sai.balanceOf(addr);
        tValues[15] = sai.balanceOf(tap);
        tValues[16] = sai.allowance(addr, proxy);

        tValues[17] = sin.totalSupply();
        tValues[18] = sin.balanceOf(tub);
        tValues[19] = sin.balanceOf(tap);
    }

    function aggregateCDPValues(bytes32 cup) public view returns (
                                                                    uint blockNumber,
                                                                    address lad,
                                                                    bool safe,
                                                                    uint[] r
                                                                ) {
        blockNumber = block.number;

        r = new uint[](8);

        // r[0]: ink
        // r[1]: art
        // r[2]: ire
        (lad, r[0], r[1], r[2]) = tub.cups(cup);
        if (lad != address(0)) {
            safe = tub.safe(cup);

            uint pro = rmul(tub.tag(), r[0]);
            // r[3]: ratio
            r[3] = vox.par() > 0 && tub.tab(cup) > 0 ? wdiv(pro, rmul(vox.par(), tub.tab(cup))) : 0;

            // r[4]: availDAI
            r[4] = safe && tub.mat() > 0 && vox.par() > 0
            ?
                sub(rdiv(pro, rmul(tub.mat(), vox.par())), tub.tab(cup))
            :
                0; // If not safe DAI can not be drawn

            uint minSKRNeeded = tub.tag() > 0
            ?
                rdiv(rmul(rmul(tub.tab(cup), tub.mat()), vox.par()), tub.tag())
            :
                0; // If there is not feed price, minSKR can not be calculated

            // r[5]: availSKR
            r[5] = safe
            ?
                r[1] > 0
                ?
                    minSKRNeeded > 0
                    ?
                        sub(r[0], minSKRNeeded > 0.005 ether ? minSKRNeeded : 0.005 ether)
                    :
                        0 // If minSKR can not be calculated, availSKR either
                :
                    r[0] // If no debt the available SKR is all the amount locked
            :
                0; // If not safe, there is not SKR to free

            // r[6]: availETH
            r[6] = rmul(r[5], tub.per());

            // r[7]: liqPrice
            r[7] = r[0] > 0 && tub.tab(cup) > 0
            ?
                wdiv(rdiv(rmul(tub.tab(cup), tub.mat()), tub.per()), r[0])
            :
                0; // If there is not SKR locked or debt, liqPrice can not be calculated
        }
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"sin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"skr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gov","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tub","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"cup","type":"bytes32"}],"name":"aggregateCDPValues","outputs":[{"name":"blockNumber","type":"uint256"},{"name":"lad","type":"address"},{"name":"safe","type":"bool"},{"name":"r","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vox","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gem","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sai","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"},{"name":"proxy","type":"address"}],"name":"aggregateValues","outputs":[{"name":"blockNumber","type":"uint256"},{"name":"pipVal","type":"bytes32"},{"name":"pipSet","type":"bool"},{"name":"pepVal","type":"bytes32"},{"name":"pepSet","type":"bool"},{"name":"sStatus","type":"bool[]"},{"name":"sValues","type":"uint256[]"},{"name":"tValues","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"proxyRegistry","type":"address"},{"name":"addr","type":"address"}],"name":"getContractsAddrs","outputs":[{"name":"blockNumber","type":"uint256"},{"name":"saiContracts","type":"address[]"},{"name":"proxy","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pep","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pip","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pit","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"top","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_top","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]

  Contract Creation Code Switch To Opcodes View
60806040523480156200001157600080fd5b5060405160208062003818833981016040818152915160008054600160a060020a031916600160a060020a03808416919091178083557f34e70cc20000000000000000000000000000000000000000000000000000000085529451929416926334e70cc29260048083019360209383900390910190829087803b1580156200009857600080fd5b505af1158015620000ad573d6000803e3d6000fd5b505050506040513d6020811015620000c457600080fd5b505160018054600160a060020a031916600160a060020a0392831617905560008054604080517ffd2210310000000000000000000000000000000000000000000000000000000081529051919093169263fd2210319260048083019360209390929083900390910190829087803b1580156200013f57600080fd5b505af115801562000154573d6000803e3d6000fd5b505050506040513d60208110156200016b57600080fd5b505160028054600160a060020a031916600160a060020a03928316179055600154604080517f67550a35000000000000000000000000000000000000000000000000000000008152905191909216916367550a359160048083019260209291908290030181600087803b158015620001e257600080fd5b505af1158015620001f7573d6000803e3d6000fd5b505050506040513d60208110156200020e57600080fd5b505160038054600160a060020a031916600160a060020a03928316179055600154604080517ff03c7c6e0000000000000000000000000000000000000000000000000000000081529051919092169163f03c7c6e9160048083019260209291908290030181600087803b1580156200028557600080fd5b505af11580156200029a573d6000803e3d6000fd5b505050506040513d6020811015620002b157600080fd5b505160048054600160a060020a031916600160a060020a03928316178155600154604080517fd741e2f90000000000000000000000000000000000000000000000000000000081529051919093169263d741e2f992818101926020929091908290030181600087803b1580156200032757600080fd5b505af11580156200033c573d6000803e3d6000fd5b505050506040513d60208110156200035357600080fd5b505160058054600160a060020a031916600160a060020a03928316179055600154604080517face237f50000000000000000000000000000000000000000000000000000000081529051919092169163ace237f59160048083019260209291908290030181600087803b158015620003ca57600080fd5b505af1158015620003df573d6000803e3d6000fd5b505050506040513d6020811015620003f657600080fd5b505160068054600160a060020a031916600160a060020a03928316179055600154604080517f7bd2bea700000000000000000000000000000000000000000000000000000000815290519190921691637bd2bea79160048083019260209291908290030181600087803b1580156200046d57600080fd5b505af115801562000482573d6000803e3d6000fd5b505050506040513d60208110156200049957600080fd5b505160078054600160a060020a031916600160a060020a03928316179055600154604080517f12d43a51000000000000000000000000000000000000000000000000000000008152905191909216916312d43a519160048083019260209291908290030181600087803b1580156200051057600080fd5b505af115801562000525573d6000803e3d6000fd5b505050506040513d60208110156200053c57600080fd5b505160088054600160a060020a031916600160a060020a03928316179055600154604080517f0f8a771e00000000000000000000000000000000000000000000000000000000815290519190921691630f8a771e9160048083019260209291908290030181600087803b158015620005b357600080fd5b505af1158015620005c8573d6000803e3d6000fd5b505050506040513d6020811015620005df57600080fd5b505160098054600160a060020a031916600160a060020a03928316179055600154604080517f9166cba400000000000000000000000000000000000000000000000000000000815290519190921691639166cba49160048083019260209291908290030181600087803b1580156200065657600080fd5b505af11580156200066b573d6000803e3d6000fd5b505050506040513d60208110156200068257600080fd5b5051600a8054600160a060020a031916600160a060020a03928316179055600154604080517f071bafb50000000000000000000000000000000000000000000000000000000081529051919092169163071bafb59160048083019260209291908290030181600087803b158015620006f957600080fd5b505af11580156200070e573d6000803e3d6000fd5b505050506040513d60208110156200072557600080fd5b5051600b8054600160a060020a031916600160a060020a03909216919091179055506130c180620007576000396000f3006080604052600436106100c15763ffffffff60e060020a600035041663071bafb581146100c65780630f8a771e146100f757806312d43a511461010c57806334e70cc2146101215780633fdb36281461013657806367550a35146101cd5780637bd2bea7146101e25780639166cba4146101f75780639f184dd51461020c578063a47b1a6c14610342578063ace237f5146103dd578063d741e2f9146103f2578063f03c7c6e14610407578063fd2210311461041c578063fe6dcdba14610431575b600080fd5b3480156100d257600080fd5b506100db610446565b60408051600160a060020a039092168252519081900360200190f35b34801561010357600080fd5b506100db610455565b34801561011857600080fd5b506100db610464565b34801561012d57600080fd5b506100db610473565b34801561014257600080fd5b5061014e600435610482565b6040518085815260200184600160a060020a0316600160a060020a031681526020018315151515815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156101b657818101518382015260200161019e565b505050509050019550505050505060405180910390f35b3480156101d957600080fd5b506100db6110fb565b3480156101ee57600080fd5b506100db61110a565b34801561020357600080fd5b506100db611119565b34801561021857600080fd5b50610233600160a060020a0360043581169060243516611128565b6040805189815260208082018a90528815159282019290925260608101879052851515608082015261010060a0820181815286519183019190915285519192909160c084019160e0850191610120860191898101910280838360005b838110156102a757818101518382015260200161028f565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156102e65781810151838201526020016102ce565b50505050905001848103825285818151815260200191508051906020019060200280838360005b8381101561032557818101518382015260200161030d565b505050509050019b50505050505050505050505060405180910390f35b34801561034e57600080fd5b50610369600160a060020a0360043581169060243516612c2d565b604051808481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019060200280838360005b838110156103c75781810151838201526020016103af565b5050505090500194505050505060405180910390f35b3480156103e957600080fd5b506100db612f7d565b3480156103fe57600080fd5b506100db612f8c565b34801561041357600080fd5b506100db612f9b565b34801561042857600080fd5b506100db612faa565b34801561043d57600080fd5b506100db612fb9565b600b54600160a060020a031681565b600954600160a060020a031681565b600854600160a060020a031681565b600154600160a060020a031681565b604080516008808252610120820190925243916000918291606091839182919060208201610100803883395050600154604080517ffdac0025000000000000000000000000000000000000000000000000000000008152600481018c90529051939650600160a060020a039091169263fdac0025925060248083019260809291908290030181600087803b15801561051957600080fd5b505af115801561052d573d6000803e3d6000fd5b505050506040513d608081101561054357600080fd5b508051602082015160408301516060909301518651929391928790600090811061056957fe5b90602001906020020187600181518110151561058157fe5b90602001906020020188600281518110151561059957fe5b60209081029091010192909252919052529450600160a060020a038516156110f257600154604080517fe95823ad000000000000000000000000000000000000000000000000000000008152600481018a90529051600160a060020a039092169163e95823ad916024808201926020929091908290030181600087803b15801561062257600080fd5b505af1158015610636573d6000803e3d6000fd5b505050506040513d602081101561064c57600080fd5b50516001546040805160e160020a6328fc883302815290519296506106e992600160a060020a03909216916351f91066916004808201926020929091908290030181600087803b15801561069f57600080fd5b505af11580156106b3573d6000803e3d6000fd5b505050506040513d60208110156106c957600080fd5b50518451859060009081106106da57fe5b90602001906020020151612fc8565b91506000600360009054906101000a9004600160a060020a0316600160a060020a031663495d32cb6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561074057600080fd5b505af1158015610754573d6000803e3d6000fd5b505050506040513d602081101561076a57600080fd5b50511180156107f257506001546040805160e260020a633df2358d028152600481018a90529051600092600160a060020a03169163f7c8d63491602480830192602092919082900301818787803b1580156107c457600080fd5b505af11580156107d8573d6000803e3d6000fd5b505050506040513d60208110156107ee57600080fd5b5051115b6107fd57600061090a565b61090a82610905600360009054906101000a9004600160a060020a0316600160a060020a031663495d32cb6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561085757600080fd5b505af115801561086b573d6000803e3d6000fd5b505050506040513d602081101561088157600080fd5b50516001546040805160e260020a633df2358d028152600481018e90529051600160a060020a039092169163f7c8d634916024808201926020929091908290030181600087803b1580156108d457600080fd5b505af11580156108e8573d6000803e3d6000fd5b505050506040513d60208110156108fe57600080fd5b5051612fc8565b61300b565b83600381518110151561091957fe5b602090810290910101528380156109b85750600154604080517fab0783da0000000000000000000000000000000000000000000000000000000081529051600092600160a060020a03169163ab0783da91600480830192602092919082900301818787803b15801561098a57600080fd5b505af115801561099e573d6000803e3d6000fd5b505050506040513d60208110156109b457600080fd5b5051115b8015610a4c5750600354604080517f495d32cb0000000000000000000000000000000000000000000000000000000081529051600092600160a060020a03169163495d32cb91600480830192602092919082900301818787803b158015610a1e57600080fd5b505af1158015610a32573d6000803e3d6000fd5b505050506040513d6020811015610a4857600080fd5b5051115b610a57576000610bc7565b610bc7610b4583610b40600160009054906101000a9004600160a060020a0316600160a060020a031663ab0783da6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ab457600080fd5b505af1158015610ac8573d6000803e3d6000fd5b505050506040513d6020811015610ade57600080fd5b5051600354604080517f495d32cb0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163495d32cb916004808201926020929091908290030181600087803b1580156108d457600080fd5b61302b565b6001546040805160e260020a633df2358d028152600481018c90529051600160a060020a039092169163f7c8d634916024808201926020929091908290030181600087803b158015610b9657600080fd5b505af1158015610baa573d6000803e3d6000fd5b505050506040513d6020811015610bc057600080fd5b5051613047565b836004815181101515610bd657fe5b60209081029091018101919091526001546040805160e160020a6328fc88330281529051600093600160a060020a03909316926351f91066926004808201939182900301818787803b158015610c2b57600080fd5b505af1158015610c3f573d6000803e3d6000fd5b505050506040513d6020811015610c5557600080fd5b505111610c63576000610e23565b6001546040805160e260020a633df2358d028152600481018a90529051610e2392610d9f92610d4c92600160a060020a039092169163f7c8d634916024808201926020929091908290030181600087803b158015610cc057600080fd5b505af1158015610cd4573d6000803e3d6000fd5b505050506040513d6020811015610cea57600080fd5b5051600154604080517fab0783da0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163ab0783da916004808201926020929091908290030181600087803b1580156108d457600080fd5b600360009054906101000a9004600160a060020a0316600160a060020a031663495d32cb6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156108d457600080fd5b600160009054906101000a9004600160a060020a0316600160a060020a03166351f910666040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610df257600080fd5b505af1158015610e06573d6000803e3d6000fd5b505050506040513d6020811015610e1c57600080fd5b505161302b565b905083610e31576000610ebc565b6000836001815181101515610e4257fe5b9060200190602002015111610e6f57826000815181101515610e6057fe5b90602001906020020151610ebc565b60008111610e7e576000610ebc565b610ebc836000815181101515610e9057fe5b906020019060200201516611c37937e080008311610eb5576611c37937e08000610eb7565b825b613047565b836005815181101515610ecb57fe5b602090810290910101528251610f459084906005908110610ee857fe5b90602001906020020151600160009054906101000a9004600160a060020a0316600160a060020a0316637ec9c3b86040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156108d457600080fd5b836006815181101515610f5457fe5b602090810290910101528251600090849082908110610f6f57fe5b90602001906020020151118015610fff57506001546040805160e260020a633df2358d028152600481018a90529051600092600160a060020a03169163f7c8d63491602480830192602092919082900301818787803b158015610fd157600080fd5b505af1158015610fe5573d6000803e3d6000fd5b505050506040513d6020811015610ffb57600080fd5b5051115b61100a5760006110d8565b6001546040805160e260020a633df2358d028152600481018a905290516110d8926110ba9261106792600160a060020a039092169163f7c8d634916024808201926020929091908290030181600087803b158015610cc057600080fd5b600160009054906101000a9004600160a060020a0316600160a060020a0316637ec9c3b86040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610df257600080fd5b8460008151811015156110c957fe5b9060200190602002015161300b565b8360078151811015156110e757fe5b602090810290910101525b50509193509193565b600354600160a060020a031681565b600754600160a060020a031681565b600a54600160a060020a031681565b600080600080600060608060606000439850600560009054906101000a9004600160a060020a0316600160a060020a03166359e02dd76040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561118c57600080fd5b505af11580156111a0573d6000803e3d6000fd5b505050506040513d60408110156111b657600080fd5b508051602090910151600654604080517f59e02dd70000000000000000000000000000000000000000000000000000000081528151949c50929a50600160a060020a03909116926359e02dd79260048082019392918290030181600087803b15801561122157600080fd5b505af1158015611235573d6000803e3d6000fd5b505050506040513d604081101561124b57600080fd5b50805160209182015160408051600480825260a08201909252929950909750909182016080803883395050600154604080517f6626b26d0000000000000000000000000000000000000000000000000000000081529051939750600160a060020a0390911692636626b26d925060048083019260209291908290030181600087803b1580156112d957600080fd5b505af11580156112ed573d6000803e3d6000fd5b505050506040513d602081101561130357600080fd5b505184518590600090811061131457fe5b9115156020928302909101820152600154604080517fb2a1449b0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263b2a1449b926004808401938290030181600087803b15801561137c57600080fd5b505af1158015611390573d6000803e3d6000fd5b505050506040513d60208110156113a657600080fd5b50518451859060019081106113b757fe5b91151560209283029091018201526009546001546040805160e060020a6370a08231028152600160a060020a03928316600482015290516114929492909316926370a08231926024808401939192918290030181600087803b15801561141c57600080fd5b505af1158015611430573d6000803e3d6000fd5b505050506040513d602081101561144657600080fd5b50516001546040805160e160020a6328fc88330281529051600160a060020a03909216916351f91066916004808201926020929091908290030181600087803b1580156108d457600080fd5b9050600b60009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156114e757600080fd5b505af11580156114fb573d6000803e3d6000fd5b505050506040513d602081101561151157600080fd5b50518451908210908590600290811061152657fe5b9115156020928302909101820152600b546040805160e060020a6318160ddd028152905161157d93600160a060020a03909316926318160ddd92600480820193918290030181600087803b158015610cc057600080fd5b81101584600381518110151561158f57fe5b9115156020928302919091018201526040805160138082526102808201909252918201610260803883395050600154604080517f509bf2bf0000000000000000000000000000000000000000000000000000000081529051939650600160a060020a039091169263509bf2bf925060048083019260209291908290030181600087803b15801561161e57600080fd5b505af1158015611632573d6000803e3d6000fd5b505050506040513d602081101561164857600080fd5b505183518490600090811061165957fe5b6020908102909101810191909152600154604080517fab0783da0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263ab0783da926004808401938290030181600087803b1580156116c157600080fd5b505af11580156116d5573d6000803e3d6000fd5b505050506040513d60208110156116eb57600080fd5b50518351849060019081106116fc57fe5b6020908102909101810191909152600154604080517f355274ea0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263355274ea926004808401938290030181600087803b15801561176457600080fd5b505af1158015611778573d6000803e3d6000fd5b505050506040513d602081101561178e57600080fd5b505183518490600290811061179f57fe5b6020908102909101810191909152600154604080517fc8e13bb40000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263c8e13bb4926004808401938290030181600087803b15801561180757600080fd5b505af115801561181b573d6000803e3d6000fd5b505050506040513d602081101561183157600080fd5b505183518490600390811061184257fe5b6020908102909101810191909152600154604080517f99c8d5560000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926399c8d556926004808401938290030181600087803b1580156118aa57600080fd5b505af11580156118be573d6000803e3d6000fd5b505050506040513d60208110156118d457600080fd5b50518351849060049081106118e557fe5b6020908102909101810191909152600154604080517fddca3f430000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263ddca3f43926004808401938290030181600087803b15801561194d57600080fd5b505af1158015611961573d6000803e3d6000fd5b505050506040513d602081101561197757600080fd5b505183518490600590811061198857fe5b6020908102909101810191909152600154604080517fc92aecc40000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263c92aecc4926004808401938290030181600087803b1580156119f057600080fd5b505af1158015611a04573d6000803e3d6000fd5b505050506040513d6020811015611a1a57600080fd5b5051835184906006908110611a2b57fe5b6020908102909101810191909152600154604080517f338a02610000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263338a0261926004808401938290030181600087803b158015611a9357600080fd5b505af1158015611aa7573d6000803e3d6000fd5b505050506040513d6020811015611abd57600080fd5b5051835184906007908110611ace57fe5b6020908102909101810191909152600154604080517f20aba08b0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926320aba08b926004808401938290030181600087803b158015611b3657600080fd5b505af1158015611b4a573d6000803e3d6000fd5b505050506040513d6020811015611b6057600080fd5b5051835184906008908110611b7157fe5b6020908102909101810191909152600154604080517f6c32c0a60000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692636c32c0a6926004808401938290030181600087803b158015611bd957600080fd5b505af1158015611bed573d6000803e3d6000fd5b505050506040513d6020811015611c0357600080fd5b5051835184906009908110611c1457fe5b60209081029091018101919091526001546040805160e160020a6328fc88330281529051600160a060020a03909216926351f91066926004808401938290030181600087803b158015611c6657600080fd5b505af1158015611c7a573d6000803e3d6000fd5b505050506040513d6020811015611c9057600080fd5b505183518490600a908110611ca157fe5b6020908102909101810191909152600154604080517f7ec9c3b80000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692637ec9c3b8926004808401938290030181600087803b158015611d0957600080fd5b505af1158015611d1d573d6000803e3d6000fd5b505050506040513d6020811015611d3357600080fd5b505183518490600b908110611d4457fe5b6020908102909101810191909152600354604080517f495d32cb0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263495d32cb926004808401938290030181600087803b158015611dac57600080fd5b505af1158015611dc0573d6000803e3d6000fd5b505050506040513d6020811015611dd657600080fd5b505183518490600c908110611de757fe5b6020908102909101810191909152600354604080517f5d6542af0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692635d6542af926004808401938290030181600087803b158015611e4f57600080fd5b505af1158015611e63573d6000803e3d6000fd5b505050506040513d6020811015611e7957600080fd5b505183518490600d908110611e8a57fe5b6020908102909101810191909152600354604080517f143e55e00000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263143e55e0926004808401938290030181600087803b158015611ef257600080fd5b505af1158015611f06573d6000803e3d6000fd5b505050506040513d6020811015611f1c57600080fd5b505183518490600e908110611f2d57fe5b6020908102909101810191909152600254604080517fa551878e0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263a551878e926004808401938290030181600087803b158015611f9557600080fd5b505af1158015611fa9573d6000803e3d6000fd5b505050506040513d6020811015611fbf57600080fd5b505183518490600f908110611fd057fe5b6020908102909101810191909152600254604080517f6c32c0a60000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692636c32c0a6926004808401938290030181600087803b15801561203857600080fd5b505af115801561204c573d6000803e3d6000fd5b505050506040513d602081101561206257600080fd5b505183518490601090811061207357fe5b602090810290910101526040805160148082526102a08201909252908160200160208202803883390190505091508a600160a060020a0316318260008151811015156120bb57fe5b60209081029091018101919091526007546040805160e060020a6318160ddd0281529051600160a060020a03909216926318160ddd926004808401938290030181600087803b15801561210d57600080fd5b505af1158015612121573d6000803e3d6000fd5b505050506040513d602081101561213757600080fd5b505182518390600190811061214857fe5b60209081029091018101919091526007546040805160e060020a6370a08231028152600160a060020a038f81166004830152915191909216926370a0823192602480820193918290030181600087803b1580156121a457600080fd5b505af11580156121b8573d6000803e3d6000fd5b505050506040513d60208110156121ce57600080fd5b50518251839060029081106121df57fe5b60209081029091018101919091526007546001546040805160e060020a6370a08231028152600160a060020a039283166004820152905191909216926370a0823192602480820193918290030181600087803b15801561223e57600080fd5b505af1158015612252573d6000803e3d6000fd5b505050506040513d602081101561226857600080fd5b505182518390600390811061227957fe5b60209081029091018101919091526007546002546040805160e060020a6370a08231028152600160a060020a039283166004820152905191909216926370a0823192602480820193918290030181600087803b1580156122d857600080fd5b505af11580156122ec573d6000803e3d6000fd5b505050506040513d602081101561230257600080fd5b505182518390600490811061231357fe5b60209081029091018101919091526008546040805160e060020a6318160ddd0281529051600160a060020a03909216926318160ddd926004808401938290030181600087803b15801561236557600080fd5b505af1158015612379573d6000803e3d6000fd5b505050506040513d602081101561238f57600080fd5b50518251839060059081106123a057fe5b60209081029091018101919091526008546040805160e060020a6370a08231028152600160a060020a038f81166004830152915191909216926370a0823192602480820193918290030181600087803b1580156123fc57600080fd5b505af1158015612410573d6000803e3d6000fd5b505050506040513d602081101561242657600080fd5b505182518390600690811061243757fe5b6020908102909101810191909152600854600480546040805160e060020a6370a08231028152600160a060020a0392831693810193909352519216926370a08231926024808401938290030181600087803b15801561249557600080fd5b505af11580156124a9573d6000803e3d6000fd5b505050506040513d60208110156124bf57600080fd5b50518251839060079081106124d057fe5b6020908102909101810191909152600854604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038f811660048301528e811660248301529151919092169263dd62ed3e92604480820193918290030181600087803b15801561254a57600080fd5b505af115801561255e573d6000803e3d6000fd5b505050506040513d602081101561257457600080fd5b505182518390600890811061258557fe5b60209081029091018101919091526009546040805160e060020a6318160ddd0281529051600160a060020a03909216926318160ddd926004808401938290030181600087803b1580156125d757600080fd5b505af11580156125eb573d6000803e3d6000fd5b505050506040513d602081101561260157600080fd5b505182518390600990811061261257fe5b60209081029091018101919091526009546040805160e060020a6370a08231028152600160a060020a038f81166004830152915191909216926370a0823192602480820193918290030181600087803b15801561266e57600080fd5b505af1158015612682573d6000803e3d6000fd5b505050506040513d602081101561269857600080fd5b505182518390600a9081106126a957fe5b60209081029091018101919091526009546001546040805160e060020a6370a08231028152600160a060020a039283166004820152905191909216926370a0823192602480820193918290030181600087803b15801561270857600080fd5b505af115801561271c573d6000803e3d6000fd5b505050506040513d602081101561273257600080fd5b505182518390600b90811061274357fe5b60209081029091018101919091526009546002546040805160e060020a6370a08231028152600160a060020a039283166004820152905191909216926370a0823192602480820193918290030181600087803b1580156127a257600080fd5b505af11580156127b6573d6000803e3d6000fd5b505050506040513d60208110156127cc57600080fd5b505182518390600c9081106127dd57fe5b6020908102909101810191909152600a546040805160e060020a6318160ddd0281529051600160a060020a03909216926318160ddd926004808401938290030181600087803b15801561282f57600080fd5b505af1158015612843573d6000803e3d6000fd5b505050506040513d602081101561285957600080fd5b505182518390600d90811061286a57fe5b6020908102909101810191909152600a546040805160e060020a6370a08231028152600160a060020a038f81166004830152915191909216926370a0823192602480820193918290030181600087803b1580156128c657600080fd5b505af11580156128da573d6000803e3d6000fd5b505050506040513d60208110156128f057600080fd5b505182518390600e90811061290157fe5b6020908102909101810191909152600a546002546040805160e060020a6370a08231028152600160a060020a039283166004820152905191909216926370a0823192602480820193918290030181600087803b15801561296057600080fd5b505af1158015612974573d6000803e3d6000fd5b505050506040513d602081101561298a57600080fd5b505182518390600f90811061299b57fe5b6020908102909101810191909152600a54604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a038f811660048301528e811660248301529151919092169263dd62ed3e92604480820193918290030181600087803b158015612a1557600080fd5b505af1158015612a29573d6000803e3d6000fd5b505050506040513d6020811015612a3f57600080fd5b5051825183906010908110612a5057fe5b6020908102909101810191909152600b546040805160e060020a6318160ddd0281529051600160a060020a03909216926318160ddd926004808401938290030181600087803b158015612aa257600080fd5b505af1158015612ab6573d6000803e3d6000fd5b505050506040513d6020811015612acc57600080fd5b5051825183906011908110612add57fe5b6020908102909101810191909152600b546001546040805160e060020a6370a08231028152600160a060020a039283166004820152905191909216926370a0823192602480820193918290030181600087803b158015612b3c57600080fd5b505af1158015612b50573d6000803e3d6000fd5b505050506040513d6020811015612b6657600080fd5b5051825183906012908110612b7757fe5b6020908102909101810191909152600b546002546040805160e060020a6370a08231028152600160a060020a039283166004820152905191909216926370a0823192602480820193918290030181600087803b158015612bd657600080fd5b505af1158015612bea573d6000803e3d6000fd5b505050506040513d6020811015612c0057600080fd5b5051825183906013908110612c1157fe5b9060200190602002018181525050509295985092959890939650565b60408051600c8082526101a08201909252439160609160009160208201610180803883395050600080548351939550600160a060020a0316928592508110612c7157fe5b600160a060020a03928316602091820290920101526001805484519216918491908110612c9a57fe5b600160a060020a03928316602091820290920101526002805484519216918491908110612cc357fe5b600160a060020a03928316602091820290920101526003805484519216918491908110612cec57fe5b600160a060020a03928316602091820290920101526004805484519216918491908110612d1557fe5b600160a060020a03928316602091820290920101526005805484519216918491908110612d3e57fe5b600160a060020a03928316602091820290920101526006805484519216918491908110612d6757fe5b600160a060020a03928316602091820290920101526007805484519216918491908110612d9057fe5b600160a060020a03928316602091820290920101526008805484519216918491908110612db957fe5b600160a060020a03928316602091820290920101526009805484519216918491908110612de257fe5b600160a060020a0392831660209182029092010152600a805484519216918491908110612e0b57fe5b600160a060020a0392831660209182029092010152600b805484519216918491908110612e3457fe5b600160a060020a039283166020918202909201810191909152604080517fc4552791000000000000000000000000000000000000000000000000000000008152878416600482015290519288169263c4552791926024808401939192918290030181600087803b158015612ea757600080fd5b505af1158015612ebb573d6000803e3d6000fd5b505050506040513d6020811015612ed157600080fd5b50519050600160a060020a03811615801590612f67575083600160a060020a031681600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612f3057600080fd5b505af1158015612f44573d6000803e3d6000fd5b505050506040513d6020811015612f5a57600080fd5b5051600160a060020a0316145b612f72576000612f74565b805b90509250925092565b600654600160a060020a031681565b600554600160a060020a031681565b600454600160a060020a031681565b600254600160a060020a031681565b600054600160a060020a031681565b60006b033b2e3c9fd0803ce8000000612ffa612fe4858561305d565b60026b033b2e3c9fd0803ce80000005b04613085565b81151561300357fe5b049392505050565b600081612ffa61302385670de0b6b3a764000061305d565b600285612ff4565b600081612ffa613023856b033b2e3c9fd0803ce800000061305d565b8082038281111561305757600080fd5b92915050565b600081158061307a57505080820282828281151561307757fe5b04145b151561305757600080fd5b8082018281101561305757600080fd00a165627a7a7230582031cf335297531a6ce242c541cbecda0c6b99634611ea552fbf06ed7bcb326ae900290000000000000000000000009b0ccf7c8994e19f39b2b4cf708e0a7df65fa8a3

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009b0ccf7c8994e19f39b2b4cf708e0a7df65fa8a3


   Swarm Source:
bzzr://31cf335297531a6ce242c541cbecda0c6b99634611ea552fbf06ed7bcb326ae9

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.