ETH Price: $3,322.71 (-0.50%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Transaction Hash
Method
Block
From
To
0x4aaf5df630ea00f9111a6d79c81dc276a44572da07bda69c6a6bb84e83ec8e18 Transfer(pending)2025-01-26 12:53:518 hrs ago1737896031IN
MakerDAO: sDAI Token
0 ETH(Pending)(Pending)
Approve217107132025-01-26 19:15:111 hr ago1737918911IN
MakerDAO: sDAI Token
0 ETH0.000298336.40339897
Transfer217104562025-01-26 18:23:352 hrs ago1737915815IN
MakerDAO: sDAI Token
0 ETH0.000300966.45422253
Approve217097852025-01-26 16:08:234 hrs ago1737907703IN
MakerDAO: sDAI Token
0 ETH0.000395048.47923697
Redeem217096072025-01-26 15:32:355 hrs ago1737905555IN
MakerDAO: sDAI Token
0 ETH0.001398067.77201427
Transfer217094712025-01-26 15:05:235 hrs ago1737903923IN
MakerDAO: sDAI Token
0 ETH0.000142834.83665881
Approve217091722025-01-26 14:05:236 hrs ago1737900323IN
MakerDAO: sDAI Token
0 ETH0.000205074.43133045
Approve217090282025-01-26 13:36:357 hrs ago1737898595IN
MakerDAO: sDAI Token
0 ETH0.000148923.19645709
Deposit217087712025-01-26 12:44:478 hrs ago1737895487IN
MakerDAO: sDAI Token
0 ETH0.00056352.98084398
Transfer217073872025-01-26 8:05:4712 hrs ago1737878747IN
MakerDAO: sDAI Token
0 ETH0.000117693.98376071
Transfer217069392025-01-26 6:35:4714 hrs ago1737873347IN
MakerDAO: sDAI Token
0 ETH0.000066492.71646709
Redeem217059442025-01-26 3:16:1117 hrs ago1737861371IN
MakerDAO: sDAI Token
0 ETH0.000862575.16124455
Deposit217045482025-01-25 22:36:2322 hrs ago1737844583IN
MakerDAO: sDAI Token
0 ETH0.000848594.94366144
Deposit217045412025-01-25 22:34:5922 hrs ago1737844499IN
MakerDAO: sDAI Token
0 ETH0.000851944.82816372
Deposit217045342025-01-25 22:33:3522 hrs ago1737844415IN
MakerDAO: sDAI Token
0 ETH0.000870614.9471669
Deposit217045122025-01-25 22:29:1122 hrs ago1737844151IN
MakerDAO: sDAI Token
0 ETH0.000897255.86931747
Redeem217043312025-01-25 21:52:5923 hrs ago1737841979IN
MakerDAO: sDAI Token
0 ETH0.000993265.96049349
Approve217041132025-01-25 21:08:4723 hrs ago1737839327IN
MakerDAO: sDAI Token
0 ETH0.000223344.8
Approve217040862025-01-25 21:03:1124 hrs ago1737838991IN
MakerDAO: sDAI Token
0 ETH0.000223194.79677121
Approve217040572025-01-25 20:57:2324 hrs ago1737838643IN
MakerDAO: sDAI Token
0 ETH0.000207344.45607962
Approve217040132025-01-25 20:48:2324 hrs ago1737838103IN
MakerDAO: sDAI Token
0 ETH0.000193394.15634313
Approve217039202025-01-25 20:29:3524 hrs ago1737836975IN
MakerDAO: sDAI Token
0 ETH0.00020624.4317153
Approve217035982025-01-25 19:25:1125 hrs ago1737833111IN
MakerDAO: sDAI Token
0 ETH0.00021324.60112571
Deposit217035822025-01-25 19:21:5925 hrs ago1737832919IN
MakerDAO: sDAI Token
0 ETH0.000966415.24603585
Approve217035452025-01-25 19:14:3525 hrs ago1737832475IN
MakerDAO: sDAI Token
0 ETH0.000243825.26326388
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
217110792025-01-26 20:28:5934 mins ago1737923339
0x83F20F44...7f942BEeA
0 ETH
217110792025-01-26 20:28:5934 mins ago1737923339
0x83F20F44...7f942BEeA
0 ETH
217110792025-01-26 20:28:5934 mins ago1737923339
0x83F20F44...7f942BEeA
0 ETH
217110792025-01-26 20:28:5934 mins ago1737923339
0x83F20F44...7f942BEeA
0 ETH
217110792025-01-26 20:28:5934 mins ago1737923339
0x83F20F44...7f942BEeA
0 ETH
217110792025-01-26 20:28:5934 mins ago1737923339
0x83F20F44...7f942BEeA
0 ETH
217110792025-01-26 20:28:5934 mins ago1737923339
0x83F20F44...7f942BEeA
0 ETH
217110792025-01-26 20:28:5934 mins ago1737923339
0x83F20F44...7f942BEeA
0 ETH
217110612025-01-26 20:25:2338 mins ago1737923123
0x83F20F44...7f942BEeA
0 ETH
217110612025-01-26 20:25:2338 mins ago1737923123
0x83F20F44...7f942BEeA
0 ETH
217110612025-01-26 20:25:2338 mins ago1737923123
0x83F20F44...7f942BEeA
0 ETH
217110612025-01-26 20:25:2338 mins ago1737923123
0x83F20F44...7f942BEeA
0 ETH
217110612025-01-26 20:25:2338 mins ago1737923123
0x83F20F44...7f942BEeA
0 ETH
217110612025-01-26 20:25:2338 mins ago1737923123
0x83F20F44...7f942BEeA
0 ETH
217110612025-01-26 20:25:2338 mins ago1737923123
0x83F20F44...7f942BEeA
0 ETH
217110612025-01-26 20:25:2338 mins ago1737923123
0x83F20F44...7f942BEeA
0 ETH
217110612025-01-26 20:25:2338 mins ago1737923123
0x83F20F44...7f942BEeA
0 ETH
217110612025-01-26 20:25:2338 mins ago1737923123
0x83F20F44...7f942BEeA
0 ETH
217110532025-01-26 20:23:4740 mins ago1737923027
0x83F20F44...7f942BEeA
0 ETH
217110532025-01-26 20:23:4740 mins ago1737923027
0x83F20F44...7f942BEeA
0 ETH
217110532025-01-26 20:23:4740 mins ago1737923027
0x83F20F44...7f942BEeA
0 ETH
217110532025-01-26 20:23:4740 mins ago1737923027
0x83F20F44...7f942BEeA
0 ETH
217110532025-01-26 20:23:4740 mins ago1737923027
0x83F20F44...7f942BEeA
0 ETH
217110532025-01-26 20:23:4740 mins ago1737923027
0x83F20F44...7f942BEeA
0 ETH
217110532025-01-26 20:23:4740 mins ago1737923027
0x83F20F44...7f942BEeA
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SavingsDai

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-17
*/

// SPDX-License-Identifier: AGPL-3.0-or-later

/// SavingsDai.sol -- A tokenized representation DAI in the DSR (pot)

// Copyright (C) 2017, 2018, 2019 dbrock, rain, mrchico
// Copyright (C) 2021-2022 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.8.17;

interface IERC1271 {
    function isValidSignature(
        bytes32,
        bytes memory
    ) external view returns (bytes4);
}

interface VatLike {
    function hope(address) external;
}

interface PotLike {
    function chi() external view returns (uint256);
    function rho() external view returns (uint256);
    function dsr() external view returns (uint256);
    function drip() external returns (uint256);
    function join(uint256) external;
    function exit(uint256) external;
}

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

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

contract SavingsDai {

    // --- ERC20 Data ---
    string  public constant name     = "Savings Dai";
    string  public constant symbol   = "sDAI";
    string  public constant version  = "1";
    uint8   public constant decimals = 18;
    uint256 public totalSupply;

    mapping (address => uint256)                      public balanceOf;
    mapping (address => mapping (address => uint256)) public allowance;
    mapping (address => uint256)                      public nonces;

    // --- Data ---
    VatLike     public immutable vat;
    DaiJoinLike public immutable daiJoin;
    DaiLike     public immutable dai;
    PotLike     public immutable pot;

    // --- Events ---
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Deposit(address indexed sender, address indexed owner, uint256 assets, uint256 shares);
    event Withdraw(address indexed sender, address indexed receiver, address indexed owner, uint256 assets, uint256 shares);

    // --- EIP712 niceties ---
    uint256 public immutable deploymentChainId;
    bytes32 private immutable _DOMAIN_SEPARATOR;
    bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    
    uint256 private constant RAY = 10 ** 27;

    constructor(address _daiJoin, address _pot) {
        daiJoin = DaiJoinLike(_daiJoin);
        vat = VatLike(daiJoin.vat());
        dai = DaiLike(daiJoin.dai());
        pot = PotLike(_pot);

        deploymentChainId = block.chainid;
        _DOMAIN_SEPARATOR = _calculateDomainSeparator(block.chainid);

        vat.hope(address(daiJoin));
        vat.hope(address(pot));

        dai.approve(address(daiJoin), type(uint256).max);
    }

    function _calculateDomainSeparator(uint256 chainId) private view returns (bytes32) {
        return keccak256(
            abi.encode(
                keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                keccak256(bytes(name)),
                keccak256(bytes(version)),
                chainId,
                address(this)
            )
        );
    }

    function DOMAIN_SEPARATOR() external view returns (bytes32) {
        return block.chainid == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(block.chainid);
    }

    function _rpow(uint256 x, uint256 n) internal pure returns (uint256 z) {
        assembly {
            switch x case 0 {switch n case 0 {z := RAY} default {z := 0}}
            default {
                switch mod(n, 2) case 0 { z := RAY } default { z := x }
                let half := div(RAY, 2)  // for rounding.
                for { n := div(n, 2) } n { n := div(n,2) } {
                    let xx := mul(x, x)
                    if iszero(eq(div(xx, x), x)) { revert(0,0) }
                    let xxRound := add(xx, half)
                    if lt(xxRound, xx) { revert(0,0) }
                    x := div(xxRound, RAY)
                    if mod(n,2) {
                        let zx := mul(z, x)
                        if and(iszero(iszero(x)), iszero(eq(div(zx, x), z))) { revert(0,0) }
                        let zxRound := add(zx, half)
                        if lt(zxRound, zx) { revert(0,0) }
                        z := div(zxRound, RAY)
                    }
                }
            }
        }
    }

    function _divup(uint256 x, uint256 y) internal pure returns (uint256 z) {
        unchecked {
            z = x != 0 ? ((x - 1) / y) + 1 : 0;
        }
    }

    // --- ERC20 Mutations ---

    function transfer(address to, uint256 value) external returns (bool) {
        require(to != address(0) && to != address(this), "SavingsDai/invalid-address");
        uint256 balance = balanceOf[msg.sender];
        require(balance >= value, "SavingsDai/insufficient-balance");

        unchecked {
            balanceOf[msg.sender] = balance - value;
            balanceOf[to] += value;
        }

        emit Transfer(msg.sender, to, value);

        return true;
    }

    function transferFrom(address from, address to, uint256 value) external returns (bool) {
        require(to != address(0) && to != address(this), "SavingsDai/invalid-address");
        uint256 balance = balanceOf[from];
        require(balance >= value, "SavingsDai/insufficient-balance");

        if (from != msg.sender) {
            uint256 allowed = allowance[from][msg.sender];
            if (allowed != type(uint256).max) {
                require(allowed >= value, "SavingsDai/insufficient-allowance");

                unchecked {
                    allowance[from][msg.sender] = allowed - value;
                }
            }
        }

        unchecked {
            balanceOf[from] = balance - value;
            balanceOf[to] += value;
        }

        emit Transfer(from, to, value);

        return true;
    }

    function approve(address spender, uint256 value) external returns (bool) {
        allowance[msg.sender][spender] = value;

        emit Approval(msg.sender, spender, value);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
        uint256 newValue = allowance[msg.sender][spender] + addedValue;
        allowance[msg.sender][spender] = newValue;

        emit Approval(msg.sender, spender, newValue);

        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
        uint256 allowed = allowance[msg.sender][spender];
        require(allowed >= subtractedValue, "SavingsDai/insufficient-allowance");
        unchecked{
            allowed = allowed - subtractedValue;
        }
        allowance[msg.sender][spender] = allowed;

        emit Approval(msg.sender, spender, allowed);

        return true;
    }

    // --- Mint/Burn Internal ---

    function _mint(uint256 assets, uint256 shares, address receiver) internal {
        require(receiver != address(0) && receiver != address(this), "SavingsDai/invalid-address");

        dai.transferFrom(msg.sender, address(this), assets);
        daiJoin.join(address(this), assets);
        pot.join(shares);

        // note: we don't need an overflow check here b/c shares totalSupply will always be <= dai totalSupply
        unchecked {
            balanceOf[receiver] = balanceOf[receiver] + shares;
            totalSupply = totalSupply + shares;
        }

        emit Deposit(msg.sender, receiver, assets, shares);
    }

    function _burn(uint256 assets, uint256 shares, address receiver, address owner) internal {
        uint256 balance = balanceOf[owner];
        require(balance >= shares, "SavingsDai/insufficient-balance");

        if (owner != msg.sender) {
            uint256 allowed = allowance[owner][msg.sender];
            if (allowed != type(uint256).max) {
                require(allowed >= shares, "SavingsDai/insufficient-allowance");

                unchecked {
                    allowance[owner][msg.sender] = allowed - shares;
                }
            }
        }

        unchecked {
            balanceOf[owner] = balance - shares; // note: we don't need overflow checks b/c require(balance >= value) and balance <= totalSupply
            totalSupply      = totalSupply - shares;
        }

        pot.exit(shares);
        daiJoin.exit(receiver, assets);

        emit Withdraw(msg.sender, receiver, owner, assets, shares);
    }

    // --- ERC-4626 ---

    function asset() external view returns (address) {
        return address(dai);
    }

    function totalAssets() external view returns (uint256) {
        return convertToAssets(totalSupply);
    }

    function convertToShares(uint256 assets) public view returns (uint256) {
        uint256 rho = pot.rho();
        uint256 chi = (block.timestamp > rho) ? _rpow(pot.dsr(), block.timestamp - rho) * pot.chi() / RAY : pot.chi();
        return assets * RAY / chi;
    }

    function convertToAssets(uint256 shares) public view returns (uint256) {
        uint256 rho = pot.rho();
        uint256 chi = (block.timestamp > rho) ? _rpow(pot.dsr(), block.timestamp - rho) * pot.chi() / RAY : pot.chi();
        return shares * chi / RAY;
    }

    function maxDeposit(address) external pure returns (uint256) {
        return type(uint256).max;
    }

    function previewDeposit(uint256 assets) external view returns (uint256) {
        return convertToShares(assets);
    }

    function deposit(uint256 assets, address receiver) external returns (uint256 shares) {
        uint256 chi = (block.timestamp > pot.rho()) ? pot.drip() : pot.chi();
        shares = assets * RAY / chi;
        _mint(assets, shares, receiver);
    }

    function maxMint(address) external pure returns (uint256) {
        return type(uint256).max;
    }

    function previewMint(uint256 shares) external view returns (uint256) {
        uint256 rho = pot.rho();
        uint256 chi = (block.timestamp > rho) ? _rpow(pot.dsr(), block.timestamp - rho) * pot.chi() / RAY : pot.chi();
        return _divup(shares * chi, RAY);
    }

    function mint(uint256 shares, address receiver) external returns (uint256 assets) {
        uint256 chi = (block.timestamp > pot.rho()) ? pot.drip() : pot.chi();
        assets = _divup(shares * chi, RAY);
        _mint(assets, shares, receiver);
    }

    function maxWithdraw(address owner) external view returns (uint256) {
        return convertToAssets(balanceOf[owner]);
    }

    function previewWithdraw(uint256 assets) external view returns (uint256) {
        uint256 rho = pot.rho();
        uint256 chi = (block.timestamp > rho) ? _rpow(pot.dsr(), block.timestamp - rho) * pot.chi() / RAY : pot.chi();
        return _divup(assets * RAY, chi);
    }

    function withdraw(uint256 assets, address receiver, address owner) external returns (uint256 shares) {
        uint256 chi = (block.timestamp > pot.rho()) ? pot.drip() : pot.chi();
        shares = _divup(assets * RAY, chi);
        _burn(assets, shares, receiver, owner);
    }

    function maxRedeem(address owner) external view returns (uint256) {
        return balanceOf[owner];
    }

    function previewRedeem(uint256 shares) external view returns (uint256) {
        return convertToAssets(shares);
    }

    function redeem(uint256 shares, address receiver, address owner) external returns (uint256 assets) {
        uint256 chi = (block.timestamp > pot.rho()) ? pot.drip() : pot.chi();
        assets = shares * chi / RAY;
        _burn(assets, shares, receiver, owner);
    }

    // --- Approve by signature ---

    function _isValidSignature(
        address signer,
        bytes32 digest,
        bytes memory signature
    ) internal view returns (bool) {
        if (signature.length == 65) {
            bytes32 r;
            bytes32 s;
            uint8 v;
            assembly {
                r := mload(add(signature, 0x20))
                s := mload(add(signature, 0x40))
                v := byte(0, mload(add(signature, 0x60)))
            }
            if (signer == ecrecover(digest, v, r, s)) {
                return true;
            }
        }

        (bool success, bytes memory result) = signer.staticcall(
            abi.encodeWithSelector(IERC1271.isValidSignature.selector, digest, signature)
        );
        return (success &&
            result.length == 32 &&
            abi.decode(result, (bytes4)) == IERC1271.isValidSignature.selector);
    }

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        bytes memory signature
    ) public {
        require(block.timestamp <= deadline, "SavingsDai/permit-expired");
        require(owner != address(0), "SavingsDai/invalid-owner");

        uint256 nonce;
        unchecked { nonce = nonces[owner]++; }

        bytes32 digest =
            keccak256(abi.encodePacked(
                "\x19\x01",
                block.chainid == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(block.chainid),
                keccak256(abi.encode(
                    PERMIT_TYPEHASH,
                    owner,
                    spender,
                    value,
                    nonce,
                    deadline
                ))
            ));

        require(_isValidSignature(owner, digest, signature), "SavingsDai/invalid-permit");

        allowance[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external {
        permit(owner, spender, value, deadline, abi.encodePacked(r, s, v));
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_daiJoin","type":"address"},{"internalType":"address","name":"_pot","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deploymentChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pot","outputs":[{"internalType":"contract PotLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vat","outputs":[{"internalType":"contract VatLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

6101406040523480156200001257600080fd5b506040516200300738038062003007833981016040819052620000359162000386565b6001600160a01b03821660a0819052604080516336569e7760e01b815290516336569e77916004808201926020929091908290030181865afa15801562000080573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000a69190620003be565b6001600160a01b03166080816001600160a01b03168152505060a0516001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000100573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001269190620003be565b6001600160a01b0390811660c052811660e052466101008190526200021990604080518082018252600b81526a536176696e67732044616960a81b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fc3f7aa5322e176c1c6e3195712ea57f43ea5d4428bc4005b44d51d1c8b188bbe818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101939093523060a0808501919091528251808503909101815260c0909301909152815191012090565b6101205260805160a0516040516328ec8bf160e21b81526001600160a01b03918216600482015291169063a3b22fc490602401600060405180830381600087803b1580156200026757600080fd5b505af11580156200027c573d6000803e3d6000fd5b505060805160e0516040516328ec8bf160e21b81526001600160a01b0391821660048201529116925063a3b22fc49150602401600060405180830381600087803b158015620002ca57600080fd5b505af1158015620002df573d6000803e3d6000fd5b505060c05160a05160405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116925063095ea7b391506044016020604051808303816000875af11580156200033a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003609190620003e3565b50505062000407565b80516001600160a01b03811681146200038157600080fd5b919050565b600080604083850312156200039a57600080fd5b620003a58362000369565b9150620003b56020840162000369565b90509250929050565b600060208284031215620003d157600080fd5b620003dc8262000369565b9392505050565b600060208284031215620003f657600080fd5b81518015158114620003dc57600080fd5b60805160a05160c05160e0516101005161012051612aad6200055a60003960008181610d01015261124301526000818161055a01528181610cd0015261120f0152600081816103c901528181610647015281816106d401528181610767015281816107ec01528181610919015281816109a601528181610a3901528181610abe01528181610dba01528181610e4201528181610ec901528181610f860152818161100e015281816110950152818161151e015281816115ab0152818161163e015281816116c301528181611747015281816117cf015281816118560152818161190d0152818161199501528181611a1c01528181611ad301528181611b6001528181611bf301528181611c78015281816120e001526124380152600081816103780152818161060e0152611fd60152600081816105200152818161206801526124ba0152600061033c0152612aad6000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80637ecebe0011610130578063c11645bc116100b8578063d505accf1161007c578063d505accf1461058f578063d905777e146105a2578063dd62ed3e146105cb578063ef8b30f7146105f6578063f4b9fa751461060957600080fd5b8063c11645bc1461051b578063c63d75b6146103af578063c6e6f59214610542578063cd0d009614610555578063ce96cb771461057c57600080fd5b8063a457c2d7116100ff578063a457c2d7146104bc578063a9059cbb146104cf578063b3d7f6b9146104e2578063b460af94146104f5578063ba0876521461050857600080fd5b80637ecebe001461045157806394bf804d1461047157806395d89b41146104845780639fd5a6cf146104a757600080fd5b80633644e515116101be5780634ba2363a116101825780634ba2363a146103c45780634cdad506146103eb57806354fd4d50146103fe5780636e553f651461041e57806370a082311461043157600080fd5b80633644e5151461032f57806336569e771461033757806338d52e0f14610376578063395093511461039c578063402d267d146103af57600080fd5b80630a28a477116102055780630a28a477146102bf57806318160ddd146102d257806323b872dd146102db57806330adf81f146102ee578063313ce5671461031557600080fd5b806301e1d1141461023757806306fdde031461025257806307a2d13a14610289578063095ea7b31461029c575b600080fd5b61023f610630565b6040519081526020015b60405180910390f35b61027c6040518060400160405280600b81526020016a536176696e67732044616960a81b81525081565b60405161024991906125b9565b61023f6102973660046125cc565b610642565b6102af6102aa366004612601565b6108b9565b6040519015158152602001610249565b61023f6102cd3660046125cc565b610914565b61023f60005481565b6102af6102e936600461262b565b610b4e565b61023f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b61031d601281565b60405160ff9091168152602001610249565b61023f610ccc565b61035e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610249565b7f000000000000000000000000000000000000000000000000000000000000000061035e565b6102af6103aa366004612601565b610d23565b61023f6103bd366004612667565b5060001990565b61035e7f000000000000000000000000000000000000000000000000000000000000000081565b61023f6103f93660046125cc565b610daa565b61027c604051806040016040528060018152602001603160f81b81525081565b61023f61042c366004612682565b610db5565b61023f61043f366004612667565b60016020526000908152604090205481565b61023f61045f366004612667565b60036020526000908152604090205481565b61023f61047f366004612682565b610f81565b61027c604051806040016040528060048152602001637344414960e01b81525081565b6104ba6104b53660046126c4565b611144565b005b6102af6104ca366004612601565b6113be565b6102af6104dd366004612601565b61144d565b61023f6104f03660046125cc565b611519565b61023f6105033660046127aa565b611742565b61023f6105163660046127aa565b611908565b61035e7f000000000000000000000000000000000000000000000000000000000000000081565b61023f6105503660046125cc565b611ace565b61023f7f000000000000000000000000000000000000000000000000000000000000000081565b61023f61058a366004612667565b611d00565b6104ba61059d3660046127e6565b611d22565b61023f6105b0366004612667565b6001600160a01b031660009081526001602052604090205490565b61023f6105d9366004612859565b600260209081526000928352604080842090915290825290205481565b61023f6106043660046125cc565b611d79565b61035e7f000000000000000000000000000000000000000000000000000000000000000081565b600061063d600054610642565b905090565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c79190612883565b90506000814211610759577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107549190612883565b61088f565b676765c793fa10079d601b1b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e79190612883565b61087b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663487bf0826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610848573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086c9190612883565b61087686426128b2565b611d84565b61088591906128c5565b61088f91906128f2565b9050676765c793fa10079d601b1b6108a782866128c5565b6108b191906128f2565b949350505050565b3360008181526002602090815260408083206001600160a01b03871680855292528083208590555191929091600080516020612a58833981519152906109029086815260200190565b60405180910390a35060015b92915050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610975573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109999190612883565b90506000814211610a2b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a269190612883565b610b2e565b676765c793fa10079d601b1b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab99190612883565b610b1a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663487bf0826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610848573d6000803e3d6000fd5b610b2491906128c5565b610b2e91906128f2565b90506108b1610b48676765c793fa10079d601b1b866128c5565b82611e75565b60006001600160a01b03831615801590610b7157506001600160a01b0383163014155b610b965760405162461bcd60e51b8152600401610b8d90612914565b60405180910390fd5b6001600160a01b03841660009081526001602052604090205482811015610bcf5760405162461bcd60e51b8152600401610b8d9061294b565b6001600160a01b0385163314610c57576001600160a01b03851660009081526002602090815260408083203384529091529020546000198114610c555783811015610c2c5760405162461bcd60e51b8152600401610b8d90612982565b6001600160a01b0386166000908152600260209081526040808320338452909152902084820390555b505b6001600160a01b0380861660008181526001602052604080822087860390559287168082529083902080548701905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cb79087815260200190565b60405180910390a360019150505b9392505050565b60007f00000000000000000000000000000000000000000000000000000000000000004614610cfe5761063d46611ea3565b507f000000000000000000000000000000000000000000000000000000000000000090565b3360009081526002602090815260408083206001600160a01b03861684529091528120548190610d549084906129c3565b3360008181526002602090815260408083206001600160a01b038a1680855290835292819020859055518481529394509092600080516020612a5883398151915291015b60405180910390a35060019392505050565b600061090e82610642565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3a9190612883565b4211610ec7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec29190612883565b610f4b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639f678cca6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610f27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4b9190612883565b905080610f63676765c793fa10079d601b1b866128c5565b610f6d91906128f2565b9150610f7a848385611f77565b5092915050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110069190612883565b4211611093577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108e9190612883565b611117565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639f678cca6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111179190612883565b905061113761112682866128c5565b676765c793fa10079d601b1b611e75565b9150610f7a828585611f77565b814211156111945760405162461bcd60e51b815260206004820152601960248201527f536176696e67734461692f7065726d69742d65787069726564000000000000006044820152606401610b8d565b6001600160a01b0385166111ea5760405162461bcd60e51b815260206004820152601860248201527f536176696e67734461692f696e76616c69642d6f776e657200000000000000006044820152606401610b8d565b6001600160a01b038516600090815260036020526040812080546001810190915590467f0000000000000000000000000000000000000000000000000000000000000000146112415761123c46611ea3565b611263565b7f00000000000000000000000000000000000000000000000000000000000000005b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b03808b169282019290925290881660608201526080810187905260a0810184905260c0810186905260e001604051602081830303815290604052805190602001206040516020016112fc92919061190160f01b81526002810192909252602282015260420190565b60405160208183030381529060405280519060200120905061131f8782856121ab565b61136b5760405162461bcd60e51b815260206004820152601960248201527f536176696e67734461692f696e76616c69642d7065726d6974000000000000006044820152606401610b8d565b6001600160a01b038781166000818152600260209081526040808320948b16808452948252918290208990559051888152600080516020612a58833981519152910160405180910390a350505050505050565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156114025760405162461bcd60e51b8152600401610b8d90612982565b3360008181526002602090815260408083206001600160a01b03891680855290835292819020948790039485905551848152919291600080516020612a588339815191529101610d98565b60006001600160a01b0383161580159061147057506001600160a01b0383163014155b61148c5760405162461bcd60e51b8152600401610b8d90612914565b33600090815260016020526040902054828110156114bc5760405162461bcd60e51b8152600401610b8d9061294b565b33600081815260016020908152604080832087860390556001600160a01b03881680845292819020805488019055518681529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610d98565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e9190612883565b90506000814211611630577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611607573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162b9190612883565b611733565b676765c793fa10079d601b1b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561169a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116be9190612883565b61171f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663487bf0826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610848573d6000803e3d6000fd5b61172991906128c5565b61173391906128f2565b90506108b161112682866128c5565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c79190612883565b4211611854577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184f9190612883565b6118d8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639f678cca6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156118b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d89190612883565b90506118f2610b48676765c793fa10079d601b1b876128c5565b91506119008583868661233c565b509392505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198d9190612883565b4211611a1a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a159190612883565b611a9e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639f678cca6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9e9190612883565b9050676765c793fa10079d601b1b611ab682876128c5565b611ac091906128f2565b91506119008286868661233c565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b539190612883565b90506000814211611be5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be09190612883565b611ce8565b676765c793fa10079d601b1b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c739190612883565b611cd47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663487bf0826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610848573d6000803e3d6000fd5b611cde91906128c5565b611ce891906128f2565b9050806108a7676765c793fa10079d601b1b866128c5565b6001600160a01b03811660009081526001602052604081205461090e90610642565b611d7087878787868689604051602001611d5c93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052611144565b50505050505050565b600061090e82611ace565b6000828015611e4e57600183168015611d9f57849250611dae565b676765c793fa10079d601b1b92505b506002909204916b019d971e4fe8401e740000005b8315611e48578485028586820414611dda57600080fd5b81810181811015611dea57600080fd5b676765c793fa10079d601b1b90049550506001841615611e3d578483028386820414158615151615611e1b57600080fd5b81810181811015611e2b57600080fd5b676765c793fa10079d601b1b90049350505b600284049350611dc3565b50610f7a565b828015611e5e5760009250611e6d565b676765c793fa10079d601b1b92505b505092915050565b600082600003611e86576000610cc5565b816001840381611e9857611e986128dc565b046001019392505050565b604080518082018252600b81526a536176696e67732044616960a81b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fc3f7aa5322e176c1c6e3195712ea57f43ea5d4428bc4005b44d51d1c8b188bbe818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101939093523060a0808501919091528251808503909101815260c0909301909152815191012090565b6001600160a01b03811615801590611f9857506001600160a01b0381163014155b611fb45760405162461bcd60e51b8152600401610b8d90612914565b6040516323b872dd60e01b8152336004820152306024820152604481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af1158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204b91906129d6565b50604051633b4da69f60e01b8152306004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633b4da69f90604401600060405180830381600087803b1580156120b457600080fd5b505af11580156120c8573d6000803e3d6000fd5b505060405163049878f360e01b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063049878f39150602401600060405180830381600087803b15801561212e57600080fd5b505af1158015612142573d6000803e3d6000fd5b505050506001600160a01b038116600081815260016020908152604080832080548701905582548601909255815186815290810185905233917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a3505050565b6000815160410361224857602082810151604080850151606080870151835160008082529681018086528a9052951a928501839052840183905260808401819052919260019060a0016020604051602081039080840390855afa158015612216573d6000803e3d6000fd5b505050602060405103516001600160a01b0316876001600160a01b0316036122445760019350505050610cc5565b5050505b600080856001600160a01b0316631626ba7e60e01b86866040516024016122709291906129f8565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516122ae9190612a11565b600060405180830381855afa9150503d80600081146122e9576040519150601f19603f3d011682016040523d82523d6000602084013e6122ee565b606091505b5091509150818015612301575080516020145b801561233257508051630b135d3f60e11b906123269083016020908101908401612a2d565b6001600160e01b031916145b9695505050505050565b6001600160a01b038116600090815260016020526040902054838110156123755760405162461bcd60e51b8152600401610b8d9061294b565b6001600160a01b03821633146123fd576001600160a01b038216600090815260026020908152604080832033845290915290205460001981146123fb57848110156123d25760405162461bcd60e51b8152600401610b8d90612982565b6001600160a01b0383166000908152600260209081526040808320338452909152902085820390555b505b6001600160a01b038281166000908152600160205260408082208785039055815487900390915551637f8661a160e01b8152600481018690527f000000000000000000000000000000000000000000000000000000000000000090911690637f8661a190602401600060405180830381600087803b15801561247e57600080fd5b505af1158015612492573d6000803e3d6000fd5b505060405163ef693bed60e01b81526001600160a01b038681166004830152602482018990527f000000000000000000000000000000000000000000000000000000000000000016925063ef693bed9150604401600060405180830381600087803b15801561250057600080fd5b505af1158015612514573d6000803e3d6000fd5b505060408051888152602081018890526001600160a01b0380871694508716925033917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db910160405180910390a45050505050565b60005b8381101561258457818101518382015260200161256c565b50506000910152565b600081518084526125a5816020860160208601612569565b601f01601f19169290920160200192915050565b602081526000610cc5602083018461258d565b6000602082840312156125de57600080fd5b5035919050565b80356001600160a01b03811681146125fc57600080fd5b919050565b6000806040838503121561261457600080fd5b61261d836125e5565b946020939093013593505050565b60008060006060848603121561264057600080fd5b612649846125e5565b9250612657602085016125e5565b9150604084013590509250925092565b60006020828403121561267957600080fd5b610cc5826125e5565b6000806040838503121561269557600080fd5b823591506126a5602084016125e5565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a086880312156126dc57600080fd5b6126e5866125e5565b94506126f3602087016125e5565b93506040860135925060608601359150608086013567ffffffffffffffff8082111561271e57600080fd5b818801915088601f83011261273257600080fd5b813581811115612744576127446126ae565b604051601f8201601f19908116603f0116810190838211818310171561276c5761276c6126ae565b816040528281528b602084870101111561278557600080fd5b8260208601602083013760006020848301015280955050505050509295509295909350565b6000806000606084860312156127bf57600080fd5b833592506127cf602085016125e5565b91506127dd604085016125e5565b90509250925092565b600080600080600080600060e0888a03121561280157600080fd5b61280a886125e5565b9650612818602089016125e5565b95506040880135945060608801359350608088013560ff8116811461283c57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561286c57600080fd5b612875836125e5565b91506126a5602084016125e5565b60006020828403121561289557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561090e5761090e61289c565b808202811582820484141761090e5761090e61289c565b634e487b7160e01b600052601260045260246000fd5b60008261290f57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252601a908201527f536176696e67734461692f696e76616c69642d61646472657373000000000000604082015260600190565b6020808252601f908201527f536176696e67734461692f696e73756666696369656e742d62616c616e636500604082015260600190565b60208082526021908201527f536176696e67734461692f696e73756666696369656e742d616c6c6f77616e636040820152606560f81b606082015260800190565b8082018082111561090e5761090e61289c565b6000602082840312156129e857600080fd5b81518015158114610cc557600080fd5b8281526040602082015260006108b1604083018461258d565b60008251612a23818460208701612569565b9190910192915050565b600060208284031215612a3f57600080fd5b81516001600160e01b031981168114610cc557600080fdfe8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220293e4440d9b8d809025462018f9cf991307dc9c59175e4bef40a39bc9e54670964736f6c634300081100330000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf7

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102325760003560e01c80637ecebe0011610130578063c11645bc116100b8578063d505accf1161007c578063d505accf1461058f578063d905777e146105a2578063dd62ed3e146105cb578063ef8b30f7146105f6578063f4b9fa751461060957600080fd5b8063c11645bc1461051b578063c63d75b6146103af578063c6e6f59214610542578063cd0d009614610555578063ce96cb771461057c57600080fd5b8063a457c2d7116100ff578063a457c2d7146104bc578063a9059cbb146104cf578063b3d7f6b9146104e2578063b460af94146104f5578063ba0876521461050857600080fd5b80637ecebe001461045157806394bf804d1461047157806395d89b41146104845780639fd5a6cf146104a757600080fd5b80633644e515116101be5780634ba2363a116101825780634ba2363a146103c45780634cdad506146103eb57806354fd4d50146103fe5780636e553f651461041e57806370a082311461043157600080fd5b80633644e5151461032f57806336569e771461033757806338d52e0f14610376578063395093511461039c578063402d267d146103af57600080fd5b80630a28a477116102055780630a28a477146102bf57806318160ddd146102d257806323b872dd146102db57806330adf81f146102ee578063313ce5671461031557600080fd5b806301e1d1141461023757806306fdde031461025257806307a2d13a14610289578063095ea7b31461029c575b600080fd5b61023f610630565b6040519081526020015b60405180910390f35b61027c6040518060400160405280600b81526020016a536176696e67732044616960a81b81525081565b60405161024991906125b9565b61023f6102973660046125cc565b610642565b6102af6102aa366004612601565b6108b9565b6040519015158152602001610249565b61023f6102cd3660046125cc565b610914565b61023f60005481565b6102af6102e936600461262b565b610b4e565b61023f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b61031d601281565b60405160ff9091168152602001610249565b61023f610ccc565b61035e7f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b81565b6040516001600160a01b039091168152602001610249565b7f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f61035e565b6102af6103aa366004612601565b610d23565b61023f6103bd366004612667565b5060001990565b61035e7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf781565b61023f6103f93660046125cc565b610daa565b61027c604051806040016040528060018152602001603160f81b81525081565b61023f61042c366004612682565b610db5565b61023f61043f366004612667565b60016020526000908152604090205481565b61023f61045f366004612667565b60036020526000908152604090205481565b61023f61047f366004612682565b610f81565b61027c604051806040016040528060048152602001637344414960e01b81525081565b6104ba6104b53660046126c4565b611144565b005b6102af6104ca366004612601565b6113be565b6102af6104dd366004612601565b61144d565b61023f6104f03660046125cc565b611519565b61023f6105033660046127aa565b611742565b61023f6105163660046127aa565b611908565b61035e7f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a2881565b61023f6105503660046125cc565b611ace565b61023f7f000000000000000000000000000000000000000000000000000000000000000181565b61023f61058a366004612667565b611d00565b6104ba61059d3660046127e6565b611d22565b61023f6105b0366004612667565b6001600160a01b031660009081526001602052604090205490565b61023f6105d9366004612859565b600260209081526000928352604080842090915290825290205481565b61023f6106043660046125cc565b611d79565b61035e7f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f81565b600061063d600054610642565b905090565b6000807f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c79190612883565b90506000814211610759577f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107549190612883565b61088f565b676765c793fa10079d601b1b7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e79190612883565b61087b7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663487bf0826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610848573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086c9190612883565b61087686426128b2565b611d84565b61088591906128c5565b61088f91906128f2565b9050676765c793fa10079d601b1b6108a782866128c5565b6108b191906128f2565b949350505050565b3360008181526002602090815260408083206001600160a01b03871680855292528083208590555191929091600080516020612a58833981519152906109029086815260200190565b60405180910390a35060015b92915050565b6000807f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610975573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109999190612883565b90506000814211610a2b577f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a269190612883565b610b2e565b676765c793fa10079d601b1b7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab99190612883565b610b1a7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663487bf0826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610848573d6000803e3d6000fd5b610b2491906128c5565b610b2e91906128f2565b90506108b1610b48676765c793fa10079d601b1b866128c5565b82611e75565b60006001600160a01b03831615801590610b7157506001600160a01b0383163014155b610b965760405162461bcd60e51b8152600401610b8d90612914565b60405180910390fd5b6001600160a01b03841660009081526001602052604090205482811015610bcf5760405162461bcd60e51b8152600401610b8d9061294b565b6001600160a01b0385163314610c57576001600160a01b03851660009081526002602090815260408083203384529091529020546000198114610c555783811015610c2c5760405162461bcd60e51b8152600401610b8d90612982565b6001600160a01b0386166000908152600260209081526040808320338452909152902084820390555b505b6001600160a01b0380861660008181526001602052604080822087860390559287168082529083902080548701905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cb79087815260200190565b60405180910390a360019150505b9392505050565b60007f00000000000000000000000000000000000000000000000000000000000000014614610cfe5761063d46611ea3565b507fb9b66c6658faaf7d181a8532a21ea61d221439b542335af9f2d4b741965a5e2c90565b3360009081526002602090815260408083206001600160a01b03861684529091528120548190610d549084906129c3565b3360008181526002602090815260408083206001600160a01b038a1680855290835292819020859055518481529394509092600080516020612a5883398151915291015b60405180910390a35060019392505050565b600061090e82610642565b6000807f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3a9190612883565b4211610ec7577f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec29190612883565b610f4b565b7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b0316639f678cca6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610f27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4b9190612883565b905080610f63676765c793fa10079d601b1b866128c5565b610f6d91906128f2565b9150610f7a848385611f77565b5092915050565b6000807f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110069190612883565b4211611093577f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108e9190612883565b611117565b7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b0316639f678cca6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111179190612883565b905061113761112682866128c5565b676765c793fa10079d601b1b611e75565b9150610f7a828585611f77565b814211156111945760405162461bcd60e51b815260206004820152601960248201527f536176696e67734461692f7065726d69742d65787069726564000000000000006044820152606401610b8d565b6001600160a01b0385166111ea5760405162461bcd60e51b815260206004820152601860248201527f536176696e67734461692f696e76616c69642d6f776e657200000000000000006044820152606401610b8d565b6001600160a01b038516600090815260036020526040812080546001810190915590467f0000000000000000000000000000000000000000000000000000000000000001146112415761123c46611ea3565b611263565b7fb9b66c6658faaf7d181a8532a21ea61d221439b542335af9f2d4b741965a5e2c5b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b03808b169282019290925290881660608201526080810187905260a0810184905260c0810186905260e001604051602081830303815290604052805190602001206040516020016112fc92919061190160f01b81526002810192909252602282015260420190565b60405160208183030381529060405280519060200120905061131f8782856121ab565b61136b5760405162461bcd60e51b815260206004820152601960248201527f536176696e67734461692f696e76616c69642d7065726d6974000000000000006044820152606401610b8d565b6001600160a01b038781166000818152600260209081526040808320948b16808452948252918290208990559051888152600080516020612a58833981519152910160405180910390a350505050505050565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156114025760405162461bcd60e51b8152600401610b8d90612982565b3360008181526002602090815260408083206001600160a01b03891680855290835292819020948790039485905551848152919291600080516020612a588339815191529101610d98565b60006001600160a01b0383161580159061147057506001600160a01b0383163014155b61148c5760405162461bcd60e51b8152600401610b8d90612914565b33600090815260016020526040902054828110156114bc5760405162461bcd60e51b8152600401610b8d9061294b565b33600081815260016020908152604080832087860390556001600160a01b03881680845292819020805488019055518681529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610d98565b6000807f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e9190612883565b90506000814211611630577f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611607573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162b9190612883565b611733565b676765c793fa10079d601b1b7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561169a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116be9190612883565b61171f7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663487bf0826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610848573d6000803e3d6000fd5b61172991906128c5565b61173391906128f2565b90506108b161112682866128c5565b6000807f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c79190612883565b4211611854577f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184f9190612883565b6118d8565b7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b0316639f678cca6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156118b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d89190612883565b90506118f2610b48676765c793fa10079d601b1b876128c5565b91506119008583868661233c565b509392505050565b6000807f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198d9190612883565b4211611a1a577f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a159190612883565b611a9e565b7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b0316639f678cca6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9e9190612883565b9050676765c793fa10079d601b1b611ab682876128c5565b611ac091906128f2565b91506119008286868661233c565b6000807f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b539190612883565b90506000814211611be5577f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be09190612883565b611ce8565b676765c793fa10079d601b1b7f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c739190612883565b611cd47f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b031663487bf0826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610848573d6000803e3d6000fd5b611cde91906128c5565b611ce891906128f2565b9050806108a7676765c793fa10079d601b1b866128c5565b6001600160a01b03811660009081526001602052604081205461090e90610642565b611d7087878787868689604051602001611d5c93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052611144565b50505050505050565b600061090e82611ace565b6000828015611e4e57600183168015611d9f57849250611dae565b676765c793fa10079d601b1b92505b506002909204916b019d971e4fe8401e740000005b8315611e48578485028586820414611dda57600080fd5b81810181811015611dea57600080fd5b676765c793fa10079d601b1b90049550506001841615611e3d578483028386820414158615151615611e1b57600080fd5b81810181811015611e2b57600080fd5b676765c793fa10079d601b1b90049350505b600284049350611dc3565b50610f7a565b828015611e5e5760009250611e6d565b676765c793fa10079d601b1b92505b505092915050565b600082600003611e86576000610cc5565b816001840381611e9857611e986128dc565b046001019392505050565b604080518082018252600b81526a536176696e67732044616960a81b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fc3f7aa5322e176c1c6e3195712ea57f43ea5d4428bc4005b44d51d1c8b188bbe818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101939093523060a0808501919091528251808503909101815260c0909301909152815191012090565b6001600160a01b03811615801590611f9857506001600160a01b0381163014155b611fb45760405162461bcd60e51b8152600401610b8d90612914565b6040516323b872dd60e01b8152336004820152306024820152604481018490527f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f6001600160a01b0316906323b872dd906064016020604051808303816000875af1158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204b91906129d6565b50604051633b4da69f60e01b8152306004820152602481018490527f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a286001600160a01b031690633b4da69f90604401600060405180830381600087803b1580156120b457600080fd5b505af11580156120c8573d6000803e3d6000fd5b505060405163049878f360e01b8152600481018590527f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf76001600160a01b0316925063049878f39150602401600060405180830381600087803b15801561212e57600080fd5b505af1158015612142573d6000803e3d6000fd5b505050506001600160a01b038116600081815260016020908152604080832080548701905582548601909255815186815290810185905233917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a3505050565b6000815160410361224857602082810151604080850151606080870151835160008082529681018086528a9052951a928501839052840183905260808401819052919260019060a0016020604051602081039080840390855afa158015612216573d6000803e3d6000fd5b505050602060405103516001600160a01b0316876001600160a01b0316036122445760019350505050610cc5565b5050505b600080856001600160a01b0316631626ba7e60e01b86866040516024016122709291906129f8565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516122ae9190612a11565b600060405180830381855afa9150503d80600081146122e9576040519150601f19603f3d011682016040523d82523d6000602084013e6122ee565b606091505b5091509150818015612301575080516020145b801561233257508051630b135d3f60e11b906123269083016020908101908401612a2d565b6001600160e01b031916145b9695505050505050565b6001600160a01b038116600090815260016020526040902054838110156123755760405162461bcd60e51b8152600401610b8d9061294b565b6001600160a01b03821633146123fd576001600160a01b038216600090815260026020908152604080832033845290915290205460001981146123fb57848110156123d25760405162461bcd60e51b8152600401610b8d90612982565b6001600160a01b0383166000908152600260209081526040808320338452909152902085820390555b505b6001600160a01b038281166000908152600160205260408082208785039055815487900390915551637f8661a160e01b8152600481018690527f000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf790911690637f8661a190602401600060405180830381600087803b15801561247e57600080fd5b505af1158015612492573d6000803e3d6000fd5b505060405163ef693bed60e01b81526001600160a01b038681166004830152602482018990527f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a2816925063ef693bed9150604401600060405180830381600087803b15801561250057600080fd5b505af1158015612514573d6000803e3d6000fd5b505060408051888152602081018890526001600160a01b0380871694508716925033917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db910160405180910390a45050505050565b60005b8381101561258457818101518382015260200161256c565b50506000910152565b600081518084526125a5816020860160208601612569565b601f01601f19169290920160200192915050565b602081526000610cc5602083018461258d565b6000602082840312156125de57600080fd5b5035919050565b80356001600160a01b03811681146125fc57600080fd5b919050565b6000806040838503121561261457600080fd5b61261d836125e5565b946020939093013593505050565b60008060006060848603121561264057600080fd5b612649846125e5565b9250612657602085016125e5565b9150604084013590509250925092565b60006020828403121561267957600080fd5b610cc5826125e5565b6000806040838503121561269557600080fd5b823591506126a5602084016125e5565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a086880312156126dc57600080fd5b6126e5866125e5565b94506126f3602087016125e5565b93506040860135925060608601359150608086013567ffffffffffffffff8082111561271e57600080fd5b818801915088601f83011261273257600080fd5b813581811115612744576127446126ae565b604051601f8201601f19908116603f0116810190838211818310171561276c5761276c6126ae565b816040528281528b602084870101111561278557600080fd5b8260208601602083013760006020848301015280955050505050509295509295909350565b6000806000606084860312156127bf57600080fd5b833592506127cf602085016125e5565b91506127dd604085016125e5565b90509250925092565b600080600080600080600060e0888a03121561280157600080fd5b61280a886125e5565b9650612818602089016125e5565b95506040880135945060608801359350608088013560ff8116811461283c57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561286c57600080fd5b612875836125e5565b91506126a5602084016125e5565b60006020828403121561289557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561090e5761090e61289c565b808202811582820484141761090e5761090e61289c565b634e487b7160e01b600052601260045260246000fd5b60008261290f57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252601a908201527f536176696e67734461692f696e76616c69642d61646472657373000000000000604082015260600190565b6020808252601f908201527f536176696e67734461692f696e73756666696369656e742d62616c616e636500604082015260600190565b60208082526021908201527f536176696e67734461692f696e73756666696369656e742d616c6c6f77616e636040820152606560f81b606082015260800190565b8082018082111561090e5761090e61289c565b6000602082840312156129e857600080fd5b81518015158114610cc557600080fd5b8281526040602082015260006108b1604083018461258d565b60008251612a23818460208701612569565b9190910192915050565b600060208284031215612a3f57600080fd5b81516001600160e01b031981168114610cc557600080fdfe8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220293e4440d9b8d809025462018f9cf991307dc9c59175e4bef40a39bc9e54670964736f6c63430008110033

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

0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000197e90f9fad81970ba7976f33cbd77088e5d7cf7

-----Decoded View---------------
Arg [0] : _daiJoin (address): 0x9759A6Ac90977b93B58547b4A71c78317f391A28
Arg [1] : _pot (address): 0x197E90f9FAD81970bA7976f33CbD77088E5D7cf7

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


Deployed Bytecode Sourcemap

1848:13240:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9750:109;;;:::i;:::-;;;160:25:1;;;148:2;133:18;9750:109:0;;;;;;;;1904:48;;;;;;;;;;;;;;;-1:-1:-1;;;1904:48:0;;;;;;;;;;;;:::i;10144:269::-;;;;;;:::i;:::-;;:::i;6978:208::-;;;;;;:::i;:::-;;:::i;:::-;;;1739:14:1;;1732:22;1714:41;;1702:2;1687:18;6978:208:0;1574:187:1;11712:278:0;;;;;;:::i;:::-;;:::i;2096:26::-;;;;;;6114:856;;;;;;:::i;:::-;;:::i;3075:137::-;;3117:95;3075:137;;2052:37;;2087:2;2052:37;;;;;2453:4:1;2441:17;;;2423:36;;2411:2;2396:18;2052:37:0;2281:184:1;4167:183:0;;;:::i;2370:32::-;;;;;;;;-1:-1:-1;;;;;2648:32:1;;;2630:51;;2618:2;2603:18;2370:32:0;2470:217:1;9655:87:0;9730:3;9655:87;;7194:302;;;;;;:::i;:::-;;:::i;10421:104::-;;;;;;:::i;:::-;-1:-1:-1;;;10500:17:0;10421:104;2491:32;;;;;12404:120;;;;;;:::i;:::-;;:::i;2007:38::-;;;;;;;;;;;;;;;-1:-1:-1;;;2007:38:0;;;;;10662:252;;;;;;:::i;:::-;;:::i;2131:66::-;;;;;;:::i;:::-;;;;;;;;;;;;;;2277:63;;;;;;:::i;:::-;;;;;;;;;;;;;;11313:256;;;;;;:::i;:::-;;:::i;1959:41::-;;;;;;;;;;;;;;;-1:-1:-1;;;1959:41:0;;;;;13751:1048;;;;;;:::i;:::-;;:::i;:::-;;7504:455;;;;;;:::i;:::-;;:::i;5621:485::-;;;;;;:::i;:::-;;:::i;11031:274::-;;;;;;:::i;:::-;;:::i;11998:282::-;;;;;;:::i;:::-;;:::i;12532:273::-;;;;;;:::i;:::-;;:::i;2409:36::-;;;;;9867:269;;;;;;:::i;:::-;;:::i;2976:42::-;;;;;11577:127;;;;;;:::i;:::-;;:::i;14807:276::-;;;;;;:::i;:::-;;:::i;12288:108::-;;;;;;:::i;:::-;-1:-1:-1;;;;;12372:16:0;12345:7;12372:16;;;:9;:16;;;;;;;12288:108;2204:66;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;10533:121;;;;;;:::i;:::-;;:::i;2452:32::-;;;;;9750:109;9796:7;9823:28;9839:11;;9823:15;:28::i;:::-;9816:35;;9750:109;:::o;10144:269::-;10206:7;10226:11;10240:3;-1:-1:-1;;;;;10240:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10226:23;;10260:11;10293:3;10275:15;:21;10274:95;;10360:3;-1:-1:-1;;;;;10360:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10274:95;;;-1:-1:-1;;;10342:3:0;-1:-1:-1;;;;;10342:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10300:39;10306:3;-1:-1:-1;;;;;10306:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10317:21;10335:3;10317:15;:21;:::i;:::-;10300:5;:39::i;:::-;:51;;;;:::i;:::-;:57;;;;:::i;:::-;10260:109;-1:-1:-1;;;;10387:12:0;10260:109;10387:6;:12;:::i;:::-;:18;;;;:::i;:::-;10380:25;10144:269;-1:-1:-1;;;;10144:269:0:o;6978:208::-;7072:10;7045:4;7062:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;7062:30:0;;;;;;;;;;:38;;;7118:36;7045:4;;7062:30;;-1:-1:-1;;;;;;;;;;;7118:36:0;;;7095:5;160:25:1;;148:2;133:18;;14:177;7118:36:0;;;;;;;;-1:-1:-1;7174:4:0;6978:208;;;;;:::o;11712:278::-;11776:7;11796:11;11810:3;-1:-1:-1;;;;;11810:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11796:23;;11830:11;11863:3;11845:15;:21;11844:95;;11930:3;-1:-1:-1;;;;;11930:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11844:95;;;-1:-1:-1;;;11912:3:0;-1:-1:-1;;;;;11912:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11870:39;11876:3;-1:-1:-1;;;;;11876:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11870:39;:51;;;;:::i;:::-;:57;;;;:::i;:::-;11830:109;-1:-1:-1;11957:25:0;11964:12;-1:-1:-1;;;11964:6:0;:12;:::i;:::-;11978:3;11957:6;:25::i;6114:856::-;6195:4;-1:-1:-1;;;;;6220:16:0;;;;;;:39;;-1:-1:-1;;;;;;6240:19:0;;6254:4;6240:19;;6220:39;6212:78;;;;-1:-1:-1;;;6212:78:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;6319:15:0;;6301;6319;;;:9;:15;;;;;;6353:16;;;;6345:60;;;;-1:-1:-1;;;6345:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6422:18:0;;6430:10;6422:18;6418:359;;-1:-1:-1;;;;;6475:15:0;;6457;6475;;;:9;:15;;;;;;;;6491:10;6475:27;;;;;;;;-1:-1:-1;;6521:28:0;;6517:249;;6589:5;6578:7;:16;;6570:62;;;;-1:-1:-1;;;6570:62:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6686:15:0;;;;;;:9;:15;;;;;;;;6702:10;6686:27;;;;;;;6716:15;;;6686:45;;6517:249;6442:335;6418:359;-1:-1:-1;;;;;6814:15:0;;;;;;;:9;:15;;;;;;6832;;;6814:33;;6862:13;;;;;;;;;;:22;;;;;;6913:25;;;;;;6842:5;160:25:1;;148:2;133:18;;14:177;6913:25:0;;;;;;;;6958:4;6951:11;;;6114:856;;;;;;:::o;4167:183::-;4218:7;4262:17;4245:13;:34;:97;;4302:40;4328:13;4302:25;:40::i;4245:97::-;-1:-1:-1;4282:17:0;;4167:183::o;7194:302::-;7322:10;7276:4;7312:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;7312:30:0;;;;;;;;;;7276:4;;7312:43;;7345:10;;7312:43;:::i;:::-;7376:10;7366:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;7366:30:0;;;;;;;;;;;;:41;;;7425:39;160:25:1;;;7366:41:0;;-1:-1:-1;7366:30:0;;-1:-1:-1;;;;;;;;;;;7425:39:0;133:18:1;7425:39:0;;;;;;;;-1:-1:-1;7484:4:0;;7194:302;-1:-1:-1;;;7194:302:0:o;12404:120::-;12466:7;12493:23;12509:6;12493:15;:23::i;10662:252::-;10731:14;10758:11;10791:3;-1:-1:-1;;;;;10791:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10773:15;:27;10772:54;;10817:3;-1:-1:-1;;;;;10817:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10772:54;;;10804:3;-1:-1:-1;;;;;10804:8:0;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10758:68;-1:-1:-1;10758:68:0;10846:12;-1:-1:-1;;;10846:6:0;:12;:::i;:::-;:18;;;;:::i;:::-;10837:27;;10875:31;10881:6;10889;10897:8;10875:5;:31::i;:::-;10747:167;10662:252;;;;:::o;11313:256::-;11379:14;11406:11;11439:3;-1:-1:-1;;;;;11439:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11421:15;:27;11420:54;;11465:3;-1:-1:-1;;;;;11465:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11420:54;;;11452:3;-1:-1:-1;;;;;11452:8:0;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11406:68;-1:-1:-1;11494:25:0;11501:12;11406:68;11501:6;:12;:::i;:::-;-1:-1:-1;;;11494:6:0;:25::i;:::-;11485:34;;11530:31;11536:6;11544;11552:8;11530:5;:31::i;13751:1048::-;13953:8;13934:15;:27;;13926:65;;;;-1:-1:-1;;;13926:65:0;;9090:2:1;13926:65:0;;;9072:21:1;9129:2;9109:18;;;9102:30;9168:27;9148:18;;;9141:55;9213:18;;13926:65:0;8888:349:1;13926:65:0;-1:-1:-1;;;;;14010:19:0;;14002:56;;;;-1:-1:-1;;;14002:56:0;;9444:2:1;14002:56:0;;;9426:21:1;9483:2;9463:18;;;9456:30;9522:26;9502:18;;;9495:54;9566:18;;14002:56:0;9242:348:1;14002:56:0;-1:-1:-1;;;;;14115:13:0;;14071;14115;;;:6;:13;;;;;:15;;;;;;;;;14249:13;14266:17;14249:34;:97;;14306:40;14332:13;14306:25;:40::i;:::-;14249:97;;;14286:17;14249:97;14375:212;;;3117:95;14375:212;;;9882:25:1;-1:-1:-1;;;;;9981:15:1;;;9961:18;;;9954:43;;;;10033:15;;;10013:18;;;10006:43;10065:18;;;10058:34;;;10108:19;;;10101:35;;;10152:19;;;10145:35;;;9854:19;;14375:212:0;;;;;;;;;;;;14365:223;;;;;;14185:418;;;;;;;;-1:-1:-1;;;10449:27:1;;10501:1;10492:11;;10485:27;;;;10537:2;10528:12;;10521:28;10574:2;10565:12;;10191:392;14185:418:0;;;;;;;;;;;;;14175:429;;;;;;14145:459;;14625:43;14643:5;14650:6;14658:9;14625:17;:43::i;:::-;14617:81;;;;-1:-1:-1;;;14617:81:0;;10790:2:1;14617:81:0;;;10772:21:1;10829:2;10809:18;;;10802:30;10868:27;10848:18;;;10841:55;10913:18;;14617:81:0;10588:349:1;14617:81:0;-1:-1:-1;;;;;14711:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;14760:31;;160:25:1;;;-1:-1:-1;;;;;;;;;;;14760:31:0;133:18:1;14760:31:0;;;;;;;13915:884;;13751:1048;;;;;:::o;7504:455::-;7636:10;7591:4;7626:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;7626:30:0;;;;;;;;;;7675:26;;;;7667:72;;;;-1:-1:-1;;;7667:72:0;;;;;;;:::i;:::-;7841:10;7831:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;7831:30:0;;;;;;;;;;;;7784:25;;;;7831:40;;;;7889:38;160:25:1;;;7831:30:0;;7841:10;-1:-1:-1;;;;;;;;;;;7889:38:0;133:18:1;7889:38:0;14:177:1;5621:485:0;5684:4;-1:-1:-1;;;;;5709:16:0;;;;;;:39;;-1:-1:-1;;;;;;5729:19:0;;5743:4;5729:19;;5709:39;5701:78;;;;-1:-1:-1;;;5701:78:0;;;;;;;:::i;:::-;5818:10;5790:15;5808:21;;;:9;:21;;;;;;5848:16;;;;5840:60;;;;-1:-1:-1;;;5840:60:0;;;;;;;:::i;:::-;5948:10;5938:21;;;;:9;:21;;;;;;;;5962:15;;;5938:39;;-1:-1:-1;;;;;5992:13:0;;;;;;;;;:22;;;;;;6043:31;160:25:1;;;5992:13:0;;5948:10;6043:31;;133:18:1;6043:31:0;14:177:1;11031:274:0;11091:7;11111:11;11125:3;-1:-1:-1;;;;;11125:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11111:23;;11145:11;11178:3;11160:15;:21;11159:95;;11245:3;-1:-1:-1;;;;;11245:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11159:95;;;-1:-1:-1;;;11227:3:0;-1:-1:-1;;;;;11227:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11185:39;11191:3;-1:-1:-1;;;;;11191:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11185:39;:51;;;;:::i;:::-;:57;;;;:::i;:::-;11145:109;-1:-1:-1;11272:25:0;11279:12;11145:109;11279:6;:12;:::i;11998:282::-;12083:14;12110:11;12143:3;-1:-1:-1;;;;;12143:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12125:15;:27;12124:54;;12169:3;-1:-1:-1;;;;;12169:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12124:54;;;12156:3;-1:-1:-1;;;;;12156:8:0;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12110:68;-1:-1:-1;12198:25:0;12205:12;-1:-1:-1;;;12205:6:0;:12;:::i;12198:25::-;12189:34;;12234:38;12240:6;12248;12256:8;12266:5;12234;:38::i;:::-;12099:181;11998:282;;;;;:::o;12532:273::-;12615:14;12642:11;12675:3;-1:-1:-1;;;;;12675:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12657:15;:27;12656:54;;12701:3;-1:-1:-1;;;;;12701:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12656:54;;;12688:3;-1:-1:-1;;;;;12688:8:0;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12642:68;-1:-1:-1;;;;12730:12:0;12642:68;12730:6;:12;:::i;:::-;:18;;;;:::i;:::-;12721:27;;12759:38;12765:6;12773;12781:8;12791:5;12759;:38::i;9867:269::-;9929:7;9949:11;9963:3;-1:-1:-1;;;;;9963:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9949:23;;9983:11;10016:3;9998:15;:21;9997:95;;10083:3;-1:-1:-1;;;;;10083:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9997:95;;;-1:-1:-1;;;10065:3:0;-1:-1:-1;;;;;10065:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10023:39;10029:3;-1:-1:-1;;;;;10029:7:0;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10023:39;:51;;;;:::i;:::-;:57;;;;:::i;:::-;9983:109;-1:-1:-1;9983:109:0;10110:12;-1:-1:-1;;;10110:6:0;:12;:::i;11577:127::-;-1:-1:-1;;;;;11679:16:0;;11636:7;11679:16;;;:9;:16;;;;;;11663:33;;:15;:33::i;14807:276::-;15009:66;15016:5;15023:7;15032:5;15039:8;15066:1;15069;15072;15049:25;;;;;;;;;11123:19:1;;;11167:2;11158:12;;11151:28;;;;11235:3;11213:16;-1:-1:-1;;;;;;11209:36:1;11204:2;11195:12;;11188:58;11271:2;11262:12;;10942:338;15049:25:0;;;;;;;;;;;;;15009:6;:66::i;:::-;14807:276;;;;;;;:::o;10533:121::-;10596:7;10623:23;10639:6;10623:15;:23::i;4358:1052::-;4418:9;4471:1;4473:52;;;;4573:9;;;4583:19;;;;4618:1;4613:6;;4566:55;;4583:19;-1:-1:-1;;;4592:8:0;;4566:55;-1:-1:-1;4660:1:0;4709:9;;;;4651:11;4698:679;4721:1;4698:679;;;4781:1;4778;4774:9;4830:1;4826;4822:2;4818:10;4815:17;4805:44;;4845:1;4843;4836:11;4805:44;4894:4;4890:2;4886:13;4936:2;4927:7;4924:15;4921:34;;;4951:1;4949;4942:11;4921:34;-1:-1:-1;;;4982:17:0;;;-1:-1:-1;;5024:8:0;;;5021:337;;;5077:1;5074;5070:9;5153:1;5149;5145:2;5141:10;5138:17;5131:25;5126:1;5119:9;5112:17;5108:49;5105:68;;;5169:1;5167;5160:11;5105:68;5222:4;5218:2;5214:13;5268:2;5259:7;5256:15;5253:34;;;5283:1;5281;5274:11;5253:34;-1:-1:-1;;;5318:17:0;;;-1:-1:-1;;5021:337:0;4736:1;4734;4730:8;4725:13;;4698:679;;;4702:18;4464:928;;4473:52;4488:1;4490:17;;;;4522:1;4517:6;;4481:43;;4490:17;-1:-1:-1;;;4498:8:0;;4481:43;;4464:928;4358:1052;;;;:::o;5418:161::-;5479:9;5530:1;5535;5530:6;:30;;5559:1;5530:30;;;5550:1;5545;5541;:5;5540:11;;;;;:::i;:::-;;5555:1;5539:17;5526:34;5418:161;-1:-1:-1;;;5418:161:0:o;3733:426::-;4017:4;;;;;;;;;;;-1:-1:-1;;;4017:4:0;;;;;4058:7;;;;;;;;;;-1:-1:-1;;;4058:7:0;;;;3858:282;;3887:95;3858:282;;;11544:25:1;4001:22:0;11585:18:1;;;11578:34;4042:25:0;11628:18:1;;;11621:34;11671:18;;;11664:34;;;;4120:4:0;11714:19:1;;;;11707:61;;;;3858:282:0;;;;;;;;;;11516:19:1;;;;3858:282:0;;;3834:317;;;;;;3733:426::o;8004:643::-;-1:-1:-1;;;;;8097:22:0;;;;;;:51;;-1:-1:-1;;;;;;8123:25:0;;8143:4;8123:25;;8097:51;8089:90;;;;-1:-1:-1;;;8089:90:0;;;;;;;:::i;:::-;8192:51;;-1:-1:-1;;;8192:51:0;;8209:10;8192:51;;;12019:34:1;8229:4:0;12069:18:1;;;12062:43;12121:18;;;12114:34;;;8192:3:0;-1:-1:-1;;;;;8192:16:0;;;;11954:18:1;;8192:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8254:35:0;;-1:-1:-1;;;8254:35:0;;8275:4;8254:35;;;12615:51:1;12682:18;;;12675:34;;;8254:7:0;-1:-1:-1;;;;;8254:12:0;;;;12588:18:1;;8254:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8300:16:0;;-1:-1:-1;;;8300:16:0;;;;;160:25:1;;;8300:3:0;-1:-1:-1;;;;;8300:8:0;;-1:-1:-1;8300:8:0;;-1:-1:-1;133:18:1;;8300:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;8488:19:0;;;;;;:9;:19;;;;;;;;;;:28;;8466:50;;8545:11;;:20;;8531:34;;;8594:45;;12894:25:1;;;12935:18;;;12928:34;;;8602:10:0;;8594:45;;12867:18:1;8594:45:0;;;;;;;8004:643;;;:::o;12852:891::-;12992:4;13013:9;:16;13033:2;13013:22;13009:410;;13176:4;13161:20;;;13155:27;13226:4;13211:20;;;13205:27;13284:4;13269:20;;;13263:27;13334:26;;13052:9;13334:26;;;;;;;;;13200:25:1;;;13255:36:0;;13241:18:1;;;13234:45;;;13295:18;;13288:34;;;13338:18;;;13331:34;;;13155:27:0;;13334:26;;13172:19:1;;13334:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13324:36:0;:6;-1:-1:-1;;;;;13324:36:0;;13320:88;;13388:4;13381:11;;;;;;;13320:88;13037:382;;;13009:410;13432:12;13446:19;13469:6;-1:-1:-1;;;;;13469:17:0;13524:34;;;13560:6;13568:9;13501:77;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;13501:77:0;;;;;;;;;;;;;;-1:-1:-1;;;;;13501:77:0;-1:-1:-1;;;;;;13501:77:0;;;;;;;;;;13469:120;;;;13501:77;13469:120;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13431:158;;;;13608:7;:43;;;;;13632:6;:13;13649:2;13632:19;13608:43;:126;;;;-1:-1:-1;13668:28:0;;-1:-1:-1;;;13700:34:0;13668:28;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;13668:66:0;;13608:126;13600:135;12852:891;-1:-1:-1;;;;;;12852:891:0:o;8655:965::-;-1:-1:-1;;;;;8773:16:0;;8755:15;8773:16;;;:9;:16;;;;;;8808:17;;;;8800:61;;;;-1:-1:-1;;;8800:61:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8878:19:0;;8887:10;8878:19;8874:364;;-1:-1:-1;;;;;8932:16:0;;8914:15;8932:16;;;:9;:16;;;;;;;;8949:10;8932:28;;;;;;;;-1:-1:-1;;8979:28:0;;8975:252;;9047:6;9036:7;:17;;9028:63;;;;-1:-1:-1;;;9028:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9145:16:0;;;;;;:9;:16;;;;;;;;9162:10;9145:28;;;;;;;9176:16;;;9145:47;;8975:252;8899:339;8874:364;-1:-1:-1;;;;;9275:16:0;;;;;;;:9;:16;;;;;;9294;;;9275:35;;9440:11;;:20;;;9421:39;;;9484:16;-1:-1:-1;;;9484:16:0;;;;;160:25:1;;;9484:3:0;:8;;;;;;133:18:1;;9484:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9511:30:0;;-1:-1:-1;;;9511:30:0;;-1:-1:-1;;;;;12633:32:1;;;9511:30:0;;;12615:51:1;12682:18;;;12675:34;;;9511:7:0;:12;;-1:-1:-1;9511:12:0;;-1:-1:-1;12588:18:1;;9511:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9559:53:0;;;12894:25:1;;;12950:2;12935:18;;12928:34;;;-1:-1:-1;;;;;9559:53:0;;;;-1:-1:-1;9559:53:0;;;-1:-1:-1;9568:10:0;;9559:53;;12867:18:1;9559:53:0;;;;;;;8744:876;8655:965;;;;:::o;196:250:1:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:271::-;493:3;531:5;525:12;558:6;553:3;546:19;574:76;643:6;636:4;631:3;627:14;620:4;613:5;609:16;574:76;:::i;:::-;704:2;683:15;-1:-1:-1;;679:29:1;670:39;;;;711:4;666:50;;451:271;-1:-1:-1;;451:271:1:o;727:220::-;876:2;865:9;858:21;839:4;896:45;937:2;926:9;922:18;914:6;896:45;:::i;952:180::-;1011:6;1064:2;1052:9;1043:7;1039:23;1035:32;1032:52;;;1080:1;1077;1070:12;1032:52;-1:-1:-1;1103:23:1;;952:180;-1:-1:-1;952:180:1:o;1137:173::-;1205:20;;-1:-1:-1;;;;;1254:31:1;;1244:42;;1234:70;;1300:1;1297;1290:12;1234:70;1137:173;;;:::o;1315:254::-;1383:6;1391;1444:2;1432:9;1423:7;1419:23;1415:32;1412:52;;;1460:1;1457;1450:12;1412:52;1483:29;1502:9;1483:29;:::i;:::-;1473:39;1559:2;1544:18;;;;1531:32;;-1:-1:-1;;;1315:254:1:o;1766:328::-;1843:6;1851;1859;1912:2;1900:9;1891:7;1887:23;1883:32;1880:52;;;1928:1;1925;1918:12;1880:52;1951:29;1970:9;1951:29;:::i;:::-;1941:39;;1999:38;2033:2;2022:9;2018:18;1999:38;:::i;:::-;1989:48;;2084:2;2073:9;2069:18;2056:32;2046:42;;1766:328;;;;;:::o;2900:186::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;3051:29;3070:9;3051:29;:::i;3313:254::-;3381:6;3389;3442:2;3430:9;3421:7;3417:23;3413:32;3410:52;;;3458:1;3455;3448:12;3410:52;3494:9;3481:23;3471:33;;3523:38;3557:2;3546:9;3542:18;3523:38;:::i;:::-;3513:48;;3313:254;;;;;:::o;3572:127::-;3633:10;3628:3;3624:20;3621:1;3614:31;3664:4;3661:1;3654:15;3688:4;3685:1;3678:15;3704:1207;3808:6;3816;3824;3832;3840;3893:3;3881:9;3872:7;3868:23;3864:33;3861:53;;;3910:1;3907;3900:12;3861:53;3933:29;3952:9;3933:29;:::i;:::-;3923:39;;3981:38;4015:2;4004:9;4000:18;3981:38;:::i;:::-;3971:48;;4066:2;4055:9;4051:18;4038:32;4028:42;;4117:2;4106:9;4102:18;4089:32;4079:42;;4172:3;4161:9;4157:19;4144:33;4196:18;4237:2;4229:6;4226:14;4223:34;;;4253:1;4250;4243:12;4223:34;4291:6;4280:9;4276:22;4266:32;;4336:7;4329:4;4325:2;4321:13;4317:27;4307:55;;4358:1;4355;4348:12;4307:55;4394:2;4381:16;4416:2;4412;4409:10;4406:36;;;4422:18;;:::i;:::-;4497:2;4491:9;4465:2;4551:13;;-1:-1:-1;;4547:22:1;;;4571:2;4543:31;4539:40;4527:53;;;4595:18;;;4615:22;;;4592:46;4589:72;;;4641:18;;:::i;:::-;4681:10;4677:2;4670:22;4716:2;4708:6;4701:18;4756:7;4751:2;4746;4742;4738:11;4734:20;4731:33;4728:53;;;4777:1;4774;4767:12;4728:53;4833:2;4828;4824;4820:11;4815:2;4807:6;4803:15;4790:46;4878:1;4873:2;4868;4860:6;4856:15;4852:24;4845:35;4899:6;4889:16;;;;;;;3704:1207;;;;;;;;:::o;4916:328::-;4993:6;5001;5009;5062:2;5050:9;5041:7;5037:23;5033:32;5030:52;;;5078:1;5075;5068:12;5030:52;5114:9;5101:23;5091:33;;5143:38;5177:2;5166:9;5162:18;5143:38;:::i;:::-;5133:48;;5200:38;5234:2;5223:9;5219:18;5200:38;:::i;:::-;5190:48;;4916:328;;;;;:::o;5475:693::-;5586:6;5594;5602;5610;5618;5626;5634;5687:3;5675:9;5666:7;5662:23;5658:33;5655:53;;;5704:1;5701;5694:12;5655:53;5727:29;5746:9;5727:29;:::i;:::-;5717:39;;5775:38;5809:2;5798:9;5794:18;5775:38;:::i;:::-;5765:48;;5860:2;5849:9;5845:18;5832:32;5822:42;;5911:2;5900:9;5896:18;5883:32;5873:42;;5965:3;5954:9;5950:19;5937:33;6010:4;6003:5;5999:16;5992:5;5989:27;5979:55;;6030:1;6027;6020:12;5979:55;5475:693;;;;-1:-1:-1;5475:693:1;;;;6053:5;6105:3;6090:19;;6077:33;;-1:-1:-1;6157:3:1;6142:19;;;6129:33;;5475:693;-1:-1:-1;;5475:693:1:o;6173:260::-;6241:6;6249;6302:2;6290:9;6281:7;6277:23;6273:32;6270:52;;;6318:1;6315;6308:12;6270:52;6341:29;6360:9;6341:29;:::i;:::-;6331:39;;6389:38;6423:2;6412:9;6408:18;6389:38;:::i;6660:184::-;6730:6;6783:2;6771:9;6762:7;6758:23;6754:32;6751:52;;;6799:1;6796;6789:12;6751:52;-1:-1:-1;6822:16:1;;6660:184;-1:-1:-1;6660:184:1:o;6849:127::-;6910:10;6905:3;6901:20;6898:1;6891:31;6941:4;6938:1;6931:15;6965:4;6962:1;6955:15;6981:128;7048:9;;;7069:11;;;7066:37;;;7083:18;;:::i;7114:168::-;7187:9;;;7218;;7235:15;;;7229:22;;7215:37;7205:71;;7256:18;;:::i;7287:127::-;7348:10;7343:3;7339:20;7336:1;7329:31;7379:4;7376:1;7369:15;7403:4;7400:1;7393:15;7419:217;7459:1;7485;7475:132;;7529:10;7524:3;7520:20;7517:1;7510:31;7564:4;7561:1;7554:15;7592:4;7589:1;7582:15;7475:132;-1:-1:-1;7621:9:1;;7419:217::o;7641:350::-;7843:2;7825:21;;;7882:2;7862:18;;;7855:30;7921:28;7916:2;7901:18;;7894:56;7982:2;7967:18;;7641:350::o;7996:355::-;8198:2;8180:21;;;8237:2;8217:18;;;8210:30;8276:33;8271:2;8256:18;;8249:61;8342:2;8327:18;;7996:355::o;8356:397::-;8558:2;8540:21;;;8597:2;8577:18;;;8570:30;8636:34;8631:2;8616:18;;8609:62;-1:-1:-1;;;8702:2:1;8687:18;;8680:31;8743:3;8728:19;;8356:397::o;8758:125::-;8823:9;;;8844:10;;;8841:36;;;8857:18;;:::i;12159:277::-;12226:6;12279:2;12267:9;12258:7;12254:23;12250:32;12247:52;;;12295:1;12292;12285:12;12247:52;12327:9;12321:16;12380:5;12373:13;12366:21;12359:5;12356:32;12346:60;;12402:1;12399;12392:12;13376:289;13551:6;13540:9;13533:25;13594:2;13589;13578:9;13574:18;13567:30;13514:4;13614:45;13655:2;13644:9;13640:18;13632:6;13614:45;:::i;13670:287::-;13799:3;13837:6;13831:13;13853:66;13912:6;13907:3;13900:4;13892:6;13888:17;13853:66;:::i;:::-;13935:16;;;;;13670:287;-1:-1:-1;;13670:287:1:o;13962:290::-;14031:6;14084:2;14072:9;14063:7;14059:23;14055:32;14052:52;;;14100:1;14097;14090:12;14052:52;14126:16;;-1:-1:-1;;;;;;14171:32:1;;14161:43;;14151:71;;14218:1;14215;14208:12

Swarm Source

ipfs://293e4440d9b8d809025462018f9cf991307dc9c59175e4bef40a39bc9e546709

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

Savings Dai (sDAI) is an ERC-4626 representation/wrapper of DAI in the Dai Savings Rate (DSR) module.

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.