ETH Price: $4,325.26 (-4.23%)

Contract

0xf6e72Db5454dd049d0788e411b06CfAF16853042
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Buy Gem235413782025-10-09 16:30:112 hrs ago1760027411IN
Sky: LitePSM USDC A
0 ETH0.000146081.62327075
Buy Gem235404482025-10-09 13:22:475 hrs ago1760016167IN
Sky: LitePSM USDC A
0 ETH0.000024030.29124673
Buy Gem235400822025-10-09 12:09:237 hrs ago1760011763IN
Sky: LitePSM USDC A
0 ETH0.000039030.43381294
Sell Gem235378522025-10-09 4:39:5914 hrs ago1759984799IN
Sky: LitePSM USDC A
0 ETH0.000147151.658
Buy Gem235347662025-10-08 18:18:4724 hrs ago1759947527IN
Sky: LitePSM USDC A
0 ETH0.000093421.28146004
Sell Gem235340052025-10-08 15:44:5927 hrs ago1759938299IN
Sky: LitePSM USDC A
0 ETH0.000177141.99587452
Sell Gem235313232025-10-08 6:43:2336 hrs ago1759905803IN
Sky: LitePSM USDC A
0 ETH0.000065140.73400962
Sell Gem235289992025-10-07 22:55:3544 hrs ago1759877735IN
Sky: LitePSM USDC A
0 ETH0.000063190.71209636
Sell Gem235281102025-10-07 19:57:1147 hrs ago1759867031IN
Sky: LitePSM USDC A
0 ETH0.000032650.48847627
Sell Gem235280472025-10-07 19:44:3547 hrs ago1759866275IN
Sky: LitePSM USDC A
0 ETH0.000044170.52628857
Buy Gem235280072025-10-07 19:36:3547 hrs ago1759865795IN
Sky: LitePSM USDC A
0 ETH0.000064340.71483142
Buy Gem235279942025-10-07 19:33:5947 hrs ago1759865639IN
Sky: LitePSM USDC A
0 ETH0.000049210.51908718
Buy Gem235279752025-10-07 19:30:1147 hrs ago1759865411IN
Sky: LitePSM USDC A
0 ETH0.000052760.55657194
Buy Gem235245212025-10-07 7:55:472 days ago1759823747IN
Sky: LitePSM USDC A
0 ETH0.000116061.16530677
Buy Gem235231162025-10-07 3:12:232 days ago1759806743IN
Sky: LitePSM USDC A
0 ETH0.000009860.10961446
Buy Gem235226612025-10-07 1:40:232 days ago1759801223IN
Sky: LitePSM USDC A
0 ETH0.000110941.1703011
Buy Gem235191872025-10-06 14:00:353 days ago1759759235IN
Sky: LitePSM USDC A
0 ETH0.000311423.45921532
Sell Gem235171032025-10-06 7:00:473 days ago1759734047IN
Sky: LitePSM USDC A
0 ETH0.000075131.12399663
Sell Gem235155102025-10-06 1:40:113 days ago1759714811IN
Sky: LitePSM USDC A
0 ETH0.000010540.14720507
Sell Gem235154842025-10-06 1:34:593 days ago1759714499IN
Sky: LitePSM USDC A
0 ETH0.000010050.14044769
Buy Gem235145932025-10-05 22:36:113 days ago1759703771IN
Sky: LitePSM USDC A
0 ETH0.000007940.10897555
Buy Gem235103852025-10-05 8:31:114 days ago1759653071IN
Sky: LitePSM USDC A
0 ETH0.000012340.1371785
Sell Gem235089542025-10-05 3:42:354 days ago1759635755IN
Sky: LitePSM USDC A
0 ETH0.000094991.13147161
Sell Gem235068822025-10-04 20:45:234 days ago1759610723IN
Sky: LitePSM USDC A
0 ETH0.000009610.10828753
Sell Gem235036582025-10-04 9:56:235 days ago1759571783IN
Sky: LitePSM USDC A
0 ETH0.000090331.127141
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
DssLitePsm

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
london EvmVersion
File 1 of 1 : DssLitePsm.sol
// SPDX-FileCopyrightText: © 2023 Dai Foundation <www.daifoundation.org>
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.
pragma solidity ^0.8.16;

interface VatLike {
    function frob(bytes32, address, address, address, int256, int256) external;
    function hope(address) external;
    function ilks(bytes32) external view returns (uint256, uint256, uint256, uint256, uint256);
    function debt() external view returns (uint256);
    function Line() external view returns (uint256);
    function urns(bytes32, address) external view returns (uint256, uint256);
    function live() external view returns (uint256);
}

interface GemLike {
    function balanceOf(address) external view returns (uint256);
    function decimals() external view returns (uint8);
    function approve(address, uint256) external;
    function transfer(address, uint256) external;
    function transferFrom(address, address, uint256) external;
}

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

/**
 * @title A lightweight PSM implementation.
 * @notice Swaps Dai for `gem` at a 1:1 exchange rate.
 * @notice Fees `tin` and `tout` might apply.
 * @dev `gem` balance is kept in `pocket` instead of this contract.
 * @dev A few assumptions are made:
 *      1. There are no other urns for the same `ilk`
 *      2. Stability fee is always zero for the `ilk`
 *      3. The `spot` price for gem is always 1 (`10**27`).
 *      4. The `spotter.par` (Dai parity) is always 1 (`10**27`).
 *      5. This contract can freely transfer `gem` on behalf of `pocket`.
 */
contract DssLitePsm {
    /// @notice Special value for `tin` and/or `tout` to indicate swaps are halted.
    /// @dev Setting `tin` or `tout` to `type(uint256).max` will cause sell gem and buy gem functions respectively to revert.
    uint256 public constant HALTED = type(uint256).max;
    /// @notice Collateral type identifier.
    bytes32 public immutable ilk;
    /// @notice Maker Protocol core engine.
    VatLike public immutable vat;
    /// @notice Dai adapter.
    DaiJoinLike public immutable daiJoin;
    /// @notice Dai token.
    GemLike public immutable dai;
    /// @notice Gem to exchange with Dai.
    GemLike public immutable gem;
    /// @notice Precision conversion factor for `gem`, since Dai is expected to always have 18 decimals.
    uint256 public immutable to18ConversionFactor;
    /// @notice The ultimate holder of the gems.
    /// @dev This contract should be able to freely transfer `gem` on behalf of `pocket`.
    address public immutable pocket;

    /// @notice Addresses with admin access on this contract. `wards[usr]`.
    mapping(address => uint256) public wards;
    /// @notice Addresses with permission to swap with no fees. `bud[usr]`.
    mapping(address => uint256) public bud;
    /// @notice Maker Protocol balance sheet.
    address public vow;
    /// @notice Fee for selling gems.
    /// @dev `wad` precision. 1 * WAD means a 100% fee.
    uint256 public tin;
    /// @notice Fee for buying gems.
    /// @dev `wad` precision. 1 * WAD means a 100% fee.
    uint256 public tout;
    /// @notice Buffer for pre-minted Dai.
    /// @dev `wad` precision.
    uint256 public buf;

    /// @dev `wad` precision.
    uint256 internal constant WAD = 10 ** 18;
    /// @dev `ray` precision for `vat` manipulation.
    uint256 internal constant RAY = 10 ** 27;
    /// @dev Workaround to explicitly revert with an arithmetic error.
    string internal constant ARITHMETIC_ERROR = string(abi.encodeWithSignature("Panic(uint256)", 0x11));

    /**
     * @notice `usr` was granted admin access.
     * @param usr The user address.
     */
    event Rely(address indexed usr);
    /**
     * @notice `usr` admin access was revoked.
     * @param usr The user address.
     */
    event Deny(address indexed usr);
    /**
     * @notice `usr` was granted permission to swap without any fees.
     * @param usr The user address.
     */
    event Kiss(address indexed usr);
    /**
     * @notice Permission revoked for `usr` to swap without any fees.
     * @param usr The user address.
     */
    event Diss(address indexed usr);
    /**
     * @notice A contract parameter was updated.
     * @param what The changed parameter name. ["vow"].
     * @param data The new value of the parameter.
     */
    event File(bytes32 indexed what, address data);
    /**
     * @notice A contract parameter was updated.
     * @param what The changed parameter name. ["tin", "tout", "buf"].
     * @param data The new value of the parameter.
     */
    event File(bytes32 indexed what, uint256 data);
    /**
     * @notice A user sold `gem` for Dai.
     * @param owner The address receiving Dai.
     * @param value The amount of `gem` sold. [`gem` precision].
     * @param fee The fee in Dai paid by the user. [`wad`].
     */
    event SellGem(address indexed owner, uint256 value, uint256 fee);
    /**
     * @notice A user bought `gem` with Dai.
     * @param owner The address receiving `gem`.
     * @param value The amount of `gem` bought. [`gem` precision].
     * @param fee The fee in Dai paid by the user. [`wad`].
     */
    event BuyGem(address indexed owner, uint256 value, uint256 fee);
    /**
     * @notice The contract was filled with Dai.
     * @param wad The amount of Dai filled.
     */
    event Fill(uint256 wad);
    /**
     * @notice The contract was trimmed of excess Dai.
     * @param wad The amount of Dai trimmed.
     */
    event Trim(uint256 wad);
    /**
     * @notice Dai accumulated as swap fees was added to the surplus buffer.
     * @param wad The amount of Dai added.
     */
    event Chug(uint256 wad);

    modifier auth() {
        require(wards[msg.sender] == 1, "DssLitePsm/not-authorized");
        _;
    }

    modifier toll() {
        require(bud[msg.sender] == 1, "DssLitePsm/not-whitelisted");
        _;
    }

    /**
     * @param ilk_ The collateral type identifier.
     * @param gem_ The gem to exchange with Dai.
     * @param daiJoin_ The Dai adapter.
     * @param pocket_ The ultimate holder of `gem`.
     */
    constructor(bytes32 ilk_, address gem_, address daiJoin_, address pocket_) {
        ilk = ilk_;
        gem = GemLike(gem_);
        daiJoin = DaiJoinLike(daiJoin_);
        vat = VatLike(daiJoin.vat());
        dai = GemLike(daiJoin.dai());
        pocket = pocket_;

        to18ConversionFactor = 10 ** (18 - gem.decimals());

        dai.approve(daiJoin_, type(uint256).max);
        vat.hope(daiJoin_);

        wards[msg.sender] = 1;
        emit Rely(msg.sender);
    }

    /*//////////////////////////////////
                    Math
    //////////////////////////////////*/

    ///@dev Safely converts `uint256` to `int256`. Reverts if it overflows.
    function _int256(uint256 x) internal pure returns (int256 y) {
        require((y = int256(x)) >= 0, ARITHMETIC_ERROR);
    }

    ///@dev Returns the min between `x` and `y`.
    function _min(uint256 x, uint256 y) internal pure returns (uint256 z) {
        return x < y ? x : y;
    }

    ///@dev Returns the max between `x` and `y`.
    function _max(uint256 x, uint256 y) internal pure returns (uint256 z) {
        return x > y ? x : y;
    }

    ///@dev Returns the difference between `x` and `y` if `x > y` or zero otherwise.
    function _subcap(uint256 x, uint256 y) internal pure returns (uint256 z) {
        unchecked {
            z = x > y ? x - y : 0;
        }
    }

    /*//////////////////////////////////
               Administration
    //////////////////////////////////*/

    /**
     * @notice Grants `usr` admin access to this contract.
     * @param usr The user address.
     */
    function rely(address usr) external auth {
        wards[usr] = 1;
        emit Rely(usr);
    }

    /**
     * @notice Revokes `usr` admin access from this contract.
     * @param usr The user address.
     */
    function deny(address usr) external auth {
        wards[usr] = 0;
        emit Deny(usr);
    }

    /**
     * @notice Grants `usr` permission to swap without any fees.
     * @param usr The user address.
     */
    function kiss(address usr) external auth {
        bud[usr] = 1;
        emit Kiss(usr);
    }

    /**
     * @notice Revokes `usr` permission to swap without any fees.
     * @param usr The user address.
     */
    function diss(address usr) external auth {
        bud[usr] = 0;
        emit Diss(usr);
    }

    /**
     * @notice Updates a contract parameter.
     * @param what The changed parameter name. ["vow"].
     * @param data The new value of the parameter.
     */
    function file(bytes32 what, address data) external auth {
        if (what == "vow") {
            vow = data;
        } else {
            revert("DssLitePsm/file-unrecognized-param");
        }

        emit File(what, data);
    }

    /**
     * @notice Updates a contract parameter.
     * @dev Swapping fees may not apply due to rounding errors for small swaps where
     *      `gemAmt < 10**gem.decimals() / tin` or
     *      `gemAmt < 10**gem.decimals() / tout`.
     * @dev Setting `tin` or `tout` to `HALTED` effectively disables selling and buying gems respectively.
     * @param what The changed parameter name. ["tin", "tout", "buf"].
     * @param data The new value of the parameter.
     */
    function file(bytes32 what, uint256 data) external auth {
        if (what == "tin") {
            require(data == HALTED || data <= WAD, "DssLitePsm/tin-out-of-range");
            tin = data;
        } else if (what == "tout") {
            require(data == HALTED || data <= WAD, "DssLitePsm/tout-out-of-range");
            tout = data;
        } else if (what == "buf") {
            buf = data;
        } else {
            revert("DssLitePsm/file-unrecognized-param");
        }

        emit File(what, data);
    }

    /*//////////////////////////////////
                  Swapping
    //////////////////////////////////*/

    /**
     * @notice Function that swaps `gem` into Dai.
     * @dev Reverts if `tin` is set to `HALTED`.
     * @param usr The destination of the bought Dai.
     * @param gemAmt The amount of gem to sell. [`gem` precision].
     * @return daiOutWad The amount of Dai bought.
     */
    function sellGem(address usr, uint256 gemAmt) external returns (uint256 daiOutWad) {
        uint256 tin_ = tin;
        require(tin_ != HALTED, "DssLitePsm/sell-gem-halted");
        daiOutWad = _sellGem(usr, gemAmt, tin_);
    }

    /**
     * @notice Function that swaps `gem` into Dai without any fees.
     * @dev Only users whitelisted through `kiss()` can call this function.
     *      Reverts if `tin` is set to `HALTED`.
     * @param usr The destination of the bought Dai.
     * @param gemAmt The amount of gem to sell. [`gem` precision].
     * @return daiOutWad The amount of Dai bought.
     */
    function sellGemNoFee(address usr, uint256 gemAmt) external toll returns (uint256 daiOutWad) {
        require(tin != HALTED, "DssLitePsm/sell-gem-halted");
        daiOutWad = _sellGem(usr, gemAmt, 0);
    }

    /**
     * @notice Internal function that implements the logic to swaps `gem` into Dai.
     * @param usr The destination of the bought Dai.
     * @param gemAmt The amount of gem to sell. [`gem` precision].
     * @param tin_ The fee rate applicable to the swap [`1 * WAD` = 100%].
     * @return daiOutWad The amount of Dai bought.
     */
    function _sellGem(address usr, uint256 gemAmt, uint256 tin_) internal returns (uint256 daiOutWad) {
        daiOutWad = gemAmt * to18ConversionFactor;
        uint256 fee;
        if (tin_ > 0) {
            fee = daiOutWad * tin_ / WAD;
            // At this point, `tin_ <= 1 WAD`, so an underflow is not possible.
            unchecked {
                daiOutWad -= fee;
            }
        }

        gem.transferFrom(msg.sender, pocket, gemAmt);
        // This can consume the whole balance including system fees not withdrawn.
        dai.transfer(usr, daiOutWad);

        emit SellGem(usr, gemAmt, fee);
    }

    /**
     * @notice Function that swaps Dai into `gem`.
     * @dev Reverts if `tout` is set to `HALTED`.
     * @param usr The destination of the bought gems.
     * @param gemAmt The amount of gem to buy. [`gem` precision].
     * @return daiInWad The amount of Dai required to sell.
     */
    function buyGem(address usr, uint256 gemAmt) external returns (uint256 daiInWad) {
        uint256 tout_ = tout;
        require(tout_ != HALTED, "DssLitePsm/buy-gem-halted");
        daiInWad = _buyGem(usr, gemAmt, tout_);
    }

    /**
     * @notice Function that swaps Dai into `gem` without any fees.
     * @dev Only users whitelisted through `kiss()` can call this function.
     *      Reverts if `tout` is set to `HALTED`.
     * @param usr The destination of the bought gems.
     * @param gemAmt The amount of gem to buy. [`gem` precision].
     * @return daiInWad The amount of Dai required to sell.
     */
    function buyGemNoFee(address usr, uint256 gemAmt) external toll returns (uint256 daiInWad) {
        require(tout != HALTED, "DssLitePsm/buy-gem-halted");
        daiInWad = _buyGem(usr, gemAmt, 0);
    }

    /**
     * @notice Internal function implementing the logic that swaps Dai into `gem`.
     * @param usr The destination of the bought gems.
     * @param gemAmt The amount of gem to buy. [`gem` precision].
     * @param tout_ The fee rate applicable to the swap [`1 * WAD` = 100%].
     * @return daiInWad The amount of Dai required to sell.
     */
    function _buyGem(address usr, uint256 gemAmt, uint256 tout_) internal returns (uint256 daiInWad) {
        daiInWad = gemAmt * to18ConversionFactor;
        uint256 fee;
        if (tout_ > 0) {
            fee = daiInWad * tout_ / WAD;
            daiInWad += fee;
        }

        dai.transferFrom(msg.sender, address(this), daiInWad);
        gem.transferFrom(pocket, usr, gemAmt);

        emit BuyGem(usr, gemAmt, fee);
    }

    /*//////////////////////////////////
                Bookkeeping
    //////////////////////////////////*/

    /**
     * @notice Mints Dai into this contract.
     * @dev Both `buf`, the local and global debt ceilings limit the actual minted amount.
     *      Notice that `gem` donations or extraneous debt repayments can also affect the amount.
     * @return wad The amount of Dai minted.
     */
    function fill() external returns (uint256 wad) {
        wad = rush();
        require(wad > 0, "DssLitePsm/nothing-to-fill");

        // The `urn` for this contract in the `Vat` is expected to have "unlimited" `ink`.
        vat.frob(ilk, address(this), address(0), address(this), 0, _int256(wad));
        daiJoin.exit(address(this), wad);

        emit Fill(wad);
    }

    /**
     * @notice Burns any excess of Dai from this contract.
     * @dev The total outstanding debt can still be larger than the debt ceiling after `trim`.
     *      Additional `buyGem` calls will enable further `trim` calls.
     * @return wad The amount of Dai burned.
     */
    function trim() external returns (uint256 wad) {
        wad = gush();
        require(wad > 0, "DssLitePsm/nothing-to-trim");

        daiJoin.join(address(this), wad);
        // The `urn` for this contract in the `Vat` is expected to have "unlimited" `ink`.
        vat.frob(ilk, address(this), address(0), address(this), 0, -_int256(wad));

        emit Trim(wad);
    }

    /**
     * @notice Incorporates any outstanding accumulated fees into the surplus buffer.
     * @return wad The amount added to the surplus buffer.
     */
    function chug() external returns (uint256 wad) {
        address vow_ = vow;
        require(vow_ != address(0), "DssLitePsm/chug-missing-vow");

        wad = cut();
        require(wad > 0, "DssLitePsm/nothing-to-chug");

        daiJoin.join(vow_, wad);

        emit Chug(wad);
    }

    /*//////////////////////////////////
                  Getters
    //////////////////////////////////*/

    /**
     * @notice Returns the missing Dai that can be filled into this contract.
     * @return wad The amount of Dai.
     */
    function rush() public view returns (uint256 wad) {
        (uint256 Art, uint256 rate,, uint256 line,) = vat.ilks(ilk);
        require(rate == RAY, "DssLitePsm/rate-not-RAY");
        uint256 tArt = gem.balanceOf(pocket) * to18ConversionFactor + buf;

        wad = _min(
            _min(
                // To avoid two extra SLOADs it assumes urn.art == ilk.Art.
                _subcap(tArt, Art),
                _subcap(line / RAY, Art)
            ),
            _subcap(vat.Line(), vat.debt()) / RAY
        );
    }

    /**
     * @notice Returns the excess Dai that can be trimmed from this contract.
     * @return wad The amount of Dai.
     */
    function gush() public view returns (uint256 wad) {
        (uint256 Art, uint256 rate,, uint256 line,) = vat.ilks(ilk);
        require(rate == RAY, "DssLitePsm/rate-not-RAY");
        uint256 tArt = gem.balanceOf(pocket) * to18ConversionFactor + buf;

        wad = _min(
            _max(
                // To avoid two extra SLOADs it assumes urn.art == ilk.Art.
                _subcap(Art, tArt),
                _subcap(Art, line / RAY)
            ),
            // Cannot burn more than the current balance.
            dai.balanceOf(address(this))
        );
    }

    /**
     * @notice Returns the amount of swapping fees that can be chugged by this contract.
     * @dev To keep `_sellGem` gas usage low, it allows users to take pre-minted Dai up to the whole balance, regardless
     *      if part of it consist of collected fees.
     *      If there is not enough balance, it will need to wait for new pre-minted Dai to be generated or Dai swapped
     *      back to complete the withdrawal of fees.
     * @return wad The amount of Dai.
     */
    function cut() public view returns (uint256 wad) {
        (, uint256 art) = vat.urns(ilk, address(this));
        uint256 cash = dai.balanceOf(address(this));

        wad = _min(cash, cash + gem.balanceOf(pocket) * to18ConversionFactor - art);
    }

    /*//////////////////////////////////
            Compatibility Layer
    //////////////////////////////////*/

    /**
     * @notice Returns the address of the LitePsm contract itself.
     * @dev LitePsm does not have an external gem join. All logic is handled internally.
     *      This function is required because there are some dependencies that assume every PSM has a gem join.
     * @return The address of this contract.
     */
    function gemJoin() external view returns (address) {
        return address(this);
    }

    /**
     * @notice Returns the number of decimals for `gem`.
     * @return The number of decimals for `gem`.
     */
    function dec() external view returns (uint256) {
        return gem.decimals();
    }

    /**
     * @notice Returns whether the contract is live or not.
     * @return Whether the contract is live or not.
     */
    function live() external view returns (uint256) {
        return vat.live();
    }
}

Settings
{
  "remappings": [
    "ds-test/=lib/dss-test/lib/forge-std/lib/ds-test/src/",
    "dss-interfaces/=lib/dss-test/lib/dss-interfaces/src/",
    "dss-test/=lib/dss-test/src/",
    "forge-std/=lib/dss-test/lib/forge-std/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"bytes32","name":"ilk_","type":"bytes32"},{"internalType":"address","name":"gem_","type":"address"},{"internalType":"address","name":"daiJoin_","type":"address"},{"internalType":"address","name":"pocket_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"BuyGem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Chug","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Deny","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Diss","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":false,"internalType":"address","name":"data","type":"address"}],"name":"File","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"File","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Fill","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Kiss","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Rely","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"SellGem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Trim","type":"event"},{"inputs":[],"name":"HALTED","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bud","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"gemAmt","type":"uint256"}],"name":"buyGem","outputs":[{"internalType":"uint256","name":"daiInWad","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"gemAmt","type":"uint256"}],"name":"buyGemNoFee","outputs":[{"internalType":"uint256","name":"daiInWad","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"chug","outputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cut","outputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dai","outputs":[{"internalType":"contract GemLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daiJoin","outputs":[{"internalType":"contract DaiJoinLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dec","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"diss","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"address","name":"data","type":"address"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fill","outputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gem","outputs":[{"internalType":"contract GemLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gemJoin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gush","outputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ilk","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"kiss","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"live","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pocket","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rush","outputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"gemAmt","type":"uint256"}],"name":"sellGem","outputs":[{"internalType":"uint256","name":"daiOutWad","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"gemAmt","type":"uint256"}],"name":"sellGemNoFee","outputs":[{"internalType":"uint256","name":"daiOutWad","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"to18ConversionFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trim","outputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vat","outputs":[{"internalType":"contract VatLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

6101606040523480156200001257600080fd5b5060405162002714380380620027148339810160408190526200003591620002fb565b60808490526001600160a01b0380841661010052821660c0819052604080516336569e7760e01b815290516336569e77916004808201926020929091908290030181865afa1580156200008c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b291906200034f565b6001600160a01b031660a0816001600160a01b03168152505060c0516001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200010c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013291906200034f565b6001600160a01b0390811660e05281811661014052610100516040805163313ce56760e01b81529051919092169163313ce5679160048083019260209291908290030181865afa1580156200018b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b1919062000374565b620001be906012620003af565b620001cb90600a620004ce565b6101205260e05160405163095ea7b360e01b81526001600160a01b03848116600483015260001960248301529091169063095ea7b390604401600060405180830381600087803b1580156200021f57600080fd5b505af115801562000234573d6000803e3d6000fd5b505060a0516040516328ec8bf160e21b81526001600160a01b038681166004830152909116925063a3b22fc49150602401600060405180830381600087803b1580156200028057600080fd5b505af115801562000295573d6000803e3d6000fd5b50503360008181526020819052604080822060019055519193507fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a60925090a250505050620004df565b80516001600160a01b0381168114620002f657600080fd5b919050565b600080600080608085870312156200031257600080fd5b845193506200032460208601620002de565b92506200033460408601620002de565b91506200034460608601620002de565b905092959194509250565b6000602082840312156200036257600080fd5b6200036d82620002de565b9392505050565b6000602082840312156200038757600080fd5b815160ff811681146200036d57600080fd5b634e487b7160e01b600052601160045260246000fd5b60ff8281168282160390811115620003cb57620003cb62000399565b92915050565b600181815b8085111562000412578160001904821115620003f657620003f662000399565b808516156200040457918102915b93841c9390800290620003d6565b509250929050565b6000826200042b57506001620003cb565b816200043a57506000620003cb565b81600181146200045357600281146200045e576200047e565b6001915050620003cb565b60ff84111562000472576200047262000399565b50506001821b620003cb565b5060208310610133831016604e8410600b8410161715620004a3575081810a620003cb565b620004af8383620003d1565b8060001904821115620004c657620004c662000399565b029392505050565b60006200036d60ff8416836200041a565b60805160a05160c05160e0516101005161012051610140516120de620006366000396000818161042d01528181610c170152818161129f015281816118d001528181611af30152611cb001526000818161028a01528181610c43015281816112cb01528181611880015281816119fd0152611c3f01526000818161032401528181610c65015281816110eb015281816112ed015281816118a101528181611b2a0152611cdf01526000818161048a01528181610d2f0152818161180c01528181611a7a0152611d5f0152600081816103d7015281816107c101528181610fdb015261169f0152600081816102630152818161082701528181610af301528181610e190152818161117b015281816113af01528181611431015281816115ab015261177e0152600081816103fe0152818161085601528181610b22015281816111aa015281816115da015261174501526120de6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638d7ef9bb1161011a578063c5ce281e116100ad578063d9c55ce11161007c578063d9c55ce114610462578063e6fd604c1461046a578063f29c29c414610472578063f4b9fa7514610485578063fae036d5146104ac57600080fd5b8063c5ce281e146103f9578063cbf0bfac14610420578063cccef9e214610428578063d4e8be831461044f57600080fd5b80639c52a7f1116100e95780639c52a7f114610397578063b3bcfa82146103aa578063bf353dbb146103b2578063c11645bc146103d257600080fd5b80638d7ef9bb14610361578063957aa58c14610374578063959912761461037c5780639b652df61461038f57600080fd5b8063568d4b6f11610192578063678d773211610161578063678d7732146103165780637bd2bea71461031f57806386c34f4214610346578063881eb14e1461035957600080fd5b8063568d4b6f146102d4578063626cb3c5146102dd57806365c4ce7a146102f057806365fae35e1461030357600080fd5b806336569e77116101ce57806336569e771461025e5780634010f7771461028557806340d9c0e3146102ac5780634fce7a2a146102b457600080fd5b806301664f6614610200578063067d92741461021f578063152325151461024057806329ae811414610249575b600080fd5b305b6040516001600160a01b0390911681526020015b60405180910390f35b61023261022d366004611e57565b6104b5565b604051908152602001610216565b61023260055481565b61025c610257366004611e81565b61057b565b005b6102027f000000000000000000000000000000000000000000000000000000000000000081565b6102327f000000000000000000000000000000000000000000000000000000000000000081565b610232610749565b6102326102c2366004611ea3565b60016020526000908152604090205481565b61023260035481565b600254610202906001600160a01b031681565b61025c6102fe366004611ea3565b610946565b61025c610311366004611ea3565b6109b9565b61023260001981565b6102027f000000000000000000000000000000000000000000000000000000000000000081565b610232610354366004611e57565b610a2d565b610232610aeb565b61023261036f366004611e57565b610db0565b610232610e15565b61023261038a366004611e57565b610e9e565b610232610eff565b61025c6103a5366004611ea3565b611074565b6102326110e7565b6102326103c0366004611ea3565b60006020819052908152604090205481565b6102027f000000000000000000000000000000000000000000000000000000000000000081565b6102327f000000000000000000000000000000000000000000000000000000000000000081565b610232611173565b6102027f000000000000000000000000000000000000000000000000000000000000000081565b61025c61045d366004611ebe565b6114bb565b61023261154d565b610232611736565b61025c610480366004611ea3565b611980565b6102027f000000000000000000000000000000000000000000000000000000000000000081565b61023260045481565b336000908152600160208190526040822054146105195760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f6e6f742d77686974656c697374656400000000000060448201526064015b60405180910390fd5b600019600454036105685760405162461bcd60e51b8152602060048201526019602482015278111cdcd31a5d19541cdb4bd89d5e4b59d95b4b5a185b1d1959603a1b6044820152606401610510565b610574838360006119f6565b9392505050565b336000908152602081905260409020546001146105aa5760405162461bcd60e51b815260040161051090611eea565b81623a34b760e91b03610625576000198114806105cf5750670de0b6b3a76400008111155b61061b5760405162461bcd60e51b815260206004820152601b60248201527f4473734c69746550736d2f74696e2d6f75742d6f662d72616e676500000000006044820152606401610510565b600381905561070b565b81631d1bdd5d60e21b036106a15760001981148061064b5750670de0b6b3a76400008111155b6106975760405162461bcd60e51b815260206004820152601c60248201527f4473734c69746550736d2f746f75742d6f75742d6f662d72616e6765000000006044820152606401610510565b600481905561070b565b8162313ab360e91b036106b857600581905561070b565b60405162461bcd60e51b815260206004820152602260248201527f4473734c69746550736d2f66696c652d756e7265636f676e697a65642d706172604482015261616d60f01b6064820152608401610510565b817fe986e40cc8c151830d4f61050f4fb2e4add8567caad2d5f5496f9158e91fe4c78260405161073d91815260200190565b60405180910390a25050565b6000610753610aeb565b9050600081116107a55760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f6e6f7468696e672d746f2d7472696d0000000000006044820152606401610510565b604051633b4da69f60e01b8152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633b4da69f90604401600060405180830381600087803b15801561080d57600080fd5b505af1158015610821573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663760887037f000000000000000000000000000000000000000000000000000000000000000030600030600061088488611bd5565b61088d90611f37565b6040516001600160e01b031960e089901b16815260048101969096526001600160a01b039485166024870152928416604486015292166064840152608483019190915260a482015260c401600060405180830381600087803b1580156108f257600080fd5b505af1158015610906573d6000803e3d6000fd5b505050507fc73c16902381a37c21b07e127e3d0c092955b9fedb2b23e7e9b91ca527545ae68160405161093b91815260200190565b60405180910390a190565b336000908152602081905260409020546001146109755760405162461bcd60e51b815260040161051090611eea565b6001600160a01b038116600081815260016020526040808220829055517f12fdafd291eb287a54e3416070923d22aa5072f5ee04c4fb8361615e7508a37c9190a250565b336000908152602081905260409020546001146109e85760405162461bcd60e51b815260040161051090611eea565b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b33600090815260016020819052604082205414610a8c5760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f6e6f742d77686974656c69737465640000000000006044820152606401610510565b60001960035403610adf5760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f73656c6c2d67656d2d68616c7465640000000000006044820152606401610510565b61057483836000611c38565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d9638d367f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610b5f91815260200190565b60a060405180830381865afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190611f53565b50935050925092506b033b2e3c9fd0803ce80000008214610bfd5760405162461bcd60e51b81526020600482015260176024820152764473734c69746550736d2f726174652d6e6f742d52415960481b6044820152606401610510565b6005546040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152600092917f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd09190611f93565b610cda9190611fac565b610ce49190611fcb565b9050610da7610d1a610cf68684611dfe565b610d1587610d106b033b2e3c9fd0803ce800000088611fde565b611dfe565b611e14565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da29190611f93565b611e2c565b94505050505090565b60045460009060018101610e025760405162461bcd60e51b8152602060048201526019602482015278111cdcd31a5d19541cdb4bd89d5e4b59d95b4b5a185b1d1959603a1b6044820152606401610510565b610e0d8484836119f6565b949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663957aa58c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e999190611f93565b905090565b60035460009060018101610ef45760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f73656c6c2d67656d2d68616c7465640000000000006044820152606401610510565b610e0d848483611c38565b6002546000906001600160a01b031680610f5b5760405162461bcd60e51b815260206004820152601b60248201527f4473734c69746550736d2f636875672d6d697373696e672d766f7700000000006044820152606401610510565b610f63611736565b915060008211610fb55760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f6e6f7468696e672d746f2d636875670000000000006044820152606401610510565b604051633b4da69f60e01b81526001600160a01b038281166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690633b4da69f90604401600060405180830381600087803b15801561101f57600080fd5b505af1158015611033573d6000803e3d6000fd5b505050507fbaf40fa9da797753c7837b8bae01a8ee6009597a3de9665c6fdf70e8706649938260405161106891815260200190565b60405180910390a15090565b336000908152602081905260409020546001146110a35760405162461bcd60e51b815260040161051090611eea565b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190612000565b60ff16905090565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d9638d367f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016111e791815260200190565b60a060405180830381865afa158015611204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112289190611f53565b50935050925092506b033b2e3c9fd0803ce800000082146112855760405162461bcd60e51b81526020600482015260176024820152764473734c69746550736d2f726174652d6e6f742d52415960481b6044820152606401610510565b6005546040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152600092917f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113589190611f93565b6113629190611fac565b61136c9190611fcb565b9050610da761139d61137e8387611dfe565b610da26113976b033b2e3c9fd0803ce800000087611fde565b88611dfe565b6b033b2e3c9fd0803ce80000006114b17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663babe8a3f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142f9190611f93565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630dca59c16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561148d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d109190611f93565b610da29190611fde565b336000908152602081905260409020546001146114ea5760405162461bcd60e51b815260040161051090611eea565b8162766f7760e81b036106b857600280546001600160a01b0319166001600160a01b0383161790556040516001600160a01b038216815282907f8fef588b5fc1afbf5b2f06c1a435d513f208da2e6704c3d8f0e0ec91167066ba9060200161073d565b6000611557611173565b9050600081116115a95760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f6e6f7468696e672d746f2d66696c6c0000000000006044820152606401610510565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663760887037f000000000000000000000000000000000000000000000000000000000000000030600030600061160888611bd5565b6040516001600160e01b031960e089901b16815260048101969096526001600160a01b039485166024870152928416604486015292166064840152608483019190915260a482015260c401600060405180830381600087803b15801561166d57600080fd5b505af1158015611681573d6000803e3d6000fd5b505060405163ef693bed60e01b8152306004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063ef693bed9150604401600060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b505050507f1293e04cd381a7d781bab7dbc1f14f587c30b893b53af97e704717cc02a102548160405161093b91815260200190565b6040516309092f9760e21b81527f0000000000000000000000000000000000000000000000000000000000000000600482015230602482015260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632424be5c906044016040805180830381865afa1580156117c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e89190612023565b6040516370a0823160e01b8152306004820152909250600091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611853573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118779190611f93565b905061197981837f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161191a91906001600160a01b0391909116815260200190565b602060405180830381865afa158015611937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195b9190611f93565b6119659190611fac565b61196f9085611fcb565b610da29190612047565b9250505090565b336000908152602081905260409020546001146119af5760405162461bcd60e51b815260040161051090611eea565b6001600160a01b038116600081815260016020819052604080832091909155517f6ffc0fabf0709270e42087e84a3bfc36041d3b281266d04ae1962185092fb2449190a250565b6000611a227f000000000000000000000000000000000000000000000000000000000000000084611fac565b905060008215611a5857670de0b6b3a7640000611a3f8484611fac565b611a499190611fde565b9050611a558183611fcb565b91505b6040516323b872dd60e01b8152336004820152306024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd90606401600060405180830381600087803b158015611ac657600080fd5b505af1158015611ada573d6000803e3d6000fd5b50506040516323b872dd60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301528881166024830152604482018890527f00000000000000000000000000000000000000000000000000000000000000001692506323b872dd9150606401600060405180830381600087803b158015611b7057600080fd5b505af1158015611b84573d6000803e3d6000fd5b505060408051878152602081018590526001600160a01b03891693507f085d06ecf4c34b237767a31c0888e121d89546a77f186f1987c6b8715e1a8caa9250015b60405180910390a2509392505050565b60405160116024820152819060008212159060440160408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905290611c325760405162461bcd60e51b8152600401610510919061205a565b50919050565b6000611c647f000000000000000000000000000000000000000000000000000000000000000084611fac565b905060008215611c9357670de0b6b3a7640000611c818484611fac565b611c8b9190611fde565b905080820391505b6040516323b872dd60e01b81523360048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018690527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd90606401600060405180830381600087803b158015611d2357600080fd5b505af1158015611d37573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038881166004830152602482018690527f000000000000000000000000000000000000000000000000000000000000000016925063a9059cbb9150604401600060405180830381600087803b158015611da557600080fd5b505af1158015611db9573d6000803e3d6000fd5b505060408051878152602081018590526001600160a01b03891693507fef75f5a47cc9a929968796ceb84f19e7541617b4577f2c228ea95200e1572081925001611bc5565b6000818311611e0e576000610574565b50900390565b6000818311611e235781610574565b50815b92915050565b6000818310611e235781610574565b80356001600160a01b0381168114611e5257600080fd5b919050565b60008060408385031215611e6a57600080fd5b611e7383611e3b565b946020939093013593505050565b60008060408385031215611e9457600080fd5b50508035926020909101359150565b600060208284031215611eb557600080fd5b61057482611e3b565b60008060408385031215611ed157600080fd5b82359150611ee160208401611e3b565b90509250929050565b60208082526019908201527f4473734c69746550736d2f6e6f742d617574686f72697a656400000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201611f4c57611f4c611f21565b5060000390565b600080600080600060a08688031215611f6b57600080fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b600060208284031215611fa557600080fd5b5051919050565b6000816000190483118215151615611fc657611fc6611f21565b500290565b80820180821115611e2657611e26611f21565b600082611ffb57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561201257600080fd5b815160ff8116811461057457600080fd5b6000806040838503121561203657600080fd5b505080516020909101519092909150565b81810381811115611e2657611e26611f21565b600060208083528351808285015260005b818110156120875785810183015185820160400152820161206b565b506000604082860101526040601f19601f830116850101925050509291505056fea2646970667358221220165a90e4eab28a2959dd862851987c71429c927a6f7e0fc0b19ba371d3e00e5d64736f6c634300081000334c4954452d50534d2d555344432d410000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a2800000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd7341

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638d7ef9bb1161011a578063c5ce281e116100ad578063d9c55ce11161007c578063d9c55ce114610462578063e6fd604c1461046a578063f29c29c414610472578063f4b9fa7514610485578063fae036d5146104ac57600080fd5b8063c5ce281e146103f9578063cbf0bfac14610420578063cccef9e214610428578063d4e8be831461044f57600080fd5b80639c52a7f1116100e95780639c52a7f114610397578063b3bcfa82146103aa578063bf353dbb146103b2578063c11645bc146103d257600080fd5b80638d7ef9bb14610361578063957aa58c14610374578063959912761461037c5780639b652df61461038f57600080fd5b8063568d4b6f11610192578063678d773211610161578063678d7732146103165780637bd2bea71461031f57806386c34f4214610346578063881eb14e1461035957600080fd5b8063568d4b6f146102d4578063626cb3c5146102dd57806365c4ce7a146102f057806365fae35e1461030357600080fd5b806336569e77116101ce57806336569e771461025e5780634010f7771461028557806340d9c0e3146102ac5780634fce7a2a146102b457600080fd5b806301664f6614610200578063067d92741461021f578063152325151461024057806329ae811414610249575b600080fd5b305b6040516001600160a01b0390911681526020015b60405180910390f35b61023261022d366004611e57565b6104b5565b604051908152602001610216565b61023260055481565b61025c610257366004611e81565b61057b565b005b6102027f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b81565b6102327f000000000000000000000000000000000000000000000000000000e8d4a5100081565b610232610749565b6102326102c2366004611ea3565b60016020526000908152604090205481565b61023260035481565b600254610202906001600160a01b031681565b61025c6102fe366004611ea3565b610946565b61025c610311366004611ea3565b6109b9565b61023260001981565b6102027f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b610232610354366004611e57565b610a2d565b610232610aeb565b61023261036f366004611e57565b610db0565b610232610e15565b61023261038a366004611e57565b610e9e565b610232610eff565b61025c6103a5366004611ea3565b611074565b6102326110e7565b6102326103c0366004611ea3565b60006020819052908152604090205481565b6102027f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a2881565b6102327f4c4954452d50534d2d555344432d41000000000000000000000000000000000081565b610232611173565b6102027f00000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd734181565b61025c61045d366004611ebe565b6114bb565b61023261154d565b610232611736565b61025c610480366004611ea3565b611980565b6102027f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f81565b61023260045481565b336000908152600160208190526040822054146105195760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f6e6f742d77686974656c697374656400000000000060448201526064015b60405180910390fd5b600019600454036105685760405162461bcd60e51b8152602060048201526019602482015278111cdcd31a5d19541cdb4bd89d5e4b59d95b4b5a185b1d1959603a1b6044820152606401610510565b610574838360006119f6565b9392505050565b336000908152602081905260409020546001146105aa5760405162461bcd60e51b815260040161051090611eea565b81623a34b760e91b03610625576000198114806105cf5750670de0b6b3a76400008111155b61061b5760405162461bcd60e51b815260206004820152601b60248201527f4473734c69746550736d2f74696e2d6f75742d6f662d72616e676500000000006044820152606401610510565b600381905561070b565b81631d1bdd5d60e21b036106a15760001981148061064b5750670de0b6b3a76400008111155b6106975760405162461bcd60e51b815260206004820152601c60248201527f4473734c69746550736d2f746f75742d6f75742d6f662d72616e6765000000006044820152606401610510565b600481905561070b565b8162313ab360e91b036106b857600581905561070b565b60405162461bcd60e51b815260206004820152602260248201527f4473734c69746550736d2f66696c652d756e7265636f676e697a65642d706172604482015261616d60f01b6064820152608401610510565b817fe986e40cc8c151830d4f61050f4fb2e4add8567caad2d5f5496f9158e91fe4c78260405161073d91815260200190565b60405180910390a25050565b6000610753610aeb565b9050600081116107a55760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f6e6f7468696e672d746f2d7472696d0000000000006044820152606401610510565b604051633b4da69f60e01b8152306004820152602481018290527f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a286001600160a01b031690633b4da69f90604401600060405180830381600087803b15801561080d57600080fd5b505af1158015610821573d6000803e3d6000fd5b505050507f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b031663760887037f4c4954452d50534d2d555344432d41000000000000000000000000000000000030600030600061088488611bd5565b61088d90611f37565b6040516001600160e01b031960e089901b16815260048101969096526001600160a01b039485166024870152928416604486015292166064840152608483019190915260a482015260c401600060405180830381600087803b1580156108f257600080fd5b505af1158015610906573d6000803e3d6000fd5b505050507fc73c16902381a37c21b07e127e3d0c092955b9fedb2b23e7e9b91ca527545ae68160405161093b91815260200190565b60405180910390a190565b336000908152602081905260409020546001146109755760405162461bcd60e51b815260040161051090611eea565b6001600160a01b038116600081815260016020526040808220829055517f12fdafd291eb287a54e3416070923d22aa5072f5ee04c4fb8361615e7508a37c9190a250565b336000908152602081905260409020546001146109e85760405162461bcd60e51b815260040161051090611eea565b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b33600090815260016020819052604082205414610a8c5760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f6e6f742d77686974656c69737465640000000000006044820152606401610510565b60001960035403610adf5760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f73656c6c2d67656d2d68616c7465640000000000006044820152606401610510565b61057483836000611c38565b6000806000807f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b031663d9638d367f4c4954452d50534d2d555344432d4100000000000000000000000000000000006040518263ffffffff1660e01b8152600401610b5f91815260200190565b60a060405180830381865afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190611f53565b50935050925092506b033b2e3c9fd0803ce80000008214610bfd5760405162461bcd60e51b81526020600482015260176024820152764473734c69746550736d2f726174652d6e6f742d52415960481b6044820152606401610510565b6005546040516370a0823160e01b81526001600160a01b037f00000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd734181166004830152600092917f000000000000000000000000000000000000000000000000000000e8d4a51000917f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4816906370a0823190602401602060405180830381865afa158015610cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd09190611f93565b610cda9190611fac565b610ce49190611fcb565b9050610da7610d1a610cf68684611dfe565b610d1587610d106b033b2e3c9fd0803ce800000088611fde565b611dfe565b611e14565b6040516370a0823160e01b81523060048201527f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f6001600160a01b0316906370a0823190602401602060405180830381865afa158015610d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da29190611f93565b611e2c565b94505050505090565b60045460009060018101610e025760405162461bcd60e51b8152602060048201526019602482015278111cdcd31a5d19541cdb4bd89d5e4b59d95b4b5a185b1d1959603a1b6044820152606401610510565b610e0d8484836119f6565b949350505050565b60007f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b031663957aa58c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e999190611f93565b905090565b60035460009060018101610ef45760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f73656c6c2d67656d2d68616c7465640000000000006044820152606401610510565b610e0d848483611c38565b6002546000906001600160a01b031680610f5b5760405162461bcd60e51b815260206004820152601b60248201527f4473734c69746550736d2f636875672d6d697373696e672d766f7700000000006044820152606401610510565b610f63611736565b915060008211610fb55760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f6e6f7468696e672d746f2d636875670000000000006044820152606401610510565b604051633b4da69f60e01b81526001600160a01b038281166004830152602482018490527f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a281690633b4da69f90604401600060405180830381600087803b15801561101f57600080fd5b505af1158015611033573d6000803e3d6000fd5b505050507fbaf40fa9da797753c7837b8bae01a8ee6009597a3de9665c6fdf70e8706649938260405161106891815260200190565b60405180910390a15090565b336000908152602081905260409020546001146110a35760405162461bcd60e51b815260040161051090611eea565b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b60007f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190612000565b60ff16905090565b6000806000807f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b031663d9638d367f4c4954452d50534d2d555344432d4100000000000000000000000000000000006040518263ffffffff1660e01b81526004016111e791815260200190565b60a060405180830381865afa158015611204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112289190611f53565b50935050925092506b033b2e3c9fd0803ce800000082146112855760405162461bcd60e51b81526020600482015260176024820152764473734c69746550736d2f726174652d6e6f742d52415960481b6044820152606401610510565b6005546040516370a0823160e01b81526001600160a01b037f00000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd734181166004830152600092917f000000000000000000000000000000000000000000000000000000e8d4a51000917f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4816906370a0823190602401602060405180830381865afa158015611334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113589190611f93565b6113629190611fac565b61136c9190611fcb565b9050610da761139d61137e8387611dfe565b610da26113976b033b2e3c9fd0803ce800000087611fde565b88611dfe565b6b033b2e3c9fd0803ce80000006114b17f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b031663babe8a3f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142f9190611f93565b7f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b0316630dca59c16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561148d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d109190611f93565b610da29190611fde565b336000908152602081905260409020546001146114ea5760405162461bcd60e51b815260040161051090611eea565b8162766f7760e81b036106b857600280546001600160a01b0319166001600160a01b0383161790556040516001600160a01b038216815282907f8fef588b5fc1afbf5b2f06c1a435d513f208da2e6704c3d8f0e0ec91167066ba9060200161073d565b6000611557611173565b9050600081116115a95760405162461bcd60e51b815260206004820152601a60248201527f4473734c69746550736d2f6e6f7468696e672d746f2d66696c6c0000000000006044820152606401610510565b7f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b031663760887037f4c4954452d50534d2d555344432d41000000000000000000000000000000000030600030600061160888611bd5565b6040516001600160e01b031960e089901b16815260048101969096526001600160a01b039485166024870152928416604486015292166064840152608483019190915260a482015260c401600060405180830381600087803b15801561166d57600080fd5b505af1158015611681573d6000803e3d6000fd5b505060405163ef693bed60e01b8152306004820152602481018490527f0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a286001600160a01b0316925063ef693bed9150604401600060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b505050507f1293e04cd381a7d781bab7dbc1f14f587c30b893b53af97e704717cc02a102548160405161093b91815260200190565b6040516309092f9760e21b81527f4c4954452d50534d2d555344432d410000000000000000000000000000000000600482015230602482015260009081906001600160a01b037f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b1690632424be5c906044016040805180830381865afa1580156117c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e89190612023565b6040516370a0823160e01b8152306004820152909250600091506001600160a01b037f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f16906370a0823190602401602060405180830381865afa158015611853573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118779190611f93565b905061197981837f000000000000000000000000000000000000000000000000000000e8d4a510007f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b03166370a082317f00000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd73416040518263ffffffff1660e01b815260040161191a91906001600160a01b0391909116815260200190565b602060405180830381865afa158015611937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195b9190611f93565b6119659190611fac565b61196f9085611fcb565b610da29190612047565b9250505090565b336000908152602081905260409020546001146119af5760405162461bcd60e51b815260040161051090611eea565b6001600160a01b038116600081815260016020819052604080832091909155517f6ffc0fabf0709270e42087e84a3bfc36041d3b281266d04ae1962185092fb2449190a250565b6000611a227f000000000000000000000000000000000000000000000000000000e8d4a5100084611fac565b905060008215611a5857670de0b6b3a7640000611a3f8484611fac565b611a499190611fde565b9050611a558183611fcb565b91505b6040516323b872dd60e01b8152336004820152306024820152604481018390527f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f6001600160a01b0316906323b872dd90606401600060405180830381600087803b158015611ac657600080fd5b505af1158015611ada573d6000803e3d6000fd5b50506040516323b872dd60e01b81526001600160a01b037f00000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd7341811660048301528881166024830152604482018890527f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481692506323b872dd9150606401600060405180830381600087803b158015611b7057600080fd5b505af1158015611b84573d6000803e3d6000fd5b505060408051878152602081018590526001600160a01b03891693507f085d06ecf4c34b237767a31c0888e121d89546a77f186f1987c6b8715e1a8caa9250015b60405180910390a2509392505050565b60405160116024820152819060008212159060440160408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905290611c325760405162461bcd60e51b8152600401610510919061205a565b50919050565b6000611c647f000000000000000000000000000000000000000000000000000000e8d4a5100084611fac565b905060008215611c9357670de0b6b3a7640000611c818484611fac565b611c8b9190611fde565b905080820391505b6040516323b872dd60e01b81523360048201526001600160a01b037f00000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd734181166024830152604482018690527f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4816906323b872dd90606401600060405180830381600087803b158015611d2357600080fd5b505af1158015611d37573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038881166004830152602482018690527f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f16925063a9059cbb9150604401600060405180830381600087803b158015611da557600080fd5b505af1158015611db9573d6000803e3d6000fd5b505060408051878152602081018590526001600160a01b03891693507fef75f5a47cc9a929968796ceb84f19e7541617b4577f2c228ea95200e1572081925001611bc5565b6000818311611e0e576000610574565b50900390565b6000818311611e235781610574565b50815b92915050565b6000818310611e235781610574565b80356001600160a01b0381168114611e5257600080fd5b919050565b60008060408385031215611e6a57600080fd5b611e7383611e3b565b946020939093013593505050565b60008060408385031215611e9457600080fd5b50508035926020909101359150565b600060208284031215611eb557600080fd5b61057482611e3b565b60008060408385031215611ed157600080fd5b82359150611ee160208401611e3b565b90509250929050565b60208082526019908201527f4473734c69746550736d2f6e6f742d617574686f72697a656400000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201611f4c57611f4c611f21565b5060000390565b600080600080600060a08688031215611f6b57600080fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b600060208284031215611fa557600080fd5b5051919050565b6000816000190483118215151615611fc657611fc6611f21565b500290565b80820180821115611e2657611e26611f21565b600082611ffb57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561201257600080fd5b815160ff8116811461057457600080fd5b6000806040838503121561203657600080fd5b505080516020909101519092909150565b81810381811115611e2657611e26611f21565b600060208083528351808285015260005b818110156120875785810183015185820160400152820161206b565b506000604082860101526040601f19601f830116850101925050509291505056fea2646970667358221220165a90e4eab28a2959dd862851987c71429c927a6f7e0fc0b19ba371d3e00e5d64736f6c63430008100033

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

4c4954452d50534d2d555344432d410000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a2800000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd7341

-----Decoded View---------------
Arg [0] : ilk_ (bytes32): 0x4c4954452d50534d2d555344432d410000000000000000000000000000000000
Arg [1] : gem_ (address): 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Arg [2] : daiJoin_ (address): 0x9759A6Ac90977b93B58547b4A71c78317f391A28
Arg [3] : pocket_ (address): 0x37305B1cD40574E4C5Ce33f8e8306Be057fD7341

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 4c4954452d50534d2d555344432d410000000000000000000000000000000000
Arg [1] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [2] : 0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28
Arg [3] : 00000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd7341


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

OVERVIEW

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

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.