ETH Price: $2,974.34 (-4.47%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Migrate226219842025-06-03 5:15:47232 days ago1748927747IN
0x473d777f...b7F9AF90B
0 ETH0.000512050.95276874
Migrate226215972025-06-03 3:58:11232 days ago1748923091IN
0x473d777f...b7F9AF90B
0 ETH0.000777961.27014025
Migrate226215162025-06-03 3:41:59232 days ago1748922119IN
0x473d777f...b7F9AF90B
0 ETH0.000741641.21132073
Migrate226179342025-06-02 15:39:23232 days ago1748878763IN
0x473d777f...b7F9AF90B
0 ETH0.003766416.09228109
Migrate226129592025-06-01 22:54:23233 days ago1748818463IN
0x473d777f...b7F9AF90B
0 ETH0.000524011.20819767
Migrate225997692025-05-31 2:36:35235 days ago1748658995IN
0x473d777f...b7F9AF90B
0 ETH0.000916711.54823197
Migrate225935162025-05-30 5:38:35236 days ago1748583515IN
0x473d777f...b7F9AF90B
0 ETH0.001241882.14260727
Migrate225899912025-05-29 17:48:35236 days ago1748540915IN
0x473d777f...b7F9AF90B
0 ETH0.002163023.60655965
Migrate225868502025-05-29 7:14:23236 days ago1748502863IN
0x473d777f...b7F9AF90B
0 ETH0.001516232.58898162
Migrate225814352025-05-28 13:04:11237 days ago1748437451IN
0x473d777f...b7F9AF90B
0 ETH0.0063718412.47379988
Migrate225732482025-05-27 9:32:23238 days ago1748338343IN
0x473d777f...b7F9AF90B
0 ETH0.001332842.25102724
Migrate225704532025-05-27 0:09:59239 days ago1748304599IN
0x473d777f...b7F9AF90B
0 ETH0.0007521.28313905
Migrate225688412025-05-26 18:46:35239 days ago1748285195IN
0x473d777f...b7F9AF90B
0 ETH0.001099521.87616558
Migrate225674842025-05-26 14:13:23239 days ago1748268803IN
0x473d777f...b7F9AF90B
0 ETH0.00140633.24243979
Migrate225592432025-05-25 10:28:23240 days ago1748168903IN
0x473d777f...b7F9AF90B
0 ETH0.000435820.84257068
Migrate225447112025-05-23 9:36:35242 days ago1747992995IN
0x473d777f...b7F9AF90B
0 ETH0.001053941.9503466
Migrate225353812025-05-22 2:17:35244 days ago1747880255IN
0x473d777f...b7F9AF90B
0 ETH0.000614771.41745222
Migrate225305392025-05-21 10:01:23244 days ago1747821683IN
0x473d777f...b7F9AF90B
0 ETH0.003579457
Migrate225305292025-05-21 9:59:23244 days ago1747821563IN
0x473d777f...b7F9AF90B
0 ETH0.004144867
Migrate225305112025-05-21 9:55:47244 days ago1747821347IN
0x473d777f...b7F9AF90B
0 ETH0.004144727
Migrate225281552025-05-21 2:00:47245 days ago1747792847IN
0x473d777f...b7F9AF90B
0 ETH0.000392560.66300652
Migrate225238972025-05-20 11:41:23245 days ago1747741283IN
0x473d777f...b7F9AF90B
0 ETH0.000688061.58642994
Migrate225220642025-05-20 5:29:35246 days ago1747718975IN
0x473d777f...b7F9AF90B
0 ETH0.000689111.16383543
Migrate225210342025-05-20 2:02:11246 days ago1747706531IN
0x473d777f...b7F9AF90B
0 ETH0.000560630.94685124
Migrate225208782025-05-20 1:30:59246 days ago1747704659IN
0x473d777f...b7F9AF90B
0 ETH0.000545711.05498875
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x0C986324...f389c65a6
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
LockstakeMigrator

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
shanghai EvmVersion, GNU AGPLv3 license

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-FileCopyrightText: © 2025 Dai Foundation <www.daifoundation.org>
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

pragma solidity ^0.8.21;

interface VatLike {
    function ilks(bytes32) external view returns (uint256, uint256, uint256, uint256, uint256);
    function urns(bytes32, address) external view returns (uint256, uint256);
    function file(bytes32, bytes32, uint256) external;
    function hope(address) external;
}

interface LockstakeEngineLike {
    function vat() external view returns (VatLike);
    function ilk() external view returns (bytes32);
    function mkr() external view returns (TokenLike);
    function sky() external view returns (TokenLike);
    function usdsJoin() external view returns (UsdsJoinLike);
    function ownerUrns(address, uint256) external view returns (address);
    function isUrnAuth(address, uint256, address) external view returns (bool);
    function lock(address, uint256, uint256, uint16) external;
    function freeNoFee(address, uint256, address, uint256) external;
    function draw(address, uint256, address, uint256) external;
    function wipeAll(address, uint256) external;
}

interface UsdsJoinLike {
    function usds() external view returns (TokenLike);
    function join(address, uint256) external;
    function exit(address, uint256) external;
}

interface TokenLike {
    function approve(address, uint256) external;
}

interface MkrSkyLike {
    function rate() external view returns (uint256);
    function mkrToSky(address, uint256) external;
}

interface FlashLike {
    function vatDaiFlashLoan(address, uint256, bytes calldata) external;
}

contract LockstakeMigrator {
    // --- immutables ---

    LockstakeEngineLike immutable public oldEngine;
    LockstakeEngineLike immutable public newEngine;
    MkrSkyLike          immutable public mkrSky;
    FlashLike           immutable public flash;
    VatLike             immutable public vat;
    UsdsJoinLike        immutable public usdsJoin;
    bytes32             immutable public oldIlk;
    bytes32             immutable public newIlk;
    uint256             immutable public mkrSkyRate;

    // --- constants ---

    uint256 private constant RAY = 10**27;
    uint256 private constant RAD = 10**45;

    // --- math ---

    function _divup(uint256 x, uint256 y) internal pure returns (uint256 z) {
        // Note: _divup(0,0) will return 0 differing from natural solidity division
        unchecked {
            z = x != 0 ? ((x - 1) / y) + 1 : 0;
        }
    }

    // --- events ---

    event Migrate(address indexed oldOwner, uint256 indexed oldIndex, address indexed newOwner, uint256 indexed newIndex, uint256 ink, uint256 debt) anonymous;

    // --- constructor ---

    constructor(address oldEngine_, address newEngine_, address mkrSky_, address flash_) {
        oldEngine = LockstakeEngineLike(oldEngine_);
        newEngine = LockstakeEngineLike(newEngine_);
        mkrSky = MkrSkyLike(mkrSky_);
        flash = FlashLike(flash_);
        vat = oldEngine.vat();
        usdsJoin = oldEngine.usdsJoin();
        oldIlk = oldEngine.ilk();
        newIlk = newEngine.ilk();
        mkrSkyRate = mkrSky.rate();

        TokenLike usds = usdsJoin.usds();
        oldEngine.mkr().approve(mkrSky_, type(uint256).max);
        oldEngine.sky().approve(newEngine_, type(uint256).max);
        usds.approve(oldEngine_, type(uint256).max);
        usds.approve(address(usdsJoin), type(uint256).max);
        vat.hope(address(usdsJoin));
    }

    function migrate(address oldOwner, uint256 oldIndex, address newOwner, uint256 newIndex, uint16 ref) external {
        require(oldEngine.isUrnAuth(oldOwner, oldIndex, msg.sender), "LockstakeMigrator/sender-not-authed-old-urn");
        require(newEngine.isUrnAuth(newOwner, newIndex, msg.sender), "LockstakeMigrator/sender-not-authed-new-urn");

        address oldUrn = oldEngine.ownerUrns(oldOwner, oldIndex);
        (uint256 ink, uint256 art) = vat.urns(oldIlk, oldUrn);
        uint256 debt;
        if (art == 0) {
            oldEngine.freeNoFee(oldOwner, oldIndex, address(this), ink);
            mkrSky.mkrToSky(address(this), ink);
            newEngine.lock(newOwner, newIndex, ink * mkrSkyRate, ref);
        } else {
            // Just a sanity check at migrate execution time. It is still needed to assume
            // governance won't ever give debt ceiling allowance for the old collateral
            (, uint256 oldIlkRate,, uint256 oldIlkLine,) = vat.ilks(oldIlk);
            require(oldIlkLine == 0, "LockstakeMigrator/old-ilk-line-not-zero");
            debt = _divup(art * oldIlkRate, RAY) * RAY;
            flash.vatDaiFlashLoan(address(this), debt, abi.encode(oldOwner, oldIndex, newOwner, newIndex, ink, ref));
        }

        emit Migrate(oldOwner, oldIndex, newOwner, newIndex, ink, debt);
    }

    function onVatDaiFlashLoan(address initiator, uint256 radAmt, uint256, bytes calldata data) external returns (bytes32) {
        require(msg.sender == address(flash) && initiator == address(this), "LockstakeMigrator/wrong-origin");

        uint256 wadAmt = radAmt / RAY;
        (address oldOwner, uint256 oldIndex, address newOwner, uint256 newIndex, uint256 ink, uint16 ref) = abi.decode(data, (address, uint256, address, uint256, uint256, uint16));
        usdsJoin.exit(address(this), wadAmt);
        oldEngine.wipeAll(oldOwner, oldIndex);
        oldEngine.freeNoFee(oldOwner, oldIndex, address(this), ink);
        mkrSky.mkrToSky(address(this), ink);
        newEngine.lock(newOwner, newIndex, ink * mkrSkyRate, ref);
        vat.file(newIlk, "line", 55_000_000 * RAD); // Should be enough for migrating current positions even if everything is taken and then some fees are accrued on top
        newEngine.draw(newOwner, newIndex, address(this), wadAmt);
        vat.file(newIlk, "line", 0);
        usdsJoin.join(address(flash), wadAmt);

        return keccak256("VatDaiFlashBorrower.onVatDaiFlashLoan");
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "evmVersion": "shanghai",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"oldEngine_","type":"address"},{"internalType":"address","name":"newEngine_","type":"address"},{"internalType":"address","name":"mkrSky_","type":"address"},{"internalType":"address","name":"flash_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":true,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"uint256","name":"oldIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"},{"indexed":true,"internalType":"uint256","name":"newIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ink","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debt","type":"uint256"}],"name":"Migrate","type":"event"},{"inputs":[],"name":"flash","outputs":[{"internalType":"contract FlashLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address"},{"internalType":"uint256","name":"oldIndex","type":"uint256"},{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"uint256","name":"newIndex","type":"uint256"},{"internalType":"uint16","name":"ref","type":"uint16"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mkrSky","outputs":[{"internalType":"contract MkrSkyLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkrSkyRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newEngine","outputs":[{"internalType":"contract LockstakeEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newIlk","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oldEngine","outputs":[{"internalType":"contract LockstakeEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oldIlk","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"radAmt","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onVatDaiFlashLoan","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdsJoin","outputs":[{"internalType":"contract UsdsJoinLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vat","outputs":[{"internalType":"contract VatLike","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

0x6101a060405234801562000011575f80fd5b5060405162001ae138038062001ae18339810160408190526200003491620005d1565b6001600160a01b03808516608081905284821660a05283821660c05290821660e052604080516336569e7760e01b815290516336569e77916004808201926020929091908290030181865afa15801562000090573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000b6919062000636565b6001600160a01b0316610100816001600160a01b0316815250506080516001600160a01b031663fa1e2e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200010f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000135919062000636565b6001600160a01b0316610120816001600160a01b0316815250506080516001600160a01b031663c5ce281e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b491906200065b565b610140818152505060a0516001600160a01b031663c5ce281e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022191906200065b565b610160818152505060c0516001600160a01b0316632c4e722e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000268573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028e91906200065b565b61018081815250505f610120516001600160a01b0316634cf282fb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002fd919062000636565b90506080516001600160a01b0316637e992cb86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000364919062000636565b60405163095ea7b360e01b81526001600160a01b0385811660048301525f196024830152919091169063095ea7b3906044015f604051808303815f87803b158015620003ae575f80fd5b505af1158015620003c1573d5f803e3d5ffd5b505050506080516001600160a01b031663692318046040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000404573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042a919062000636565b60405163095ea7b360e01b81526001600160a01b0386811660048301525f196024830152919091169063095ea7b3906044015f604051808303815f87803b15801562000474575f80fd5b505af115801562000487573d5f803e3d5ffd5b505060405163095ea7b360e01b81526001600160a01b0388811660048301525f1960248301528416925063095ea7b391506044015f604051808303815f87803b158015620004d3575f80fd5b505af1158015620004e6573d5f803e3d5ffd5b50506101205160405163095ea7b360e01b81526001600160a01b0391821660048201525f196024820152908416925063095ea7b391506044015f604051808303815f87803b15801562000537575f80fd5b505af11580156200054a573d5f803e3d5ffd5b505061010051610120516040516328ec8bf160e21b81526001600160a01b0391821660048201529116925063a3b22fc491506024015f604051808303815f87803b15801562000597575f80fd5b505af1158015620005aa573d5f803e3d5ffd5b50505050505050505062000673565b6001600160a01b0381168114620005ce575f80fd5b50565b5f805f8060808587031215620005e5575f80fd5b8451620005f281620005b9565b60208601519094506200060581620005b9565b60408601519093506200061881620005b9565b60608601519092506200062b81620005b9565b939692955090935050565b5f6020828403121562000647575f80fd5b81516200065481620005b9565b9392505050565b5f602082840312156200066c575f80fd5b5051919050565b60805160a05160c05160e05161010051610120516101405161016051610180516113546200078d5f395f818161019e0152818161054d0152610d1501525f81816101c501528181610613015261073f01525f818161016201528181610b350152610dbe01525f818161023a0152818161034c015261081d01525f818161011a015281816105e40152818161077801528181610b720152610df001525f81816101ec01528181610268015281816107ee0152610f3401525f818160af015281816104b90152610c8101525f818160f30152818161051c015281816106c8015281816109ca0152610ce401525f8181610213015281816103c701528181610435015281816108d501528181610abb0152610bff01526113545ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c80635ea8d4f31161006e5780635ea8d4f31461018457806381c44fcc14610199578063900e934d146101c0578063d336c82d146101e7578063e0d680a61461020e578063fa1e2e8614610235575f80fd5b806315cd07b6146100aa578063339f7f53146100ee57806336569e771461011557806342bf04b61461013c5780634988dbd71461015d575b5f80fd5b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b61014f61014a366004611044565b61025c565b6040519081526020016100e5565b61014f7f000000000000000000000000000000000000000000000000000000000000000081565b6101976101923660046110e8565b6108a9565b005b61014f7f000000000000000000000000000000000000000000000000000000000000000081565b61014f7f000000000000000000000000000000000000000000000000000000000000000081565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561029d57506001600160a01b03861630145b6102ee5760405162461bcd60e51b815260206004820152601e60248201527f4c6f636b7374616b654d69677261746f722f77726f6e672d6f726967696e000060448201526064015b60405180910390fd5b5f6103056b033b2e3c9fd0803ce800000087611153565b90505f8080808080610319898b018b611172565b60405163ef693bed60e01b8152306004820152602481018e9052959b509399509197509550935091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ef693bed906044015f604051808303815f87803b15801561038d575f80fd5b505af115801561039f573d5f803e3d5ffd5b50506040516336eda2b360e11b81526001600160a01b038981166004830152602482018990527f0000000000000000000000000000000000000000000000000000000000000000169250636ddb456691506044015f604051808303815f87803b15801561040a575f80fd5b505af115801561041c573d5f803e3d5ffd5b5050604051631c6eb67b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250631c6eb67b91506104729089908990309088906004016111d1565b5f604051808303815f87803b158015610489575f80fd5b505af115801561049b573d5f803e3d5ffd5b50506040516355c4b02d60e11b8152306004820152602481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063ab89605a91506044015f604051808303815f87803b158015610504575f80fd5b505af1158015610516573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636c3dead485857f00000000000000000000000000000000000000000000000000000000000000008661057791906111fb565b6040516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152604482015261ffff841660648201526084015f604051808303815f87803b1580156105cc575f80fd5b505af11580156105de573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631a0b287e7f0000000000000000000000000000000000000000000000000000000000000000722cd76fe086b93ce2f768a00b22a000000000006303473bc061065591906111fb565b6040516001600160e01b031960e085901b1681526004810192909252636c696e6560e01b602483015260448201526064015f604051808303815f87803b15801561069d575f80fd5b505af11580156106af573d5f803e3d5ffd5b50506040516307abdf2560e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250637abdf2509150610705908790879030908d906004016111d1565b5f604051808303815f87803b15801561071c575f80fd5b505af115801561072e573d5f803e3d5ffd5b5050604051630d05943f60e11b81527f00000000000000000000000000000000000000000000000000000000000000006004820152636c696e6560e01b60248201525f60448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169250631a0b287e91506064015f604051808303815f87803b1580156107c3575f80fd5b505af11580156107d5573d5f803e3d5ffd5b5050604051633b4da69f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018b90527f0000000000000000000000000000000000000000000000000000000000000000169250633b4da69f91506044015f604051808303815f87803b158015610860575f80fd5b505af1158015610872573d5f803e3d5ffd5b505050507f0cceaa4ec34688ca5ae62e4ade215985d2d08dffd7fdb3eb79768a5dc372e8b197505050505050505095945050505050565b60405163631c84a560e01b81526001600160a01b038681166004830152602482018690523360448301527f0000000000000000000000000000000000000000000000000000000000000000169063631c84a590606401602060405180830381865afa15801561091a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093e9190611224565b61099e5760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b7374616b654d69677261746f722f73656e6465722d6e6f742d61757460448201526a3432b216b7b63216bab93760a91b60648201526084016102e5565b60405163631c84a560e01b81526001600160a01b038481166004830152602482018490523360448301527f0000000000000000000000000000000000000000000000000000000000000000169063631c84a590606401602060405180830381865afa158015610a0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a339190611224565b610a935760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b7374616b654d69677261746f722f73656e6465722d6e6f742d61757460448201526a3432b216b732bb96bab93760a91b60648201526084016102e5565b604051636cf830c960e11b81526001600160a01b038681166004830152602482018690525f917f00000000000000000000000000000000000000000000000000000000000000009091169063d9f0619290604401602060405180830381865afa158015610b02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b269190611243565b6040516309092f9760e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201526001600160a01b0382811660248301529192505f9182917f000000000000000000000000000000000000000000000000000000000000000090911690632424be5c906044016040805180830381865afa158015610bb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdc919061125e565b915091505f815f03610daf57604051631c6eb67b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631c6eb67b90610c3a908c908c90309089906004016111d1565b5f604051808303815f87803b158015610c51575f80fd5b505af1158015610c63573d5f803e3d5ffd5b50506040516355c4b02d60e11b8152306004820152602481018690527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063ab89605a91506044015f604051808303815f87803b158015610ccc575f80fd5b505af1158015610cde573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636c3dead488887f000000000000000000000000000000000000000000000000000000000000000087610d3f91906111fb565b6040516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152604482015261ffff881660648201526084015f604051808303815f87803b158015610d94575f80fd5b505af1158015610da6573d5f803e3d5ffd5b50505050610fbf565b604051636cb1c69b60e11b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f9081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d9638d369060240160a060405180830381865afa158015610e35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e599190611280565b50935050925050805f14610ebf5760405162461bcd60e51b815260206004820152602760248201527f4c6f636b7374616b654d69677261746f722f6f6c642d696c6b2d6c696e652d6e6044820152666f742d7a65726f60c81b60648201526084016102e5565b6b033b2e3c9fd0803ce8000000610eeb610ed984876111fb565b6b033b2e3c9fd0803ce8000000611001565b610ef591906111fb565b604080516001600160a01b038e811660208301529181018d90528b82166060820152608081018b905260a0810188905261ffff8a1660c08201529194507f00000000000000000000000000000000000000000000000000000000000000001690633f03653f903090869060e0016040516020818303038152906040526040518463ffffffff1660e01b8152600401610f8f939291906112bc565b5f604051808303815f87803b158015610fa6575f80fd5b505af1158015610fb8573d5f803e3d5ffd5b5050505050505b85876001600160a01b0316898b6001600160a01b03168685604051610fee929190918252602082015260400190565b60405180910390a4505050505050505050565b5f825f0361100f575f611026565b8160018403816110215761102161113f565b046001015b9392505050565b6001600160a01b0381168114611041575f80fd5b50565b5f805f805f60808688031215611058575f80fd5b85356110638161102d565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561108d575f80fd5b818801915088601f8301126110a0575f80fd5b8135818111156110ae575f80fd5b8960208285010111156110bf575f80fd5b9699959850939650602001949392505050565b803561ffff811681146110e3575f80fd5b919050565b5f805f805f60a086880312156110fc575f80fd5b85356111078161102d565b945060208601359350604086013561111e8161102d565b925060608601359150611133608087016110d2565b90509295509295909350565b634e487b7160e01b5f52601260045260245ffd5b5f8261116d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f805f8060c08789031215611187575f80fd5b86356111928161102d565b95506020870135945060408701356111a98161102d565b935060608701359250608087013591506111c560a088016110d2565b90509295509295509295565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b808202811582820484141761121e57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215611234575f80fd5b81518015158114611026575f80fd5b5f60208284031215611253575f80fd5b81516110268161102d565b5f806040838503121561126f575f80fd5b505080516020909101519092909150565b5f805f805f60a08688031215611294575f80fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b60018060a01b03841681525f602084818401526060604084015283518060608501525f5b818110156112fc578581018301518582016080015282016112e0565b505f608082860101526080601f19601f8301168501019250505094935050505056fea2646970667358221220f163a8ff7ebd67c682033b2ff54dc5d3f94fef350304f009b2b6be002055b87b64736f6c634300081500330000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f12000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a3000000000000000000000000a1ea1ba18e88c381c724a75f23a130420c403f9a00000000000000000000000060744434d6339a6b27d73d9eda62b6f66a0a04fa

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100a6575f3560e01c80635ea8d4f31161006e5780635ea8d4f31461018457806381c44fcc14610199578063900e934d146101c0578063d336c82d146101e7578063e0d680a61461020e578063fa1e2e8614610235575f80fd5b806315cd07b6146100aa578063339f7f53146100ee57806336569e771461011557806342bf04b61461013c5780634988dbd71461015d575b5f80fd5b6100d17f000000000000000000000000a1ea1ba18e88c381c724a75f23a130420c403f9a81565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d17f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a381565b6100d17f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b81565b61014f61014a366004611044565b61025c565b6040519081526020016100e5565b61014f7f4c53452d4d4b522d41000000000000000000000000000000000000000000000081565b6101976101923660046110e8565b6108a9565b005b61014f7f0000000000000000000000000000000000000000000000000000000000005dc081565b61014f7f4c534556322d534b592d4100000000000000000000000000000000000000000081565b6100d17f00000000000000000000000060744434d6339a6b27d73d9eda62b6f66a0a04fa81565b6100d17f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f1281565b6100d17f0000000000000000000000003c0f895007ca717aa01c8693e59df1e8c3777feb81565b5f336001600160a01b037f00000000000000000000000060744434d6339a6b27d73d9eda62b6f66a0a04fa1614801561029d57506001600160a01b03861630145b6102ee5760405162461bcd60e51b815260206004820152601e60248201527f4c6f636b7374616b654d69677261746f722f77726f6e672d6f726967696e000060448201526064015b60405180910390fd5b5f6103056b033b2e3c9fd0803ce800000087611153565b90505f8080808080610319898b018b611172565b60405163ef693bed60e01b8152306004820152602481018e9052959b509399509197509550935091506001600160a01b037f0000000000000000000000003c0f895007ca717aa01c8693e59df1e8c3777feb169063ef693bed906044015f604051808303815f87803b15801561038d575f80fd5b505af115801561039f573d5f803e3d5ffd5b50506040516336eda2b360e11b81526001600160a01b038981166004830152602482018990527f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f12169250636ddb456691506044015f604051808303815f87803b15801561040a575f80fd5b505af115801561041c573d5f803e3d5ffd5b5050604051631c6eb67b60e01b81526001600160a01b037f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f12169250631c6eb67b91506104729089908990309088906004016111d1565b5f604051808303815f87803b158015610489575f80fd5b505af115801561049b573d5f803e3d5ffd5b50506040516355c4b02d60e11b8152306004820152602481018590527f000000000000000000000000a1ea1ba18e88c381c724a75f23a130420c403f9a6001600160a01b0316925063ab89605a91506044015f604051808303815f87803b158015610504575f80fd5b505af1158015610516573d5f803e3d5ffd5b505050507f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a36001600160a01b0316636c3dead485857f0000000000000000000000000000000000000000000000000000000000005dc08661057791906111fb565b6040516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152604482015261ffff841660648201526084015f604051808303815f87803b1580156105cc575f80fd5b505af11580156105de573d5f803e3d5ffd5b505050507f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b0316631a0b287e7f4c534556322d534b592d41000000000000000000000000000000000000000000722cd76fe086b93ce2f768a00b22a000000000006303473bc061065591906111fb565b6040516001600160e01b031960e085901b1681526004810192909252636c696e6560e01b602483015260448201526064015f604051808303815f87803b15801561069d575f80fd5b505af11580156106af573d5f803e3d5ffd5b50506040516307abdf2560e41b81526001600160a01b037f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a3169250637abdf2509150610705908790879030908d906004016111d1565b5f604051808303815f87803b15801561071c575f80fd5b505af115801561072e573d5f803e3d5ffd5b5050604051630d05943f60e11b81527f4c534556322d534b592d410000000000000000000000000000000000000000006004820152636c696e6560e01b60248201525f60448201527f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b03169250631a0b287e91506064015f604051808303815f87803b1580156107c3575f80fd5b505af11580156107d5573d5f803e3d5ffd5b5050604051633b4da69f60e01b81526001600160a01b037f00000000000000000000000060744434d6339a6b27d73d9eda62b6f66a0a04fa81166004830152602482018b90527f0000000000000000000000003c0f895007ca717aa01c8693e59df1e8c3777feb169250633b4da69f91506044015f604051808303815f87803b158015610860575f80fd5b505af1158015610872573d5f803e3d5ffd5b505050507f0cceaa4ec34688ca5ae62e4ade215985d2d08dffd7fdb3eb79768a5dc372e8b197505050505050505095945050505050565b60405163631c84a560e01b81526001600160a01b038681166004830152602482018690523360448301527f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f12169063631c84a590606401602060405180830381865afa15801561091a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093e9190611224565b61099e5760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b7374616b654d69677261746f722f73656e6465722d6e6f742d61757460448201526a3432b216b7b63216bab93760a91b60648201526084016102e5565b60405163631c84a560e01b81526001600160a01b038481166004830152602482018490523360448301527f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a3169063631c84a590606401602060405180830381865afa158015610a0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a339190611224565b610a935760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b7374616b654d69677261746f722f73656e6465722d6e6f742d61757460448201526a3432b216b732bb96bab93760a91b60648201526084016102e5565b604051636cf830c960e11b81526001600160a01b038681166004830152602482018690525f917f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f129091169063d9f0619290604401602060405180830381865afa158015610b02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b269190611243565b6040516309092f9760e21b81527f4c53452d4d4b522d41000000000000000000000000000000000000000000000060048201526001600160a01b0382811660248301529192505f9182917f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b90911690632424be5c906044016040805180830381865afa158015610bb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdc919061125e565b915091505f815f03610daf57604051631c6eb67b60e01b81526001600160a01b037f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f121690631c6eb67b90610c3a908c908c90309089906004016111d1565b5f604051808303815f87803b158015610c51575f80fd5b505af1158015610c63573d5f803e3d5ffd5b50506040516355c4b02d60e11b8152306004820152602481018690527f000000000000000000000000a1ea1ba18e88c381c724a75f23a130420c403f9a6001600160a01b0316925063ab89605a91506044015f604051808303815f87803b158015610ccc575f80fd5b505af1158015610cde573d5f803e3d5ffd5b505050507f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a36001600160a01b0316636c3dead488887f0000000000000000000000000000000000000000000000000000000000005dc087610d3f91906111fb565b6040516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152604482015261ffff881660648201526084015f604051808303815f87803b158015610d94575f80fd5b505af1158015610da6573d5f803e3d5ffd5b50505050610fbf565b604051636cb1c69b60e11b81527f4c53452d4d4b522d41000000000000000000000000000000000000000000000060048201525f9081906001600160a01b037f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b169063d9638d369060240160a060405180830381865afa158015610e35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e599190611280565b50935050925050805f14610ebf5760405162461bcd60e51b815260206004820152602760248201527f4c6f636b7374616b654d69677261746f722f6f6c642d696c6b2d6c696e652d6e6044820152666f742d7a65726f60c81b60648201526084016102e5565b6b033b2e3c9fd0803ce8000000610eeb610ed984876111fb565b6b033b2e3c9fd0803ce8000000611001565b610ef591906111fb565b604080516001600160a01b038e811660208301529181018d90528b82166060820152608081018b905260a0810188905261ffff8a1660c08201529194507f00000000000000000000000060744434d6339a6b27d73d9eda62b6f66a0a04fa1690633f03653f903090869060e0016040516020818303038152906040526040518463ffffffff1660e01b8152600401610f8f939291906112bc565b5f604051808303815f87803b158015610fa6575f80fd5b505af1158015610fb8573d5f803e3d5ffd5b5050505050505b85876001600160a01b0316898b6001600160a01b03168685604051610fee929190918252602082015260400190565b60405180910390a4505050505050505050565b5f825f0361100f575f611026565b8160018403816110215761102161113f565b046001015b9392505050565b6001600160a01b0381168114611041575f80fd5b50565b5f805f805f60808688031215611058575f80fd5b85356110638161102d565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561108d575f80fd5b818801915088601f8301126110a0575f80fd5b8135818111156110ae575f80fd5b8960208285010111156110bf575f80fd5b9699959850939650602001949392505050565b803561ffff811681146110e3575f80fd5b919050565b5f805f805f60a086880312156110fc575f80fd5b85356111078161102d565b945060208601359350604086013561111e8161102d565b925060608601359150611133608087016110d2565b90509295509295909350565b634e487b7160e01b5f52601260045260245ffd5b5f8261116d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f805f8060c08789031215611187575f80fd5b86356111928161102d565b95506020870135945060408701356111a98161102d565b935060608701359250608087013591506111c560a088016110d2565b90509295509295509295565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b808202811582820484141761121e57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215611234575f80fd5b81518015158114611026575f80fd5b5f60208284031215611253575f80fd5b81516110268161102d565b5f806040838503121561126f575f80fd5b505080516020909101519092909150565b5f805f805f60a08688031215611294575f80fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b60018060a01b03841681525f602084818401526060604084015283518060608501525f5b818110156112fc578581018301518582016080015282016112e0565b505f608082860101526080601f19601f8301168501019250505094935050505056fea2646970667358221220f163a8ff7ebd67c682033b2ff54dc5d3f94fef350304f009b2b6be002055b87b64736f6c63430008150033

Deployed Bytecode Sourcemap

2291:4335:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2455:43;;;;;;;;-1:-1:-1;;;;;196:32:1;;;178:51;;166:2;151:18;2455:43:0;;;;;;;;2403:46;;;;;2552:40;;;;;5503:1121;;;;;;:::i;:::-;;:::i;:::-;;;1847:25:1;;;1835:2;1820:18;5503:1121:0;1701:177:1;2649:43:0;;;;;4165:1332;;;;;;:::i;:::-;;:::i;:::-;;2747:47;;;;;2698:43;;;;;2504:42;;;;;2351:46;;;;;2598:45;;;;;5503:1121;5613:7;5640:10;-1:-1:-1;;;;;5662:5:0;5640:28;;:58;;;;-1:-1:-1;;;;;;5672:26:0;;5693:4;5672:26;5640:58;5632:101;;;;-1:-1:-1;;;5632:101:0;;3487:2:1;5632:101:0;;;3469:21:1;3526:2;3506:18;;;3499:30;3565:32;3545:18;;;3538:60;3615:18;;5632:101:0;;;;;;;;;5744:14;5761:12;2858:6;5761;:12;:::i;:::-;5744:29;-1:-1:-1;5784:16:0;;;;;;5883:71;;;;5894:4;5883:71;:::i;:::-;5964:36;;-1:-1:-1;;;5964:36:0;;5986:4;5964:36;;;4860:51:1;4927:18;;;4920:34;;;5783:171:0;;-1:-1:-1;5783:171:0;;-1:-1:-1;5783:171:0;;-1:-1:-1;5783:171:0;-1:-1:-1;5783:171:0;-1:-1:-1;5783:171:0;-1:-1:-1;;;;;;5964:8:0;:13;;;;4833:18:1;;5964:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6010:37:0;;-1:-1:-1;;;6010:37:0;;-1:-1:-1;;;;;4878:32:1;;;6010:37:0;;;4860:51:1;4927:18;;;4920:34;;;6010:9:0;:17;;-1:-1:-1;6010:17:0;;-1:-1:-1;4833:18:1;;6010:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6057:59:0;;-1:-1:-1;;;6057:59:0;;-1:-1:-1;;;;;6057:9:0;:19;;-1:-1:-1;6057:19:0;;-1:-1:-1;6057:59:0;;6077:8;;6087;;6105:4;;6112:3;;6057:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6126:35:0;;-1:-1:-1;;;6126:35:0;;6150:4;6126:35;;;4860:51:1;4927:18;;;4920:34;;;6126:6:0;-1:-1:-1;;;;;6126:15:0;;-1:-1:-1;6126:15:0;;-1:-1:-1;4833:18:1;;6126:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6171:9;-1:-1:-1;;;;;6171:14:0;;6186:8;6196;6212:10;6206:3;:16;;;;:::i;:::-;6171:57;;-1:-1:-1;;;;;;6171:57:0;;;;;;;-1:-1:-1;;;;;5934:32:1;;;6171:57:0;;;5916:51:1;5983:18;;;5976:34;;;;6026:18;;;6019:34;6101:6;6089:19;;6069:18;;;6062:47;5888:19;;6171:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6238:3;-1:-1:-1;;;;;6238:8:0;;6247:6;2901;6263:10;:16;;;;:::i;:::-;6238:42;;-1:-1:-1;;;;;;6238:42:0;;;;;;;;;;6385:25:1;;;;-1:-1:-1;;;6426:18:1;;;6419:34;6469:18;;;6462:34;6358:18;;6238:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6408:57:0;;-1:-1:-1;;;6408:57:0;;-1:-1:-1;;;;;6408:9:0;:14;;-1:-1:-1;6408:14:0;;-1:-1:-1;6408:57:0;;6423:8;;6433;;6451:4;;6458:6;;6408:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6475:27:0;;-1:-1:-1;;;6475:27:0;;6484:6;6475:27;;;6385:25:1;-1:-1:-1;;;6426:18:1;;;6419:34;6500:1:0;6469:18:1;;;6462:34;6475:3:0;-1:-1:-1;;;;;6475:8:0;;-1:-1:-1;6475:8:0;;-1:-1:-1;6358:18:1;;6475:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6512:37:0;;-1:-1:-1;;;6512:37:0;;-1:-1:-1;;;;;6534:5:0;4878:32:1;;6512:37:0;;;4860:51:1;4927:18;;;4920:34;;;6512:8:0;:13;;-1:-1:-1;6512:13:0;;-1:-1:-1;4833:18:1;;6512:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6567:50;6560:57;;;;;;;;;5503:1121;;;;;;;:::o;4165:1332::-;4293:51;;-1:-1:-1;;;4293:51:0;;-1:-1:-1;;;;;7160:15:1;;;4293:51:0;;;7142:34:1;7192:18;;;7185:34;;;4333:10:0;7235:18:1;;;7228:43;4293:9:0;:19;;;;7077:18:1;;4293:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4285:107;;;;-1:-1:-1;;;4285:107:0;;7766:2:1;4285:107:0;;;7748:21:1;7805:2;7785:18;;;7778:30;7844:34;7824:18;;;7817:62;-1:-1:-1;;;7895:18:1;;;7888:41;7946:19;;4285:107:0;7564:407:1;4285:107:0;4410:51;;-1:-1:-1;;;4410:51:0;;-1:-1:-1;;;;;7160:15:1;;;4410:51:0;;;7142:34:1;7192:18;;;7185:34;;;4450:10:0;7235:18:1;;;7228:43;4410:9:0;:19;;;;7077:18:1;;4410:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4402:107;;;;-1:-1:-1;;;4402:107:0;;8178:2:1;4402:107:0;;;8160:21:1;8217:2;8197:18;;;8190:30;8256:34;8236:18;;;8229:62;-1:-1:-1;;;8307:18:1;;;8300:41;8358:19;;4402:107:0;7976:407:1;4402:107:0;4537:39;;-1:-1:-1;;;4537:39:0;;-1:-1:-1;;;;;4878:32:1;;;4537:39:0;;;4860:51:1;4927:18;;;4920:34;;;4520:14:0;;4537:9;:19;;;;;;4833:18:1;;4537:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4615:24;;-1:-1:-1;;;4615:24:0;;4624:6;4615:24;;;8818:25:1;-1:-1:-1;;;;;8879:32:1;;;8859:18;;;8852:60;8879:32;;-1:-1:-1;;;;;4615:3:0;:8;;;;;;8791:18:1;;4615:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4586:53;;;;4649:12;4675:3;4682:1;4675:8;4671:746;;4699:59;;-1:-1:-1;;;4699:59:0;;-1:-1:-1;;;;;4699:9:0;:19;;;;:59;;4719:8;;4729;;4747:4;;4754:3;;4699:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4772:35:0;;-1:-1:-1;;;4772:35:0;;4796:4;4772:35;;;4860:51:1;4927:18;;;4920:34;;;4772:6:0;-1:-1:-1;;;;;4772:15:0;;-1:-1:-1;4772:15:0;;-1:-1:-1;4833:18:1;;4772:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4821:9;-1:-1:-1;;;;;4821:14:0;;4836:8;4846;4862:10;4856:3;:16;;;;:::i;:::-;4821:57;;-1:-1:-1;;;;;;4821:57:0;;;;;;;-1:-1:-1;;;;;5934:32:1;;;4821:57:0;;;5916:51:1;5983:18;;;5976:34;;;;6026:18;;;6019:34;6101:6;6089:19;;6069:18;;;6062:47;5888:19;;4821:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4671:746;;;5135:16;;-1:-1:-1;;;5135:16:0;;5144:6;5135:16;;;1847:25:1;5091:18:0;;;;-1:-1:-1;;;;;5135:3:0;:8;;;;1820:18:1;;5135:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5088:63;;;;;;;5173:10;5187:1;5173:15;5165:67;;;;-1:-1:-1;;;5165:67:0;;9810:2:1;5165:67:0;;;9792:21:1;9849:2;9829:18;;;9822:30;9888:34;9868:18;;;9861:62;-1:-1:-1;;;9939:18:1;;;9932:37;9986:19;;5165:67:0;9608:403:1;5165:67:0;2858:6;5253:29;5260:16;5266:10;5260:3;:16;:::i;:::-;2858:6;5253;:29::i;:::-;:35;;;;:::i;:::-;5345:60;;;-1:-1:-1;;;;;10357:15:1;;;5345:60:0;;;10339:34:1;10389:18;;;10382:34;;;10452:15;;;10432:18;;;10425:43;10484:18;;;10477:34;;;10527:19;;;10520:35;;;10604:6;10592:19;;10571;;;10564:48;5246:42:0;;-1:-1:-1;5302:5:0;:21;;;;5332:4;;5246:42;;10273:19:1;;5345:60:0;;;;;;;;;;;;5302:104;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4895:522;;4671:746;5470:8;5460;-1:-1:-1;;;;;5432:58:0;5450:8;5440;-1:-1:-1;;;;;5432:58:0;5480:3;5485:4;5432:58;;;;;;11519:25:1;;;11575:2;11560:18;;11553:34;11507:2;11492:18;;11345:248;5432:58:0;;;;;;;;4275:1222;;;;4165:1332;;;;;:::o;2935:241::-;2996:9;3129:1;3134;3129:6;:30;;3158:1;3129:30;;;3149:1;3144;3140;:5;3139:11;;;;;:::i;:::-;;3154:1;3138:17;3129:30;3125:34;2935:241;-1:-1:-1;;;2935:241:0:o;697:131:1:-;-1:-1:-1;;;;;772:31:1;;762:42;;752:70;;818:1;815;808:12;752:70;697:131;:::o;833:863::-;930:6;938;946;954;962;1015:3;1003:9;994:7;990:23;986:33;983:53;;;1032:1;1029;1022:12;983:53;1071:9;1058:23;1090:31;1115:5;1090:31;:::i;:::-;1140:5;-1:-1:-1;1192:2:1;1177:18;;1164:32;;-1:-1:-1;1243:2:1;1228:18;;1215:32;;-1:-1:-1;1298:2:1;1283:18;;1270:32;1321:18;1351:14;;;1348:34;;;1378:1;1375;1368:12;1348:34;1416:6;1405:9;1401:22;1391:32;;1461:7;1454:4;1450:2;1446:13;1442:27;1432:55;;1483:1;1480;1473:12;1432:55;1523:2;1510:16;1549:2;1541:6;1538:14;1535:34;;;1565:1;1562;1555:12;1535:34;1610:7;1605:2;1596:6;1592:2;1588:15;1584:24;1581:37;1578:57;;;1631:1;1628;1621:12;1578:57;833:863;;;;-1:-1:-1;833:863:1;;-1:-1:-1;1662:2:1;1654:11;;1684:6;833:863;-1:-1:-1;;;833:863:1:o;1883:159::-;1950:20;;2010:6;1999:18;;1989:29;;1979:57;;2032:1;2029;2022:12;1979:57;1883:159;;;:::o;2047:598::-;2141:6;2149;2157;2165;2173;2226:3;2214:9;2205:7;2201:23;2197:33;2194:53;;;2243:1;2240;2233:12;2194:53;2282:9;2269:23;2301:31;2326:5;2301:31;:::i;:::-;2351:5;-1:-1:-1;2403:2:1;2388:18;;2375:32;;-1:-1:-1;2459:2:1;2444:18;;2431:32;2472:33;2431:32;2472:33;:::i;:::-;2524:7;-1:-1:-1;2578:2:1;2563:18;;2550:32;;-1:-1:-1;2601:38:1;2634:3;2619:19;;2601:38;:::i;:::-;2591:48;;2047:598;;;;;;;;:::o;3644:127::-;3705:10;3700:3;3696:20;3693:1;3686:31;3736:4;3733:1;3726:15;3760:4;3757:1;3750:15;3776:217;3816:1;3842;3832:132;;3886:10;3881:3;3877:20;3874:1;3867:31;3921:4;3918:1;3911:15;3949:4;3946:1;3939:15;3832:132;-1:-1:-1;3978:9:1;;3776:217::o;3998:683::-;4117:6;4125;4133;4141;4149;4157;4210:3;4198:9;4189:7;4185:23;4181:33;4178:53;;;4227:1;4224;4217:12;4178:53;4266:9;4253:23;4285:31;4310:5;4285:31;:::i;:::-;4335:5;-1:-1:-1;4387:2:1;4372:18;;4359:32;;-1:-1:-1;4443:2:1;4428:18;;4415:32;4456:33;4415:32;4456:33;:::i;:::-;4508:7;-1:-1:-1;4562:2:1;4547:18;;4534:32;;-1:-1:-1;4613:3:1;4598:19;;4585:33;;-1:-1:-1;4637:38:1;4670:3;4655:19;;4637:38;:::i;:::-;4627:48;;3998:683;;;;;;;;:::o;4965:447::-;-1:-1:-1;;;;;5252:15:1;;;5234:34;;5299:2;5284:18;;5277:34;;;;5347:15;;5342:2;5327:18;;5320:43;5394:2;5379:18;;5372:34;;;;5183:3;5168:19;;4965:447::o;5417:265::-;5490:9;;;5521;;5538:15;;;5532:22;;5518:37;5508:168;;5598:10;5593:3;5589:20;5586:1;5579:31;5633:4;5630:1;5623:15;5661:4;5658:1;5651:15;5508:168;5417:265;;;;:::o;7282:277::-;7349:6;7402:2;7390:9;7381:7;7377:23;7373:32;7370:52;;;7418:1;7415;7408:12;7370:52;7450:9;7444:16;7503:5;7496:13;7489:21;7482:5;7479:32;7469:60;;7525:1;7522;7515:12;8388:251;8458:6;8511:2;8499:9;8490:7;8486:23;8482:32;8479:52;;;8527:1;8524;8517:12;8479:52;8559:9;8553:16;8578:31;8603:5;8578:31;:::i;8923:245::-;9002:6;9010;9063:2;9051:9;9042:7;9038:23;9034:32;9031:52;;;9079:1;9076;9069:12;9031:52;-1:-1:-1;;9102:16:1;;9158:2;9143:18;;;9137:25;9102:16;;9137:25;;-1:-1:-1;8923:245:1:o;9173:430::-;9279:6;9287;9295;9303;9311;9364:3;9352:9;9343:7;9339:23;9335:33;9332:53;;;9381:1;9378;9371:12;9332:53;-1:-1:-1;;9404:16:1;;9460:2;9445:18;;9439:25;9504:2;9489:18;;9483:25;9548:2;9533:18;;9527:25;9592:3;9577:19;;;9571:26;9404:16;;9439:25;;-1:-1:-1;9483:25:1;9527;-1:-1:-1;9571:26:1;;-1:-1:-1;9173:430:1;-1:-1:-1;9173:430:1:o;10623:717::-;10855:1;10851;10846:3;10842:11;10838:19;10830:6;10826:32;10815:9;10808:51;10789:4;10878:2;10916:6;10911:2;10900:9;10896:18;10889:34;10959:2;10954;10943:9;10939:18;10932:30;10991:6;10985:13;11034:6;11029:2;11018:9;11014:18;11007:34;11059:1;11069:141;11083:6;11080:1;11077:13;11069:141;;;11179:14;;;11175:23;;11169:30;11144:17;;;11163:3;11140:27;11133:67;11098:10;;11069:141;;;11073:3;11260:1;11254:3;11245:6;11234:9;11230:22;11226:32;11219:43;11330:3;11323:2;11319:7;11314:2;11306:6;11302:15;11298:29;11287:9;11283:45;11279:55;11271:63;;;;10623:717;;;;;;:::o

Swarm Source

ipfs://f163a8ff7ebd67c682033b2ff54dc5d3f94fef350304f009b2b6be002055b87b

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.