ETH Price: $3,296.57 (-3.77%)
Gas: 6 Gwei

Contract

0x526af336D614adE5cc252A407062B8861aF998F5
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Create Open Lock...125719182021-06-05 2:47:381124 days ago1622861258IN
Maker: Sai Proxy 2
0.006 ETH0.000276998.2
Transfer113610112020-11-30 15:44:301311 days ago1606751070IN
Maker: Sai Proxy 2
0.00950258 ETH0.003129149
Create Open Lock...100997452020-05-20 1:02:161505 days ago1589936536IN
Maker: Sai Proxy 2
0.006 ETH0.0014425712.4
Create Open Lock...100914642020-05-18 17:56:441507 days ago1589824604IN
Maker: Sai Proxy 2
0.4 ETH0.0120495620
Create Open Lock...100581832020-05-13 13:54:531512 days ago1589378093IN
Maker: Sai Proxy 2
0.7 ETH0.016266927
Create Open Lock...100517102020-05-12 13:39:581513 days ago1589290798IN
Maker: Sai Proxy 2
0.25 ETH0.0334644733
Create Open Lock...100492812020-05-12 4:33:091513 days ago1589257989IN
Maker: Sai Proxy 2
0.01 ETH0.0111630311
Create Open Lock...100440472020-05-11 9:09:441514 days ago1589188184IN
Maker: Sai Proxy 2
0.007 ETH0.0112252111
Create Open Lock...100399152020-05-10 17:56:191515 days ago1589133379IN
Maker: Sai Proxy 2
0.5 ETH0.0153107115
Create Open Lock...100196112020-05-07 14:18:321518 days ago1588861112IN
Maker: Sai Proxy 2
1 ETH0.0182905518
Create Open Lock...100047312020-05-05 6:55:451520 days ago1588661745IN
Maker: Sai Proxy 2
0.078 ETH0.009039418.9
Create Open Lock...99993002020-05-04 10:54:071521 days ago1588589647IN
Maker: Sai Proxy 2
1 ETH0.008110178
Create Open Lock...99958782020-05-03 22:20:381521 days ago1588544438IN
Maker: Sai Proxy 2
0.03 ETH0.005077245
Create Open Lock...99924652020-05-03 9:45:471522 days ago1588499147IN
Maker: Sai Proxy 2
1 ETH0.004060584
Create Open Lock...99895092020-05-02 22:29:561522 days ago1588458596IN
Maker: Sai Proxy 2
0.07 ETH0.005002135
Create Open Lock...99862072020-05-02 10:35:041523 days ago1588415704IN
Maker: Sai Proxy 2
4.85 ETH0.006090816
Create Open Lock...99828662020-05-01 21:47:381523 days ago1588369658IN
Maker: Sai Proxy 2
1 ETH0.004263614.2
Create Open Lock...99810312020-05-01 15:07:171524 days ago1588345637IN
Maker: Sai Proxy 2
1 ETH0.009134179
Create Open Lock...99805942020-05-01 13:27:231524 days ago1588339643IN
Maker: Sai Proxy 2
8 ETH0.0101499310
Create Open Lock...99799572020-05-01 11:02:171524 days ago1588330937IN
Maker: Sai Proxy 2
0.1 ETH0.008118048
Create Open Lock...99747602020-04-30 15:32:461525 days ago1588260766IN
Maker: Sai Proxy 2
20 ETH0.012163612
Create Open Lock...99735892020-04-30 11:12:371525 days ago1588245157IN
Maker: Sai Proxy 2
2.9 ETH0.0273987327
Create Open Lock...99730262020-04-30 9:03:551525 days ago1588237435IN
Maker: Sai Proxy 2
0.5 ETH0.0234444523
Create Open Lock...99541542020-04-27 11:02:241528 days ago1587985344IN
Maker: Sai Proxy 2
0.03 ETH0.005069955
Create Open Lock...99506452020-04-26 21:56:531528 days ago1587938213IN
Maker: Sai Proxy 2
0.065 ETH0.002028132
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
100517102020-05-12 13:39:581513 days ago1589290798
Maker: Sai Proxy 2
0.25 ETH
100492812020-05-12 4:33:091513 days ago1589257989
Maker: Sai Proxy 2
0.01 ETH
100440472020-05-11 9:09:441514 days ago1589188184
Maker: Sai Proxy 2
0.007 ETH
100399152020-05-10 17:56:191515 days ago1589133379
Maker: Sai Proxy 2
0.5 ETH
100196112020-05-07 14:18:321518 days ago1588861112
Maker: Sai Proxy 2
1 ETH
100047312020-05-05 6:55:451520 days ago1588661745
Maker: Sai Proxy 2
0.078 ETH
99993002020-05-04 10:54:071521 days ago1588589647
Maker: Sai Proxy 2
1 ETH
99958782020-05-03 22:20:381521 days ago1588544438
Maker: Sai Proxy 2
0.03 ETH
99924652020-05-03 9:45:471522 days ago1588499147
Maker: Sai Proxy 2
1 ETH
99895092020-05-02 22:29:561522 days ago1588458596
Maker: Sai Proxy 2
0.07 ETH
99862072020-05-02 10:35:041523 days ago1588415704
Maker: Sai Proxy 2
4.85 ETH
99828662020-05-01 21:47:381523 days ago1588369658
Maker: Sai Proxy 2
1 ETH
99810312020-05-01 15:07:171524 days ago1588345637
Maker: Sai Proxy 2
1 ETH
99805942020-05-01 13:27:231524 days ago1588339643
Maker: Sai Proxy 2
8 ETH
99799572020-05-01 11:02:171524 days ago1588330937
Maker: Sai Proxy 2
0.1 ETH
99747602020-04-30 15:32:461525 days ago1588260766
Maker: Sai Proxy 2
20 ETH
99735892020-04-30 11:12:371525 days ago1588245157
Maker: Sai Proxy 2
2.9 ETH
99730262020-04-30 9:03:551525 days ago1588237435
Maker: Sai Proxy 2
0.5 ETH
99541542020-04-27 11:02:241528 days ago1587985344
Maker: Sai Proxy 2
0.03 ETH
99506452020-04-26 21:56:531528 days ago1587938213
Maker: Sai Proxy 2
0.065 ETH
99396452020-04-25 5:08:221530 days ago1587791302
Maker: Sai Proxy 2
5 ETH
99340082020-04-24 7:57:201531 days ago1587715040
Maker: Sai Proxy 2
1 ETH
99307632020-04-23 20:05:391531 days ago1587672339
Maker: Sai Proxy 2
0.006 ETH
99297392020-04-23 16:11:111532 days ago1587658271
Maker: Sai Proxy 2
0.157 ETH
99290492020-04-23 13:34:171532 days ago1587648857
Maker: Sai Proxy 2
0.1 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SaiProxyCreateAndExecute

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-02-12
*/

pragma solidity ^0.4.23;

/// 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 TubInterface {
    function open() public returns (bytes32);
    function join(uint) public;
    function exit(uint) public;
    function lock(bytes32, uint) public;
    function free(bytes32, uint) public;
    function draw(bytes32, uint) public;
    function wipe(bytes32, uint) public;
    function give(bytes32, address) public;
    function shut(bytes32) public;
    function cups(bytes32) public view returns (address, uint, uint, uint);
    function gem() public view returns (TokenInterface);
    function gov() public view returns (TokenInterface);
    function skr() public view returns (TokenInterface);
    function sai() public view returns (TokenInterface);
    function mat() public view returns (uint);
    function ink(bytes32) public view returns (uint);
    function tab(bytes32) public view returns (uint);
    function rap(bytes32) public view returns (uint);
    function per() public view returns (uint);
    function pep() public view returns (PepInterface);
}

contract TokenInterface {
    function allowance(address, address) public view returns (uint);
    function balanceOf(address) public view returns (uint);
    function approve(address, uint) public;
    function transfer(address, uint) public returns (bool);
    function transferFrom(address, address, uint) public returns (bool);
    function deposit() public payable;
    function withdraw(uint) public;
}

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

contract OtcInterface {
    function getPayAmount(address, address, uint) public view returns (uint);
    function buyAllAmount(address, uint, address pay_gem, uint) public returns (uint);
}

contract SaiProxy is DSMath {
    function open(address tub_) public returns (bytes32) {
        return TubInterface(tub_).open();
    }

    function give(address tub_, bytes32 cup, address lad) public {
        TubInterface(tub_).give(cup, lad);
    }

    function lock(address tub_, bytes32 cup) public payable {
        if (msg.value > 0) {
            TubInterface tub = TubInterface(tub_);

            (address lad,,,) = tub.cups(cup);
            require(lad == address(this), "cup-not-owned");

            tub.gem().deposit.value(msg.value)();

            uint ink = rdiv(msg.value, tub.per());
            ink = rmul(ink, tub.per()) <= msg.value ? ink : ink - 1;

            if (tub.gem().allowance(this, tub) != uint(-1)) {
                tub.gem().approve(tub, uint(-1));
            }
            tub.join(ink);

            if (tub.skr().allowance(this, tub) != uint(-1)) {
                tub.skr().approve(tub, uint(-1));
            }
            tub.lock(cup, ink);
        }
    }

    function draw(address tub_, bytes32 cup, uint wad) public {
        if (wad > 0) {
            TubInterface tub = TubInterface(tub_);
            tub.draw(cup, wad);
            tub.sai().transfer(msg.sender, wad);
        }
    }

    function handleGovFee(TubInterface tub, uint saiDebtFee, address otc_) internal {
        bytes32 val;
        bool ok;
        (val, ok) = tub.pep().peek();
        if (ok && val != 0) {
            uint govAmt = wdiv(saiDebtFee, uint(val));
            if (otc_ != address(0)) {
                uint saiGovAmt = OtcInterface(otc_).getPayAmount(tub.sai(), tub.gov(), govAmt);
                if (tub.sai().allowance(this, otc_) != uint(-1)) {
                    tub.sai().approve(otc_, uint(-1));
                }
                tub.sai().transferFrom(msg.sender, this, saiGovAmt);
                OtcInterface(otc_).buyAllAmount(tub.gov(), govAmt, tub.sai(), saiGovAmt);
            } else {
                tub.gov().transferFrom(msg.sender, this, govAmt);
            }
        }
    }

    function wipe(address tub_, bytes32 cup, uint wad, address otc_) public {
        if (wad > 0) {
            TubInterface tub = TubInterface(tub_);

            tub.sai().transferFrom(msg.sender, this, wad);
            handleGovFee(tub, rmul(wad, rdiv(tub.rap(cup), tub.tab(cup))), otc_);

            if (tub.sai().allowance(this, tub) != uint(-1)) {
                tub.sai().approve(tub, uint(-1));
            }
            if (tub.gov().allowance(this, tub) != uint(-1)) {
                tub.gov().approve(tub, uint(-1));
            }
            tub.wipe(cup, wad);
        }
    }

    function wipe(address tub_, bytes32 cup, uint wad) public {
        wipe(tub_, cup, wad, address(0));
    }

    function free(address tub_, bytes32 cup, uint jam) public {
        if (jam > 0) {
            TubInterface tub = TubInterface(tub_);
            uint ink = rdiv(jam, tub.per());
            ink = rmul(ink, tub.per()) <= jam ? ink : ink - 1;
            tub.free(cup, ink);
            if (tub.skr().allowance(this, tub) != uint(-1)) {
                tub.skr().approve(tub, uint(-1));
            }
            tub.exit(ink);
            uint freeJam = tub.gem().balanceOf(this); // Withdraw possible previous stuck WETH as well
            tub.gem().withdraw(freeJam);
            address(msg.sender).transfer(freeJam);
        }
    }

    function lockAndDraw(address tub_, bytes32 cup, uint wad) public payable {
        lock(tub_, cup);
        draw(tub_, cup, wad);
    }

    function lockAndDraw(address tub_, uint wad) public payable returns (bytes32 cup) {
        cup = open(tub_);
        lockAndDraw(tub_, cup, wad);
    }

    function wipeAndFree(address tub_, bytes32 cup, uint jam, uint wad) public payable {
        wipe(tub_, cup, wad);
        free(tub_, cup, jam);
    }

    function wipeAndFree(address tub_, bytes32 cup, uint jam, uint wad, address otc_) public payable {
        wipe(tub_, cup, wad, otc_);
        free(tub_, cup, jam);
    }

    function shut(address tub_, bytes32 cup) public {
        TubInterface tub = TubInterface(tub_);
        wipeAndFree(tub_, cup, rmul(tub.ink(cup), tub.per()), tub.tab(cup));
        tub.shut(cup);
    }

    function shut(address tub_, bytes32 cup, address otc_) public {
        TubInterface tub = TubInterface(tub_);
        wipeAndFree(tub_, cup, rmul(tub.ink(cup), tub.per()), tub.tab(cup), otc_);
        tub.shut(cup);
    }
}

contract ProxyRegistryInterface {
    function build(address) public returns (address);
}

contract SaiProxyCreateAndExecute is SaiProxy {

    // Create a DSProxy instance and open a cup
    function createAndOpen(address registry_, address tub_) public returns (address proxy, bytes32 cup) {
        proxy = ProxyRegistryInterface(registry_).build(msg.sender);
        cup = open(tub_);
        TubInterface(tub_).give(cup, proxy);
    }

    // Create a DSProxy instance, open a cup, and lock collateral
    function createOpenAndLock(address registry_, address tub_) public payable returns (address proxy, bytes32 cup) {
        proxy = ProxyRegistryInterface(registry_).build(msg.sender);
        cup = open(tub_);
        lock(tub_, cup);
        TubInterface(tub_).give(cup, proxy);
    }

    // Create a DSProxy instance, open a cup, lock collateral, and draw DAI
    function createOpenLockAndDraw(address registry_, address tub_, uint wad) public payable returns (address proxy, bytes32 cup) {
        proxy = ProxyRegistryInterface(registry_).build(msg.sender);
        cup = open(tub_);
        lockAndDraw(tub_, cup, wad);
        TubInterface(tub_).give(cup, proxy);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"cup","type":"bytes32"},{"name":"wad","type":"uint256"}],"name":"draw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"cup","type":"bytes32"},{"name":"jam","type":"uint256"},{"name":"wad","type":"uint256"},{"name":"otc_","type":"address"}],"name":"wipeAndFree","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"cup","type":"bytes32"},{"name":"wad","type":"uint256"}],"name":"lockAndDraw","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"wad","type":"uint256"}],"name":"lockAndDraw","outputs":[{"name":"cup","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"registry_","type":"address"},{"name":"tub_","type":"address"}],"name":"createAndOpen","outputs":[{"name":"proxy","type":"address"},{"name":"cup","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"cup","type":"bytes32"},{"name":"otc_","type":"address"}],"name":"shut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"cup","type":"bytes32"},{"name":"wad","type":"uint256"},{"name":"otc_","type":"address"}],"name":"wipe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"cup","type":"bytes32"},{"name":"wad","type":"uint256"}],"name":"wipe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"}],"name":"open","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"cup","type":"bytes32"}],"name":"shut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"cup","type":"bytes32"}],"name":"lock","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"registry_","type":"address"},{"name":"tub_","type":"address"},{"name":"wad","type":"uint256"}],"name":"createOpenLockAndDraw","outputs":[{"name":"proxy","type":"address"},{"name":"cup","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"cup","type":"bytes32"},{"name":"lad","type":"address"}],"name":"give","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"registry_","type":"address"},{"name":"tub_","type":"address"}],"name":"createOpenAndLock","outputs":[{"name":"proxy","type":"address"},{"name":"cup","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"cup","type":"bytes32"},{"name":"jam","type":"uint256"}],"name":"free","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tub_","type":"address"},{"name":"cup","type":"bytes32"},{"name":"jam","type":"uint256"},{"name":"wad","type":"uint256"}],"name":"wipeAndFree","outputs":[],"payable":true,"stateMutability":"payable","type":"function"}]

608060405234801561001057600080fd5b5061290b806100206000396000f3006080604052600436106100cc5763ffffffff60e060020a6000350416630344a36f81146100d15780631b968160146100fa5780631edf0c1e14610120578063516e9aec1461013a578063581f3c5014610163578063792037e3146101ad5780638a9fc475146101d8578063a3dc65a714610207578063b95460f81461022e578063bc244c111461024f578063bc25a81014610273578063d3140a651461028a578063da93dfcf146102a7578063eefe3818146102d2578063f9ef04be146102ec578063faed77ab14610313575b600080fd5b3480156100dd57600080fd5b506100f8600160a060020a0360043516602435604435610330565b005b6100f8600160a060020a03600435811690602435906044359060643590608435166104c5565b6100f8600160a060020a03600435166024356044356104e3565b610151600160a060020a03600435166024356104fd565b60408051918252519081900360200190f35b34801561016f57600080fd5b5061018a600160a060020a036004358116906024351661051b565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156101b957600080fd5b506100f8600160a060020a03600435811690602435906044351661062e565b3480156101e457600080fd5b506100f8600160a060020a0360043581169060243590604435906064351661086a565b34801561021357600080fd5b506100f8600160a060020a0360043516602435604435610ed9565b34801561023a57600080fd5b50610151600160a060020a0360043516610ee6565b34801561025b57600080fd5b506100f8600160a060020a0360043516602435610f58565b6100f8600160a060020a03600435166024356110da565b61018a600160a060020a03600435811690602435166044356117cc565b3480156102b357600080fd5b506100f8600160a060020a0360043581169060243590604435166118ea565b61018a600160a060020a036004358116906024351661193f565b3480156102f857600080fd5b506100f8600160a060020a0360043516602435604435611a3c565b6100f8600160a060020a0360043516602435604435606435611fc1565b6000808211156104bf5750604080517f440f19ba000000000000000000000000000000000000000000000000000000008152600481018490526024810183905290518491600160a060020a0383169163440f19ba9160448082019260009290919082900301818387803b1580156103a657600080fd5b505af11580156103ba573d6000803e3d6000fd5b5050505080600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156103fc57600080fd5b505af1158015610410573d6000803e3d6000fd5b505050506040513d602081101561042657600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561049257600080fd5b505af11580156104a6573d6000803e3d6000fd5b505050506040513d60208110156104bc57600080fd5b50505b50505050565b6104d18585848461086a565b6104dc858585611a3c565b5050505050565b6104ed83836110da565b6104f8838383610330565b505050565b600061050883610ee6565b90506105158382846104e3565b92915050565b604080517ff3701da200000000000000000000000000000000000000000000000000000000815233600482015290516000918291600160a060020a0386169163f3701da291602480830192602092919082900301818787803b15801561058057600080fd5b505af1158015610594573d6000803e3d6000fd5b505050506040513d60208110156105aa57600080fd5b505191506105b783610ee6565b6040805160e260020a632eaa14a702815260048101839052600160a060020a03858116602483015291519293509085169163baa8529c9160448082019260009290919082900301818387803b15801561060f57600080fd5b505af1158015610623573d6000803e3d6000fd5b505050509250929050565b604080517f1f3634ed00000000000000000000000000000000000000000000000000000000815260048101849052905184916107eb918391869161075791600160a060020a03851691631f3634ed916024808201926020929091908290030181600087803b15801561069f57600080fd5b505af11580156106b3573d6000803e3d6000fd5b505050506040513d60208110156106c957600080fd5b5051604080517f7ec9c3b80000000000000000000000000000000000000000000000000000000081529051600160a060020a03881691637ec9c3b89160048083019260209291908290030181600087803b15801561072657600080fd5b505af115801561073a573d6000803e3d6000fd5b505050506040513d602081101561075057600080fd5b5051611fd7565b604080517ff7c8d634000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a0387169163f7c8d6349160248083019260209291908290030181600087803b1580156107b957600080fd5b505af11580156107cd573d6000803e3d6000fd5b505050506040513d60208110156107e357600080fd5b5051866104c5565b604080517fb84d2106000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0383169163b84d210691602480830192600092919082900301818387803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505050505050565b6000808311156104dc5784905080600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156108b557600080fd5b505af11580156108c9573d6000803e3d6000fd5b505050506040513d60208110156108df57600080fd5b5051604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561095157600080fd5b505af1158015610965573d6000803e3d6000fd5b505050506040513d602081101561097b57600080fd5b5050604080517f6f78ee0d000000000000000000000000000000000000000000000000000000008152600481018690529051610aba918391610ab4918791610aaf91600160a060020a03861691636f78ee0d916024808201926020929091908290030181600087803b1580156109f057600080fd5b505af1158015610a04573d6000803e3d6000fd5b505050506040513d6020811015610a1a57600080fd5b5051604080517ff7c8d634000000000000000000000000000000000000000000000000000000008152600481018c90529051600160a060020a0389169163f7c8d6349160248083019260209291908290030181600087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b505161201a565b611fd7565b8461203e565b60001981600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610afb57600080fd5b505af1158015610b0f573d6000803e3d6000fd5b505050506040513d6020811015610b2557600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0385811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b158015610b7c57600080fd5b505af1158015610b90573d6000803e3d6000fd5b505050506040513d6020811015610ba657600080fd5b505114610c865780600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610beb57600080fd5b505af1158015610bff573d6000803e3d6000fd5b505050506040513d6020811015610c1557600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03848116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b505050505b60001981600160a060020a03166312d43a516040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610cc757600080fd5b505af1158015610cdb573d6000803e3d6000fd5b505050506040513d6020811015610cf157600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0385811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b158015610d4857600080fd5b505af1158015610d5c573d6000803e3d6000fd5b505050506040513d6020811015610d7257600080fd5b505114610e525780600160a060020a03166312d43a516040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610db757600080fd5b505af1158015610dcb573d6000803e3d6000fd5b505050506040513d6020811015610de157600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03848116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015610e3957600080fd5b505af1158015610e4d573d6000803e3d6000fd5b505050505b604080517f73b3810100000000000000000000000000000000000000000000000000000000815260048101869052602481018590529051600160a060020a038316916373b3810191604480830192600092919082900301818387803b158015610eba57600080fd5b505af1158015610ece573d6000803e3d6000fd5b505050505050505050565b6104f8838383600061086a565b600081600160a060020a031663fcfff16f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f2657600080fd5b505af1158015610f3a573d6000803e3d6000fd5b505050506040513d6020811015610f5057600080fd5b505192915050565b604080517f1f3634ed000000000000000000000000000000000000000000000000000000008152600481018390529051839161105c9183918591610fc991600160a060020a03851691631f3634ed916024808201926020929091908290030181600087803b15801561069f57600080fd5b604080517ff7c8d634000000000000000000000000000000000000000000000000000000008152600481018890529051600160a060020a0387169163f7c8d6349160248083019260209291908290030181600087803b15801561102b57600080fd5b505af115801561103f573d6000803e3d6000fd5b505050506040513d602081101561105557600080fd5b5051611fc1565b604080517fb84d2106000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a0383169163b84d210691602480830192600092919082900301818387803b1580156110bd57600080fd5b505af11580156110d1573d6000803e3d6000fd5b50505050505050565b6000806000803411156104dc57604080517ffdac0025000000000000000000000000000000000000000000000000000000008152600481018690529051869450600160a060020a0385169163fdac00259160248083019260809291908290030181600087803b15801561114c57600080fd5b505af1158015611160573d6000803e3d6000fd5b505050506040513d608081101561117657600080fd5b50519150600160a060020a03821630146111f157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f6375702d6e6f742d6f776e656400000000000000000000000000000000000000604482015290519081900360640190fd5b82600160a060020a0316637bd2bea76040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561122f57600080fd5b505af1158015611243573d6000803e3d6000fd5b505050506040513d602081101561125957600080fd5b5051604080517fd0e30db00000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163d0e30db0913491600480830192600092919082900301818588803b1580156112b857600080fd5b505af11580156112cc573d6000803e3d6000fd5b50505050506113133484600160a060020a0316637ec9c3b86040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a7e57600080fd5b9050346113588285600160a060020a0316637ec9c3b86040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561072657600080fd5b11156113675760018103611369565b805b905060001983600160a060020a0316637bd2bea76040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506040513d60208110156113d657600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0387811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b15801561142d57600080fd5b505af1158015611441573d6000803e3d6000fd5b505050506040513d602081101561145757600080fd5b5051146115375782600160a060020a0316637bd2bea76040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561149c57600080fd5b505af11580156114b0573d6000803e3d6000fd5b505050506040513d60208110156114c657600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03868116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b15801561151e57600080fd5b505af1158015611532573d6000803e3d6000fd5b505050505b82600160a060020a031663049878f3826040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561158057600080fd5b505af1158015611594573d6000803e3d6000fd5b5050505060001983600160a060020a0316630f8a771e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b505050506040513d602081101561160357600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0387811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b15801561165a57600080fd5b505af115801561166e573d6000803e3d6000fd5b505050506040513d602081101561168457600080fd5b5051146117645782600160a060020a0316630f8a771e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156116c957600080fd5b505af11580156116dd573d6000803e3d6000fd5b505050506040513d60208110156116f357600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03868116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b15801561174b57600080fd5b505af115801561175f573d6000803e3d6000fd5b505050505b604080517fb3b77a5100000000000000000000000000000000000000000000000000000000815260048101869052602481018390529051600160a060020a0385169163b3b77a5191604480830192600092919082900301818387803b158015610eba57600080fd5b604080517ff3701da200000000000000000000000000000000000000000000000000000000815233600482015290516000918291600160a060020a0387169163f3701da291602480830192602092919082900301818787803b15801561183157600080fd5b505af1158015611845573d6000803e3d6000fd5b505050506040513d602081101561185b57600080fd5b5051915061186884610ee6565b90506118758482856104e3565b6040805160e260020a632eaa14a702815260048101839052600160a060020a03848116602483015291519186169163baa8529c9160448082019260009290919082900301818387803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b50505050935093915050565b6040805160e260020a632eaa14a702815260048101849052600160a060020a03838116602483015291519185169163baa8529c9160448082019260009290919082900301818387803b1580156110bd57600080fd5b604080517ff3701da200000000000000000000000000000000000000000000000000000000815233600482015290516000918291600160a060020a0386169163f3701da291602480830192602092919082900301818787803b1580156119a457600080fd5b505af11580156119b8573d6000803e3d6000fd5b505050506040513d60208110156119ce57600080fd5b505191506119db83610ee6565b90506119e783826110da565b6040805160e260020a632eaa14a702815260048101839052600160a060020a03848116602483015291519185169163baa8529c9160448082019260009290919082900301818387803b15801561060f57600080fd5b6000806000808411156104bc57859250611a8e8484600160a060020a0316637ec9c3b86040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a7e57600080fd5b915083611ad38385600160a060020a0316637ec9c3b86040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561072657600080fd5b1115611ae25760018203611ae4565b815b604080517fa5cd184e00000000000000000000000000000000000000000000000000000000815260048101889052602481018390529051919350600160a060020a0385169163a5cd184e9160448082019260009290919082900301818387803b158015611b5057600080fd5b505af1158015611b64573d6000803e3d6000fd5b5050505060001983600160a060020a0316630f8a771e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ba957600080fd5b505af1158015611bbd573d6000803e3d6000fd5b505050506040513d6020811015611bd357600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0387811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b505050506040513d6020811015611c5457600080fd5b505114611d345782600160a060020a0316630f8a771e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611c9957600080fd5b505af1158015611cad573d6000803e3d6000fd5b505050506040513d6020811015611cc357600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03868116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015611d1b57600080fd5b505af1158015611d2f573d6000803e3d6000fd5b505050505b82600160a060020a0316637f8661a1836040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b158015611d7d57600080fd5b505af1158015611d91573d6000803e3d6000fd5b5050505082600160a060020a0316637bd2bea76040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611dd357600080fd5b505af1158015611de7573d6000803e3d6000fd5b505050506040513d6020811015611dfd57600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611e6257600080fd5b505af1158015611e76573d6000803e3d6000fd5b505050506040513d6020811015611e8c57600080fd5b5051604080517f7bd2bea70000000000000000000000000000000000000000000000000000000081529051919250600160a060020a03851691637bd2bea7916004808201926020929091908290030181600087803b158015611eed57600080fd5b505af1158015611f01573d6000803e3d6000fd5b505050506040513d6020811015611f1757600080fd5b5051604080517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a0390921691632e1a7d4d9160248082019260009290919082900301818387803b158015611f7c57600080fd5b505af1158015611f90573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f193505050501580156110d1573d6000803e3d6000fd5b611fcc848483610ed9565b6104bf848484611a3c565b60006b033b2e3c9fd0803ce8000000612009611ff3858561288f565b60026b033b2e3c9fd0803ce80000005b046128b7565b81151561201257fe5b049392505050565b600081612009612036856b033b2e3c9fd0803ce800000061288f565b600285612003565b60008060008086600160a060020a031663ace237f56040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561208257600080fd5b505af1158015612096573d6000803e3d6000fd5b505050506040513d60208110156120ac57600080fd5b5051604080517f59e02dd70000000000000000000000000000000000000000000000000000000081528151600160a060020a03909316926359e02dd7926004808401939192918290030181600087803b15801561210857600080fd5b505af115801561211c573d6000803e3d6000fd5b505050506040513d604081101561213257600080fd5b508051602090910151909450925082801561214c57508315155b156110d15761215b86856128c7565b9150600160a060020a0385161561278b5784600160a060020a031663ff1fd97488600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156121b957600080fd5b505af11580156121cd573d6000803e3d6000fd5b505050506040513d60208110156121e357600080fd5b5051604080517f12d43a510000000000000000000000000000000000000000000000000000000081529051600160a060020a038c16916312d43a519160048083019260209291908290030181600087803b15801561224057600080fd5b505af1158015612254573d6000803e3d6000fd5b505050506040513d602081101561226a57600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a039384166004820152929091166024830152604482018690525160648083019260209291908290030181600087803b1580156122c157600080fd5b505af11580156122d5573d6000803e3d6000fd5b505050506040513d60208110156122eb57600080fd5b5051604080517f9166cba4000000000000000000000000000000000000000000000000000000008152905191925060001991600160a060020a038a1691639166cba49160048083019260209291908290030181600087803b15801561234f57600080fd5b505af1158015612363573d6000803e3d6000fd5b505050506040513d602081101561237957600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0389811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b1580156123d057600080fd5b505af11580156123e4573d6000803e3d6000fd5b505050506040513d60208110156123fa57600080fd5b5051146124da5786600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561243f57600080fd5b505af1158015612453573d6000803e3d6000fd5b505050506040513d602081101561246957600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03888116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b1580156124c157600080fd5b505af11580156124d5573d6000803e3d6000fd5b505050505b86600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561251857600080fd5b505af115801561252c573d6000803e3d6000fd5b505050506040513d602081101561254257600080fd5b5051604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156125b457600080fd5b505af11580156125c8573d6000803e3d6000fd5b505050506040513d60208110156125de57600080fd5b5050604080517f12d43a510000000000000000000000000000000000000000000000000000000081529051600160a060020a0380881692638185402b92918b16916312d43a51916004808201926020929091908290030181600087803b15801561264757600080fd5b505af115801561265b573d6000803e3d6000fd5b505050506040513d602081101561267157600080fd5b5051604080517f9166cba400000000000000000000000000000000000000000000000000000000815290518691600160a060020a038d1691639166cba4916004808201926020929091908290030181600087803b1580156126d157600080fd5b505af11580156126e5573d6000803e3d6000fd5b505050506040513d60208110156126fb57600080fd5b50516040805160e060020a63ffffffff8716028152600160a060020a03948516600482015260248101939093529216604482015260648101859052905160848083019260209291908290030181600087803b15801561275957600080fd5b505af115801561276d573d6000803e3d6000fd5b505050506040513d602081101561278357600080fd5b506110d19050565b86600160a060020a03166312d43a516040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156127c957600080fd5b505af11580156127dd573d6000803e3d6000fd5b505050506040513d60208110156127f357600080fd5b5051604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561286557600080fd5b505af1158015612879573d6000803e3d6000fd5b505050506040513d6020811015610ece57600080fd5b60008115806128ac5750508082028282828115156128a957fe5b04145b151561051557600080fd5b8082018281101561051557600080fd5b60008161200961203685670de0b6b3a764000061288f5600a165627a7a723058203882020989eed133489980542fe992a8b6761211e7f9e141daccbdaf91dfb6320029

Deployed Bytecode

0x6080604052600436106100cc5763ffffffff60e060020a6000350416630344a36f81146100d15780631b968160146100fa5780631edf0c1e14610120578063516e9aec1461013a578063581f3c5014610163578063792037e3146101ad5780638a9fc475146101d8578063a3dc65a714610207578063b95460f81461022e578063bc244c111461024f578063bc25a81014610273578063d3140a651461028a578063da93dfcf146102a7578063eefe3818146102d2578063f9ef04be146102ec578063faed77ab14610313575b600080fd5b3480156100dd57600080fd5b506100f8600160a060020a0360043516602435604435610330565b005b6100f8600160a060020a03600435811690602435906044359060643590608435166104c5565b6100f8600160a060020a03600435166024356044356104e3565b610151600160a060020a03600435166024356104fd565b60408051918252519081900360200190f35b34801561016f57600080fd5b5061018a600160a060020a036004358116906024351661051b565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156101b957600080fd5b506100f8600160a060020a03600435811690602435906044351661062e565b3480156101e457600080fd5b506100f8600160a060020a0360043581169060243590604435906064351661086a565b34801561021357600080fd5b506100f8600160a060020a0360043516602435604435610ed9565b34801561023a57600080fd5b50610151600160a060020a0360043516610ee6565b34801561025b57600080fd5b506100f8600160a060020a0360043516602435610f58565b6100f8600160a060020a03600435166024356110da565b61018a600160a060020a03600435811690602435166044356117cc565b3480156102b357600080fd5b506100f8600160a060020a0360043581169060243590604435166118ea565b61018a600160a060020a036004358116906024351661193f565b3480156102f857600080fd5b506100f8600160a060020a0360043516602435604435611a3c565b6100f8600160a060020a0360043516602435604435606435611fc1565b6000808211156104bf5750604080517f440f19ba000000000000000000000000000000000000000000000000000000008152600481018490526024810183905290518491600160a060020a0383169163440f19ba9160448082019260009290919082900301818387803b1580156103a657600080fd5b505af11580156103ba573d6000803e3d6000fd5b5050505080600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156103fc57600080fd5b505af1158015610410573d6000803e3d6000fd5b505050506040513d602081101561042657600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561049257600080fd5b505af11580156104a6573d6000803e3d6000fd5b505050506040513d60208110156104bc57600080fd5b50505b50505050565b6104d18585848461086a565b6104dc858585611a3c565b5050505050565b6104ed83836110da565b6104f8838383610330565b505050565b600061050883610ee6565b90506105158382846104e3565b92915050565b604080517ff3701da200000000000000000000000000000000000000000000000000000000815233600482015290516000918291600160a060020a0386169163f3701da291602480830192602092919082900301818787803b15801561058057600080fd5b505af1158015610594573d6000803e3d6000fd5b505050506040513d60208110156105aa57600080fd5b505191506105b783610ee6565b6040805160e260020a632eaa14a702815260048101839052600160a060020a03858116602483015291519293509085169163baa8529c9160448082019260009290919082900301818387803b15801561060f57600080fd5b505af1158015610623573d6000803e3d6000fd5b505050509250929050565b604080517f1f3634ed00000000000000000000000000000000000000000000000000000000815260048101849052905184916107eb918391869161075791600160a060020a03851691631f3634ed916024808201926020929091908290030181600087803b15801561069f57600080fd5b505af11580156106b3573d6000803e3d6000fd5b505050506040513d60208110156106c957600080fd5b5051604080517f7ec9c3b80000000000000000000000000000000000000000000000000000000081529051600160a060020a03881691637ec9c3b89160048083019260209291908290030181600087803b15801561072657600080fd5b505af115801561073a573d6000803e3d6000fd5b505050506040513d602081101561075057600080fd5b5051611fd7565b604080517ff7c8d634000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a0387169163f7c8d6349160248083019260209291908290030181600087803b1580156107b957600080fd5b505af11580156107cd573d6000803e3d6000fd5b505050506040513d60208110156107e357600080fd5b5051866104c5565b604080517fb84d2106000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0383169163b84d210691602480830192600092919082900301818387803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505050505050565b6000808311156104dc5784905080600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156108b557600080fd5b505af11580156108c9573d6000803e3d6000fd5b505050506040513d60208110156108df57600080fd5b5051604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561095157600080fd5b505af1158015610965573d6000803e3d6000fd5b505050506040513d602081101561097b57600080fd5b5050604080517f6f78ee0d000000000000000000000000000000000000000000000000000000008152600481018690529051610aba918391610ab4918791610aaf91600160a060020a03861691636f78ee0d916024808201926020929091908290030181600087803b1580156109f057600080fd5b505af1158015610a04573d6000803e3d6000fd5b505050506040513d6020811015610a1a57600080fd5b5051604080517ff7c8d634000000000000000000000000000000000000000000000000000000008152600481018c90529051600160a060020a0389169163f7c8d6349160248083019260209291908290030181600087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b505161201a565b611fd7565b8461203e565b60001981600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610afb57600080fd5b505af1158015610b0f573d6000803e3d6000fd5b505050506040513d6020811015610b2557600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0385811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b158015610b7c57600080fd5b505af1158015610b90573d6000803e3d6000fd5b505050506040513d6020811015610ba657600080fd5b505114610c865780600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610beb57600080fd5b505af1158015610bff573d6000803e3d6000fd5b505050506040513d6020811015610c1557600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03848116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b505050505b60001981600160a060020a03166312d43a516040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610cc757600080fd5b505af1158015610cdb573d6000803e3d6000fd5b505050506040513d6020811015610cf157600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0385811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b158015610d4857600080fd5b505af1158015610d5c573d6000803e3d6000fd5b505050506040513d6020811015610d7257600080fd5b505114610e525780600160a060020a03166312d43a516040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610db757600080fd5b505af1158015610dcb573d6000803e3d6000fd5b505050506040513d6020811015610de157600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03848116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015610e3957600080fd5b505af1158015610e4d573d6000803e3d6000fd5b505050505b604080517f73b3810100000000000000000000000000000000000000000000000000000000815260048101869052602481018590529051600160a060020a038316916373b3810191604480830192600092919082900301818387803b158015610eba57600080fd5b505af1158015610ece573d6000803e3d6000fd5b505050505050505050565b6104f8838383600061086a565b600081600160a060020a031663fcfff16f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f2657600080fd5b505af1158015610f3a573d6000803e3d6000fd5b505050506040513d6020811015610f5057600080fd5b505192915050565b604080517f1f3634ed000000000000000000000000000000000000000000000000000000008152600481018390529051839161105c9183918591610fc991600160a060020a03851691631f3634ed916024808201926020929091908290030181600087803b15801561069f57600080fd5b604080517ff7c8d634000000000000000000000000000000000000000000000000000000008152600481018890529051600160a060020a0387169163f7c8d6349160248083019260209291908290030181600087803b15801561102b57600080fd5b505af115801561103f573d6000803e3d6000fd5b505050506040513d602081101561105557600080fd5b5051611fc1565b604080517fb84d2106000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a0383169163b84d210691602480830192600092919082900301818387803b1580156110bd57600080fd5b505af11580156110d1573d6000803e3d6000fd5b50505050505050565b6000806000803411156104dc57604080517ffdac0025000000000000000000000000000000000000000000000000000000008152600481018690529051869450600160a060020a0385169163fdac00259160248083019260809291908290030181600087803b15801561114c57600080fd5b505af1158015611160573d6000803e3d6000fd5b505050506040513d608081101561117657600080fd5b50519150600160a060020a03821630146111f157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f6375702d6e6f742d6f776e656400000000000000000000000000000000000000604482015290519081900360640190fd5b82600160a060020a0316637bd2bea76040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561122f57600080fd5b505af1158015611243573d6000803e3d6000fd5b505050506040513d602081101561125957600080fd5b5051604080517fd0e30db00000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163d0e30db0913491600480830192600092919082900301818588803b1580156112b857600080fd5b505af11580156112cc573d6000803e3d6000fd5b50505050506113133484600160a060020a0316637ec9c3b86040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a7e57600080fd5b9050346113588285600160a060020a0316637ec9c3b86040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561072657600080fd5b11156113675760018103611369565b805b905060001983600160a060020a0316637bd2bea76040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506040513d60208110156113d657600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0387811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b15801561142d57600080fd5b505af1158015611441573d6000803e3d6000fd5b505050506040513d602081101561145757600080fd5b5051146115375782600160a060020a0316637bd2bea76040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561149c57600080fd5b505af11580156114b0573d6000803e3d6000fd5b505050506040513d60208110156114c657600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03868116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b15801561151e57600080fd5b505af1158015611532573d6000803e3d6000fd5b505050505b82600160a060020a031663049878f3826040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b15801561158057600080fd5b505af1158015611594573d6000803e3d6000fd5b5050505060001983600160a060020a0316630f8a771e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b505050506040513d602081101561160357600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0387811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b15801561165a57600080fd5b505af115801561166e573d6000803e3d6000fd5b505050506040513d602081101561168457600080fd5b5051146117645782600160a060020a0316630f8a771e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156116c957600080fd5b505af11580156116dd573d6000803e3d6000fd5b505050506040513d60208110156116f357600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03868116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b15801561174b57600080fd5b505af115801561175f573d6000803e3d6000fd5b505050505b604080517fb3b77a5100000000000000000000000000000000000000000000000000000000815260048101869052602481018390529051600160a060020a0385169163b3b77a5191604480830192600092919082900301818387803b158015610eba57600080fd5b604080517ff3701da200000000000000000000000000000000000000000000000000000000815233600482015290516000918291600160a060020a0387169163f3701da291602480830192602092919082900301818787803b15801561183157600080fd5b505af1158015611845573d6000803e3d6000fd5b505050506040513d602081101561185b57600080fd5b5051915061186884610ee6565b90506118758482856104e3565b6040805160e260020a632eaa14a702815260048101839052600160a060020a03848116602483015291519186169163baa8529c9160448082019260009290919082900301818387803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b50505050935093915050565b6040805160e260020a632eaa14a702815260048101849052600160a060020a03838116602483015291519185169163baa8529c9160448082019260009290919082900301818387803b1580156110bd57600080fd5b604080517ff3701da200000000000000000000000000000000000000000000000000000000815233600482015290516000918291600160a060020a0386169163f3701da291602480830192602092919082900301818787803b1580156119a457600080fd5b505af11580156119b8573d6000803e3d6000fd5b505050506040513d60208110156119ce57600080fd5b505191506119db83610ee6565b90506119e783826110da565b6040805160e260020a632eaa14a702815260048101839052600160a060020a03848116602483015291519185169163baa8529c9160448082019260009290919082900301818387803b15801561060f57600080fd5b6000806000808411156104bc57859250611a8e8484600160a060020a0316637ec9c3b86040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a7e57600080fd5b915083611ad38385600160a060020a0316637ec9c3b86040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561072657600080fd5b1115611ae25760018203611ae4565b815b604080517fa5cd184e00000000000000000000000000000000000000000000000000000000815260048101889052602481018390529051919350600160a060020a0385169163a5cd184e9160448082019260009290919082900301818387803b158015611b5057600080fd5b505af1158015611b64573d6000803e3d6000fd5b5050505060001983600160a060020a0316630f8a771e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ba957600080fd5b505af1158015611bbd573d6000803e3d6000fd5b505050506040513d6020811015611bd357600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0387811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b505050506040513d6020811015611c5457600080fd5b505114611d345782600160a060020a0316630f8a771e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611c9957600080fd5b505af1158015611cad573d6000803e3d6000fd5b505050506040513d6020811015611cc357600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03868116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015611d1b57600080fd5b505af1158015611d2f573d6000803e3d6000fd5b505050505b82600160a060020a0316637f8661a1836040518263ffffffff1660e060020a02815260040180828152602001915050600060405180830381600087803b158015611d7d57600080fd5b505af1158015611d91573d6000803e3d6000fd5b5050505082600160a060020a0316637bd2bea76040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611dd357600080fd5b505af1158015611de7573d6000803e3d6000fd5b505050506040513d6020811015611dfd57600080fd5b5051604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611e6257600080fd5b505af1158015611e76573d6000803e3d6000fd5b505050506040513d6020811015611e8c57600080fd5b5051604080517f7bd2bea70000000000000000000000000000000000000000000000000000000081529051919250600160a060020a03851691637bd2bea7916004808201926020929091908290030181600087803b158015611eed57600080fd5b505af1158015611f01573d6000803e3d6000fd5b505050506040513d6020811015611f1757600080fd5b5051604080517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a0390921691632e1a7d4d9160248082019260009290919082900301818387803b158015611f7c57600080fd5b505af1158015611f90573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f193505050501580156110d1573d6000803e3d6000fd5b611fcc848483610ed9565b6104bf848484611a3c565b60006b033b2e3c9fd0803ce8000000612009611ff3858561288f565b60026b033b2e3c9fd0803ce80000005b046128b7565b81151561201257fe5b049392505050565b600081612009612036856b033b2e3c9fd0803ce800000061288f565b600285612003565b60008060008086600160a060020a031663ace237f56040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561208257600080fd5b505af1158015612096573d6000803e3d6000fd5b505050506040513d60208110156120ac57600080fd5b5051604080517f59e02dd70000000000000000000000000000000000000000000000000000000081528151600160a060020a03909316926359e02dd7926004808401939192918290030181600087803b15801561210857600080fd5b505af115801561211c573d6000803e3d6000fd5b505050506040513d604081101561213257600080fd5b508051602090910151909450925082801561214c57508315155b156110d15761215b86856128c7565b9150600160a060020a0385161561278b5784600160a060020a031663ff1fd97488600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156121b957600080fd5b505af11580156121cd573d6000803e3d6000fd5b505050506040513d60208110156121e357600080fd5b5051604080517f12d43a510000000000000000000000000000000000000000000000000000000081529051600160a060020a038c16916312d43a519160048083019260209291908290030181600087803b15801561224057600080fd5b505af1158015612254573d6000803e3d6000fd5b505050506040513d602081101561226a57600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a039384166004820152929091166024830152604482018690525160648083019260209291908290030181600087803b1580156122c157600080fd5b505af11580156122d5573d6000803e3d6000fd5b505050506040513d60208110156122eb57600080fd5b5051604080517f9166cba4000000000000000000000000000000000000000000000000000000008152905191925060001991600160a060020a038a1691639166cba49160048083019260209291908290030181600087803b15801561234f57600080fd5b505af1158015612363573d6000803e3d6000fd5b505050506040513d602081101561237957600080fd5b50516040805160e160020a636eb1769f028152306004820152600160a060020a0389811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b1580156123d057600080fd5b505af11580156123e4573d6000803e3d6000fd5b505050506040513d60208110156123fa57600080fd5b5051146124da5786600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561243f57600080fd5b505af1158015612453573d6000803e3d6000fd5b505050506040513d602081101561246957600080fd5b50516040805160e060020a63095ea7b3028152600160a060020a03888116600483015260001960248301529151919092169163095ea7b391604480830192600092919082900301818387803b1580156124c157600080fd5b505af11580156124d5573d6000803e3d6000fd5b505050505b86600160a060020a0316639166cba46040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561251857600080fd5b505af115801561252c573d6000803e3d6000fd5b505050506040513d602081101561254257600080fd5b5051604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156125b457600080fd5b505af11580156125c8573d6000803e3d6000fd5b505050506040513d60208110156125de57600080fd5b5050604080517f12d43a510000000000000000000000000000000000000000000000000000000081529051600160a060020a0380881692638185402b92918b16916312d43a51916004808201926020929091908290030181600087803b15801561264757600080fd5b505af115801561265b573d6000803e3d6000fd5b505050506040513d602081101561267157600080fd5b5051604080517f9166cba400000000000000000000000000000000000000000000000000000000815290518691600160a060020a038d1691639166cba4916004808201926020929091908290030181600087803b1580156126d157600080fd5b505af11580156126e5573d6000803e3d6000fd5b505050506040513d60208110156126fb57600080fd5b50516040805160e060020a63ffffffff8716028152600160a060020a03948516600482015260248101939093529216604482015260648101859052905160848083019260209291908290030181600087803b15801561275957600080fd5b505af115801561276d573d6000803e3d6000fd5b505050506040513d602081101561278357600080fd5b506110d19050565b86600160a060020a03166312d43a516040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156127c957600080fd5b505af11580156127dd573d6000803e3d6000fd5b505050506040513d60208110156127f357600080fd5b5051604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561286557600080fd5b505af1158015612879573d6000803e3d6000fd5b505050506040513d6020811015610ece57600080fd5b60008115806128ac5750508082028282828115156128a957fe5b04145b151561051557600080fd5b8082018281101561051557600080fd5b60008161200961203685670de0b6b3a764000061288f5600a165627a7a723058203882020989eed133489980542fe992a8b6761211e7f9e141daccbdaf91dfb6320029

Swarm Source

bzzr://3882020989eed133489980542fe992a8b6761211e7f9e141daccbdaf91dfb632

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.