ETH Price: $2,606.09 (-1.48%)

Contract

0x60744434d6339a6B27d73d9Eda62b6F66a0a04FA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Flash Loan212078292024-11-17 13:49:1187 days ago1731851351IN
Sky: MCD Flash
0 ETH0.201015189.93544882
Flash Loan212074892024-11-17 12:40:4787 days ago1731847247IN
Sky: MCD Flash
0 ETH0.1083658810.80956448
Flash Loan198626322024-05-13 17:36:59274 days ago1715621819IN
Sky: MCD Flash
0 ETH0.0039672719
Flash Loan198626192024-05-13 17:34:23274 days ago1715621663IN
Sky: MCD Flash
0 ETH0.0043832621
Flash Loan198625602024-05-13 17:22:35274 days ago1715620955IN
Sky: MCD Flash
0 ETH0.0054331227
Deny147875322022-05-16 17:13:591002 days ago1652721239IN
Sky: MCD Flash
0 ETH0.000569924.44887661
Rely147875272022-05-16 17:12:551002 days ago1652721175IN
Sky: MCD Flash
0 ETH0.0010991723.23929554

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DssFlash

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2022-05-16
*/

// hevm: flattened sources of src/flash.sol
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity =0.6.12 >=0.6.12;

////// src/interface/IERC3156FlashBorrower.sol
// Copyright (C) 2021 Dai Foundation
//
// 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.6.12; */

interface IERC3156FlashBorrower {

    /**
     * @dev Receive a flash loan.
     * @param initiator The initiator of the loan.
     * @param token The loan currency.
     * @param amount The amount of tokens lent.
     * @param fee The additional amount of tokens to repay.
     * @param data Arbitrary data structure, intended to contain user-defined parameters.
     * @return The keccak256 hash of "ERC3156FlashBorrower.onFlashLoan"
     */
    function onFlashLoan(
        address initiator,
        address token,
        uint256 amount,
        uint256 fee,
        bytes calldata data
    ) external returns (bytes32);
}

////// src/interface/IERC3156FlashLender.sol
// Copyright (C) 2021 Dai Foundation
//
// 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.6.12; */

/* import "./IERC3156FlashBorrower.sol"; */

interface IERC3156FlashLender {

    /**
     * @dev The amount of currency available to be lent.
     * @param token The loan currency.
     * @return The amount of `token` that can be borrowed.
     */
    function maxFlashLoan(
        address token
    ) external view returns (uint256);

    /**
     * @dev The fee to be charged for a given loan.
     * @param token The loan currency.
     * @param amount The amount of tokens lent.
     * @return The amount of `token` to be charged for the loan, on top of the returned principal.
     */
    function flashFee(
        address token,
        uint256 amount
    ) external view returns (uint256);

    /**
     * @dev Initiate a flash loan.
     * @param receiver The receiver of the tokens in the loan, and the receiver of the callback.
     * @param token The loan currency.
     * @param amount The amount of tokens lent.
     * @param data Arbitrary data structure, intended to contain user-defined parameters.
     */
    function flashLoan(
        IERC3156FlashBorrower receiver,
        address token,
        uint256 amount,
        bytes calldata data
    ) external returns (bool);
}

////// src/interface/IVatDaiFlashBorrower.sol
// Copyright (C) 2021 Dai Foundation
//
// 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.6.12; */

interface IVatDaiFlashBorrower {

    /**
     * @dev Receive a flash loan.
     * @param initiator The initiator of the loan.
     * @param amount The amount of tokens lent. [rad]
     * @param fee The additional amount of tokens to repay. [rad]
     * @param data Arbitrary data structure, intended to contain user-defined parameters.
     * @return The keccak256 hash of "IVatDaiFlashLoanReceiver.onVatDaiFlashLoan"
     */
    function onVatDaiFlashLoan(
        address initiator,
        uint256 amount,
        uint256 fee,
        bytes calldata data
    ) external returns (bytes32);

}

////// src/interface/IVatDaiFlashLender.sol
// Copyright (C) 2021 Dai Foundation
//
// 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.6.12; */

/* import "./IVatDaiFlashBorrower.sol"; */

interface IVatDaiFlashLender {

    /**
     * @dev Initiate a flash loan.
     * @param receiver The receiver of the tokens in the loan, and the receiver of the callback.
     * @param amount The amount of tokens lent. [rad]
     * @param data Arbitrary data structure, intended to contain user-defined parameters.
     */
    function vatDaiFlashLoan(
        IVatDaiFlashBorrower receiver,
        uint256 amount,
        bytes calldata data
    ) external returns (bool);
}

////// src/flash.sol
// Copyright (C) 2021 Dai Foundation
//
// 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.6.12; */

/* import "./interface/IERC3156FlashLender.sol"; */
/* import "./interface/IERC3156FlashBorrower.sol"; */
/* import "./interface/IVatDaiFlashLender.sol"; */

interface DaiLike {
    function balanceOf(address) external returns (uint256);
    function transferFrom(address, address, uint256) external returns (bool);
    function approve(address, uint256) external returns (bool);
}

interface DaiJoinLike {
    function dai() external view returns (address);
    function vat() external view returns (address);
    function join(address, uint256) external;
    function exit(address, uint256) external;
}

interface VatLike_4 {
    function hope(address) external;
    function dai(address) external view returns (uint256);
    function live() external view returns (uint256);
    function move(address, address, uint256) external;
    function heal(uint256) external;
    function suck(address, address, uint256) external;
}

contract DssFlash is IERC3156FlashLender, IVatDaiFlashLender {

    // --- Auth ---
    function rely(address usr) external auth { wards[usr] = 1; emit Rely(usr); }
    function deny(address usr) external auth { wards[usr] = 0; emit Deny(usr); }
    mapping (address => uint256) public wards;
    modifier auth {
        require(wards[msg.sender] == 1, "DssFlash/not-authorized");
        _;
    }

    // --- Data ---
    VatLike_4     public immutable vat;
    DaiJoinLike public immutable daiJoin;
    DaiLike     public immutable dai;

    uint256     public  max;     // Maximum borrowable Dai  [wad]
    uint256     private locked;  // Reentrancy guard

    bytes32 public constant CALLBACK_SUCCESS = keccak256("ERC3156FlashBorrower.onFlashLoan");
    bytes32 public constant CALLBACK_SUCCESS_VAT_DAI = keccak256("VatDaiFlashBorrower.onVatDaiFlashLoan");

    // --- Events ---
    event Rely(address indexed usr);
    event Deny(address indexed usr);
    event File(bytes32 indexed what, uint256 data);
    event FlashLoan(address indexed receiver, address token, uint256 amount, uint256 fee);
    event VatDaiFlashLoan(address indexed receiver, uint256 amount, uint256 fee);

    modifier lock {
        require(locked == 0, "DssFlash/reentrancy-guard");
        locked = 1;
        _;
        locked = 0;
    }

    // --- Init ---
    constructor(address daiJoin_) public {
        wards[msg.sender] = 1;
        emit Rely(msg.sender);

        VatLike_4 vat_ = vat = VatLike_4(DaiJoinLike(daiJoin_).vat());
        daiJoin = DaiJoinLike(daiJoin_);
        DaiLike dai_ = dai = DaiLike(DaiJoinLike(daiJoin_).dai());

        vat_.hope(daiJoin_);
        dai_.approve(daiJoin_, type(uint256).max);
    }

    // --- Math ---
    uint256 constant RAY = 10 ** 27;
    uint256 constant RAD = 10 ** 45;
    function _mul(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require(y == 0 || (z = x * y) / y == x);
    }

    // --- Administration ---
    function file(bytes32 what, uint256 data) external auth {
        if (what == "max") {
            // Add an upper limit of 10^27 DAI to avoid breaking technical assumptions of DAI << 2^256 - 1
            require((max = data) <= RAD, "DssFlash/ceiling-too-high");
        }
        else revert("DssFlash/file-unrecognized-param");
        emit File(what, data);
    }

    // --- ERC 3156 Spec ---
    function maxFlashLoan(
        address token
    ) external override view returns (uint256) {
        if (token == address(dai) && locked == 0) {
            return max;
        } else {
            return 0;
        }
    }

    function flashFee(
        address token,
        uint256 amount
    ) external override view returns (uint256) {
        amount;
        require(token == address(dai), "DssFlash/token-unsupported");

        return 0;
    }

    function flashLoan(
        IERC3156FlashBorrower receiver,
        address token,
        uint256 amount,
        bytes calldata data
    ) external override lock returns (bool) {
        require(token == address(dai), "DssFlash/token-unsupported");
        require(amount <= max, "DssFlash/ceiling-exceeded");
        require(vat.live() == 1, "DssFlash/vat-not-live");

        uint256 amt = _mul(amount, RAY);

        vat.suck(address(this), address(this), amt);
        daiJoin.exit(address(receiver), amount);

        emit FlashLoan(address(receiver), token, amount, 0);

        require(
            receiver.onFlashLoan(msg.sender, token, amount, 0, data) == CALLBACK_SUCCESS,
            "DssFlash/callback-failed"
        );

        dai.transferFrom(address(receiver), address(this), amount);
        daiJoin.join(address(this), amount);
        vat.heal(amt);

        return true;
    }

    // --- Vat Dai Flash Loan ---
    function vatDaiFlashLoan(
        IVatDaiFlashBorrower receiver,          // address of conformant IVatDaiFlashBorrower
        uint256 amount,                         // amount to flash loan [rad]
        bytes calldata data                     // arbitrary data to pass to the receiver
    ) external override lock returns (bool) {
        require(amount <= _mul(max, RAY), "DssFlash/ceiling-exceeded");
        require(vat.live() == 1, "DssFlash/vat-not-live");

        vat.suck(address(this), address(receiver), amount);

        emit VatDaiFlashLoan(address(receiver), amount, 0);

        require(
            receiver.onVatDaiFlashLoan(msg.sender, amount, 0, data) == CALLBACK_SUCCESS_VAT_DAI,
            "DssFlash/callback-failed"
        );

        vat.heal(amount);

        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"daiJoin_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Deny","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"File","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"FlashLoan","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Rely","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"VatDaiFlashLoan","type":"event"},{"inputs":[],"name":"CALLBACK_SUCCESS","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CALLBACK_SUCCESS_VAT_DAI","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dai","outputs":[{"internalType":"contract DaiLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daiJoin","outputs":[{"internalType":"contract DaiJoinLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"flashFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC3156FlashBorrower","name":"receiver","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"flashLoan","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"max","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"maxFlashLoan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vat","outputs":[{"internalType":"contract VatLike_4","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IVatDaiFlashBorrower","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"vatDaiFlashLoan","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60e06040523480156200001157600080fd5b5060405162001e9c38038062001e9c833981810160405260208110156200003757600080fd5b810190808051906020019092919050505060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6060405160405180910390a260008173ffffffffffffffffffffffffffffffffffffffff166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b1580156200011857600080fd5b505afa1580156200012d573d6000803e3d6000fd5b505050506040513d60208110156200014457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525090508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b8152505060008273ffffffffffffffffffffffffffffffffffffffff1663f4b9fa756040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020c57600080fd5b505afa15801562000221573d6000803e3d6000fd5b505050506040513d60208110156200023857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b81525090508173ffffffffffffffffffffffffffffffffffffffff1663a3b22fc4846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015620002ea57600080fd5b505af1158015620002ff573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156200039557600080fd5b505af1158015620003aa573d6000803e3d6000fd5b505050506040513d6020811015620003c157600080fd5b81019080805190602001909291905050505050505060805160601c60a05160601c60c05160601c611a546200044860003980610d6752806113505280611587528061190552806119d0525080611097528061143b52806118df525080610764528061089852806109ac5280610c475280610ea25280610fd052806114e45250611a546000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638237e5381161008c578063bf353dbb11610066578063bf353dbb14610427578063c11645bc1461047f578063d9d98ce4146104b3578063f4b9fa7514610515576100ea565b80638237e538146103a75780638878e8c7146103c55780639c52a7f1146103e3576100ea565b80635cffe9de116100c85780635cffe9de14610214578063613255ab146102ed57806365fae35e146103455780636ac5db1914610389576100ea565b806329ae8114146100ef57806336569e77146101275780633f03653f1461015b575b600080fd5b6101256004803603604081101561010557600080fd5b810190808035906020019092919080359060200190929190505050610549565b005b61012f610762565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101fc6004803603606081101561017157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156101b857600080fd5b8201836020820111156101ca57600080fd5b803590602001918460018302840111640100000000831117156101ec57600080fd5b9091929391929390505050610786565b60405180821515815260200191505060405180910390f35b6102d56004803603608081101561022a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b9091929391929390505050610ce4565b60405180821515815260200191505060405180910390f35b61032f6004803603602081101561030357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611583565b6040518082815260200191505060405180910390f35b6103876004803603602081101561035b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115fb565b005b610391611739565b6040518082815260200191505060405180910390f35b6103af61173f565b6040518082815260200191505060405180910390f35b6103cd611763565b6040518082815260200191505060405180910390f35b610425600480360360208110156103f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611787565b005b6104696004803603602081101561043d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118c5565b6040518082815260200191505060405180910390f35b6104876118dd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ff600480360360408110156104c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611901565b6040518082815260200191505060405180910390f35b61051d6119ce565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f447373466c6173682f6e6f742d617574686f72697a656400000000000000000081525060200191505060405180910390fd5b7f6d617800000000000000000000000000000000000000000000000000000000008214156106b857722cd76fe086b93ce2f768a00b22a0000000000081600181905511156106b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f447373466c6173682f6365696c696e672d746f6f2d686967680000000000000081525060200191505060405180910390fd5b610726565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f447373466c6173682f66696c652d756e7265636f676e697a65642d706172616d81525060200191505060405180910390fd5b817fe986e40cc8c151830d4f61050f4fb2e4add8567caad2d5f5496f9158e91fe4c7826040518082815260200191505060405180910390a25050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080600254146107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f447373466c6173682f7265656e7472616e63792d67756172640000000000000081525060200191505060405180910390fd5b600160028190555061081f6001546b033b2e3c9fd0803ce80000006119f2565b841115610894576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f447373466c6173682f6365696c696e672d65786365656465640000000000000081525060200191505060405180910390fd5b60017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156108fc57600080fd5b505afa158015610910573d6000803e3d6000fd5b505050506040513d602081101561092657600080fd5b8101908080519060200190929190505050146109aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373466c6173682f7661742d6e6f742d6c697665000000000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f24e23eb3087876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610a5957600080fd5b505af1158015610a6d573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fbca56acc64a74a4c131755895cf7f72fc3f9e39af64241f7ad0f77e86f41ada9856000604051808381526020018281526020019250505060405180910390a27f0cceaa4ec34688ca5ae62e4ade215985d2d08dffd7fdb3eb79768a5dc372e8b18573ffffffffffffffffffffffffffffffffffffffff166342bf04b63387600088886040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610b9757600080fd5b505af1158015610bab573d6000803e3d6000fd5b505050506040513d6020811015610bc157600080fd5b810190808051906020019092919050505014610c45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f447373466c6173682f63616c6c6261636b2d6661696c6564000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f37ac61c856040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b50505050600190506000600281905550949350505050565b60008060025414610d5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f447373466c6173682f7265656e7472616e63792d67756172640000000000000081525060200191505060405180910390fd5b60016002819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610e26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f447373466c6173682f746f6b656e2d756e737570706f7274656400000000000081525060200191505060405180910390fd5b600154841115610e9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f447373466c6173682f6365696c696e672d65786365656465640000000000000081525060200191505060405180910390fd5b60017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0657600080fd5b505afa158015610f1a573d6000803e3d6000fd5b505050506040513d6020811015610f3057600080fd5b810190808051906020019092919050505014610fb4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373466c6173682f7661742d6e6f742d6c697665000000000000000000000081525060200191505060405180910390fd5b6000610fcc856b033b2e3c9fd0803ce80000006119f2565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f24e23eb3030846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ef693bed88876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561112657600080fd5b505af115801561113a573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff167f0d7d75e01ab95780d3cd1c8ec0dd6c2ce19e3a20427eec8bf53283b6fb8e95f087876000604051808473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a27f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98773ffffffffffffffffffffffffffffffffffffffff166323e30c8b33898960008a8a6040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050975050505050505050602060405180830381600087803b1580156112a057600080fd5b505af11580156112b4573d6000803e3d6000fd5b505050506040513d60208110156112ca57600080fd5b81019080805190602001909291905050501461134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f447373466c6173682f63616c6c6261636b2d6661696c6564000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd8830886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156113fd57600080fd5b505af1158015611411573d6000803e3d6000fd5b505050506040513d602081101561142757600080fd5b8101908080519060200190929190505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633b4da69f30876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156114ca57600080fd5b505af11580156114de573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f37ac61c826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561155557600080fd5b505af1158015611569573d6000803e3d6000fd5b505050506001915050600060028190555095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115e257506000600254145b156115f15760015490506115f6565b600090505b919050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f447373466c6173682f6e6f742d617574686f72697a656400000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6060405160405180910390a250565b60015481565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd981565b7f0cceaa4ec34688ca5ae62e4ade215985d2d08dffd7fdb3eb79768a5dc372e8b181565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461183b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f447373466c6173682f6e6f742d617574686f72697a656400000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b60405160405180910390a250565b60006020528060005260406000206000915090505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f447373466c6173682f746f6b656e2d756e737570706f7274656400000000000081525060200191505060405180910390fd5b6000905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080821480611a0f5750828283850292508281611a0c57fe5b04145b611a1857600080fd5b9291505056fea2646970667358221220f774a3f26481d10f2bda755f612e56175f1c6717be6a323972f3c5088d9db37b64736f6c634300060c00330000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638237e5381161008c578063bf353dbb11610066578063bf353dbb14610427578063c11645bc1461047f578063d9d98ce4146104b3578063f4b9fa7514610515576100ea565b80638237e538146103a75780638878e8c7146103c55780639c52a7f1146103e3576100ea565b80635cffe9de116100c85780635cffe9de14610214578063613255ab146102ed57806365fae35e146103455780636ac5db1914610389576100ea565b806329ae8114146100ef57806336569e77146101275780633f03653f1461015b575b600080fd5b6101256004803603604081101561010557600080fd5b810190808035906020019092919080359060200190929190505050610549565b005b61012f610762565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101fc6004803603606081101561017157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156101b857600080fd5b8201836020820111156101ca57600080fd5b803590602001918460018302840111640100000000831117156101ec57600080fd5b9091929391929390505050610786565b60405180821515815260200191505060405180910390f35b6102d56004803603608081101561022a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b9091929391929390505050610ce4565b60405180821515815260200191505060405180910390f35b61032f6004803603602081101561030357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611583565b6040518082815260200191505060405180910390f35b6103876004803603602081101561035b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115fb565b005b610391611739565b6040518082815260200191505060405180910390f35b6103af61173f565b6040518082815260200191505060405180910390f35b6103cd611763565b6040518082815260200191505060405180910390f35b610425600480360360208110156103f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611787565b005b6104696004803603602081101561043d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118c5565b6040518082815260200191505060405180910390f35b6104876118dd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ff600480360360408110156104c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611901565b6040518082815260200191505060405180910390f35b61051d6119ce565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f447373466c6173682f6e6f742d617574686f72697a656400000000000000000081525060200191505060405180910390fd5b7f6d617800000000000000000000000000000000000000000000000000000000008214156106b857722cd76fe086b93ce2f768a00b22a0000000000081600181905511156106b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f447373466c6173682f6365696c696e672d746f6f2d686967680000000000000081525060200191505060405180910390fd5b610726565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f447373466c6173682f66696c652d756e7265636f676e697a65642d706172616d81525060200191505060405180910390fd5b817fe986e40cc8c151830d4f61050f4fb2e4add8567caad2d5f5496f9158e91fe4c7826040518082815260200191505060405180910390a25050565b7f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b81565b600080600254146107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f447373466c6173682f7265656e7472616e63792d67756172640000000000000081525060200191505060405180910390fd5b600160028190555061081f6001546b033b2e3c9fd0803ce80000006119f2565b841115610894576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f447373466c6173682f6365696c696e672d65786365656465640000000000000081525060200191505060405180910390fd5b60017f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b73ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156108fc57600080fd5b505afa158015610910573d6000803e3d6000fd5b505050506040513d602081101561092657600080fd5b8101908080519060200190929190505050146109aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373466c6173682f7661742d6e6f742d6c697665000000000000000000000081525060200191505060405180910390fd5b7f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b73ffffffffffffffffffffffffffffffffffffffff1663f24e23eb3087876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610a5957600080fd5b505af1158015610a6d573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fbca56acc64a74a4c131755895cf7f72fc3f9e39af64241f7ad0f77e86f41ada9856000604051808381526020018281526020019250505060405180910390a27f0cceaa4ec34688ca5ae62e4ade215985d2d08dffd7fdb3eb79768a5dc372e8b18573ffffffffffffffffffffffffffffffffffffffff166342bf04b63387600088886040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610b9757600080fd5b505af1158015610bab573d6000803e3d6000fd5b505050506040513d6020811015610bc157600080fd5b810190808051906020019092919050505014610c45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f447373466c6173682f63616c6c6261636b2d6661696c6564000000000000000081525060200191505060405180910390fd5b7f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b73ffffffffffffffffffffffffffffffffffffffff1663f37ac61c856040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b50505050600190506000600281905550949350505050565b60008060025414610d5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f447373466c6173682f7265656e7472616e63792d67756172640000000000000081525060200191505060405180910390fd5b60016002819055507f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610e26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f447373466c6173682f746f6b656e2d756e737570706f7274656400000000000081525060200191505060405180910390fd5b600154841115610e9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f447373466c6173682f6365696c696e672d65786365656465640000000000000081525060200191505060405180910390fd5b60017f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b73ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0657600080fd5b505afa158015610f1a573d6000803e3d6000fd5b505050506040513d6020811015610f3057600080fd5b810190808051906020019092919050505014610fb4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373466c6173682f7661742d6e6f742d6c697665000000000000000000000081525060200191505060405180910390fd5b6000610fcc856b033b2e3c9fd0803ce80000006119f2565b90507f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b73ffffffffffffffffffffffffffffffffffffffff1663f24e23eb3030846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050507f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a2873ffffffffffffffffffffffffffffffffffffffff1663ef693bed88876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561112657600080fd5b505af115801561113a573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff167f0d7d75e01ab95780d3cd1c8ec0dd6c2ce19e3a20427eec8bf53283b6fb8e95f087876000604051808473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a27f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98773ffffffffffffffffffffffffffffffffffffffff166323e30c8b33898960008a8a6040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050975050505050505050602060405180830381600087803b1580156112a057600080fd5b505af11580156112b4573d6000803e3d6000fd5b505050506040513d60208110156112ca57600080fd5b81019080805190602001909291905050501461134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f447373466c6173682f63616c6c6261636b2d6661696c6564000000000000000081525060200191505060405180910390fd5b7f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f73ffffffffffffffffffffffffffffffffffffffff166323b872dd8830886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156113fd57600080fd5b505af1158015611411573d6000803e3d6000fd5b505050506040513d602081101561142757600080fd5b8101908080519060200190929190505050507f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a2873ffffffffffffffffffffffffffffffffffffffff16633b4da69f30876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156114ca57600080fd5b505af11580156114de573d6000803e3d6000fd5b505050507f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b73ffffffffffffffffffffffffffffffffffffffff1663f37ac61c826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561155557600080fd5b505af1158015611569573d6000803e3d6000fd5b505050506001915050600060028190555095945050505050565b60007f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115e257506000600254145b156115f15760015490506115f6565b600090505b919050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f447373466c6173682f6e6f742d617574686f72697a656400000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6060405160405180910390a250565b60015481565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd981565b7f0cceaa4ec34688ca5ae62e4ade215985d2d08dffd7fdb3eb79768a5dc372e8b181565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461183b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f447373466c6173682f6e6f742d617574686f72697a656400000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b60405160405180910390a250565b60006020528060005260406000206000915090505481565b7f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a2881565b60007f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f447373466c6173682f746f6b656e2d756e737570706f7274656400000000000081525060200191505060405180910390fd5b6000905092915050565b7f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f81565b600080821480611a0f5750828283850292508281611a0c57fe5b04145b611a1857600080fd5b9291505056fea2646970667358221220f774a3f26481d10f2bda755f612e56175f1c6717be6a323972f3c5088d9db37b64736f6c634300060c0033

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

0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28

-----Decoded View---------------
Arg [0] : daiJoin_ (address): 0x9759A6Ac90977b93B58547b4A71c78317f391A28

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28


Deployed Bytecode Sourcemap

8128:4723:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10159:375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8563:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12022:826;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11052:927;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10572:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8219:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8688:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8811:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8906:101;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8301:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8383:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8604:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10812:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8647:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10159:375;8485:1;8464:5;:17;8470:10;8464:17;;;;;;;;;;;;;;;;:22;8456:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10230:13:::1;:4;:13;10226:268;;;9977:8;10383:4;10377:3;:10;;;10376:19;;10368:57;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10226:268;;;10452:42;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;10226:268;10515:4;10510:16;10521:4;10510:16;;;;;;;;;;;;;;;;;;10159:375:::0;;:::o;8563:34::-;;;:::o;12022:826::-;12352:4;9388:1;9378:6;;:11;9370:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9439:1;9430:6;:10;;;;12387:14:::1;12392:3;;9939:8;12387:4;:14::i;:::-;12377:6;:24;;12369:62;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12464:1;12450:3;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;:15;12442:49;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12504:3;:8;;;12521:4;12536:8;12547:6;12504:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12596:8;12572:45;;;12607:6;12615:1;12572:45;;;;;;;;;;;;;;;;;;;;;;;;8957:50;12652:8;:26;;;12679:10;12691:6;12699:1;12702:4;;12652:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;:83;12630:157;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12800:3;:8;;;12809:6;12800:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12836:4;12829:11;;9472:1:::0;9463:6;:10;;;;12022:826;;;;;;:::o;11052:927::-;11230:4;9388:1;9378:6;;:11;9370:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9439:1;9430:6;:10;;;;11272:3:::1;11255:21;;:5;:21;;;11247:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11336:3;;11326:6;:13;;11318:51;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11402:1;11388:3;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;:15;11380:49;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11442:11;11456:17;11461:6;9939:8;11456:4;:17::i;:::-;11442:31;;11486:3;:8;;;11503:4;11518;11525:3;11486:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11540:7;:12;;;11561:8;11572:6;11540:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11615:8;11597:46;;;11626:5;11633:6;11641:1;11597:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8854:45;11678:8;:20;;;11699:10;11711:5;11718:6;11726:1;11729:4;;11678:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;:76;11656:150;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11819:3;:16;;;11844:8;11863:4;11870:6;11819:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;11888:7;:12;;;11909:4;11916:6;11888:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11934:3;:8;;;11943:3;11934:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11967:4;11960:11;;;9472:1:::0;9463:6;:10;;;;11052:927;;;;;;;:::o;10572:232::-;10657:7;10698:3;10681:21;;:5;:21;;;:36;;;;;10716:1;10706:6;;:11;10681:36;10677:120;;;10741:3;;10734:10;;;;10677:120;10784:1;10777:8;;10572:232;;;;:::o;8219:76::-;8485:1;8464:5;:17;8470:10;8464:17;;;;;;;;;;;;;;;;:22;8456:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8275:1:::1;8262:5;:10:::0;8268:3:::1;8262:10;;;;;;;;;;;;;;;:14;;;;8288:3;8283:9;;;;;;;;;;;;8219:76:::0;:::o;8688:23::-;;;;:::o;8811:88::-;8854:45;8811:88;:::o;8906:101::-;8957:50;8906:101;:::o;8301:76::-;8485:1;8464:5;:17;8470:10;8464:17;;;;;;;;;;;;;;;;:22;8456:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8357:1:::1;8344:5:::0;:10:::1;8350:3;8344:10;;;;;;;;;;;;;;;:14;;;;8370:3;8365:9;;;;;;;;;;;;8301:76:::0;:::o;8383:41::-;;;;;;;;;;;;;;;;;:::o;8604:36::-;;;:::o;10812:232::-;10918:7;10980:3;10963:21;;:5;:21;;;10955:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11035:1;11028:8;;10812:232;;;;:::o;8647:32::-;;;:::o;9992:128::-;10051:9;10086:1;10081;:6;:30;;;;10110:1;10105;10100;10096;:5;10092:9;;;10091:15;;;;;;:20;10081:30;10073:39;;;;;;9992:128;;;;:::o

Swarm Source

ipfs://f774a3f26481d10f2bda755f612e56175f1c6717be6a323972f3c5088d9db37b

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Sky (formerly Maker) enables users to get rewarded for non-custodial savings.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.