ETH Price: $3,239.23 (-2.66%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00
Transaction Hash
Method
Block
From
To
Buy Gem216832502025-01-22 23:15:4743 mins ago1737587747IN
Sky: LitePSM USDC A
0 ETH0.000516556.26
Buy Gem216812952025-01-22 16:42:357 hrs ago1737564155IN
Sky: LitePSM USDC A
0 ETH0.0008349410.12
Buy Gem216810862025-01-22 16:00:117 hrs ago1737561611IN
Sky: LitePSM USDC A
0 ETH0.0010108212.25
Buy Gem216797992025-01-22 11:42:1112 hrs ago1737546131IN
Sky: LitePSM USDC A
0 ETH0.000899749.03318465
Sell Gem216789932025-01-22 9:00:4714 hrs ago1737536447IN
Sky: LitePSM USDC A
0 ETH0.000661769.23680606
Buy Gem216789422025-01-22 8:50:3515 hrs ago1737535835IN
Sky: LitePSM USDC A
0 ETH0.0008330110.09519243
Sell Gem216787122025-01-22 8:04:2315 hrs ago1737533063IN
Sky: LitePSM USDC A
0 ETH0.000527577.8897953
Buy Gem216786692025-01-22 7:55:4716 hrs ago1737532547IN
Sky: LitePSM USDC A
0 ETH0.000651877.9
Sell Gem216783572025-01-22 6:52:3517 hrs ago1737528755IN
Sky: LitePSM USDC A
0 ETH0.00082279.2680768
Buy Gem216780662025-01-22 5:53:4718 hrs ago1737525227IN
Sky: LitePSM USDC A
0 ETH0.00065467.27307469
Buy Gem216766392025-01-22 1:07:3522 hrs ago1737508055IN
Sky: LitePSM USDC A
0 ETH0.0010112310.15250794
Buy Gem216763432025-01-22 0:07:3523 hrs ago1737504455IN
Sky: LitePSM USDC A
0 ETH0.0011177511.22064331
Buy Gem216758552025-01-21 22:29:3525 hrs ago1737498575IN
Sky: LitePSM USDC A
0 ETH0.0020862320.9427814
Sell Gem216757612025-01-21 22:10:2325 hrs ago1737497423IN
Sky: LitePSM USDC A
0 ETH0.0011523512.98343172
Buy Gem216727352025-01-21 12:02:2335 hrs ago1737460943IN
Sky: LitePSM USDC A
0 ETH0.0013743513.79648192
Sell Gem216699462025-01-21 2:41:4745 hrs ago1737427307IN
Sky: LitePSM USDC A
0 ETH0.000981811.6942633
Sell Gem216694392025-01-21 0:58:5946 hrs ago1737421139IN
Sky: LitePSM USDC A
0 ETH0.0012563814.96264744
Sell Gem216694312025-01-21 0:57:2347 hrs ago1737421043IN
Sky: LitePSM USDC A
0 ETH0.0010023511.29335139
Buy Gem216680282025-01-20 20:15:232 days ago1737404123IN
Sky: LitePSM USDC A
0 ETH0.0022376828.793058
Sell Gem216679822025-01-20 20:06:112 days ago1737403571IN
Sky: LitePSM USDC A
0 ETH0.0023661228.17894319
Sell Gem216671502025-01-20 17:18:592 days ago1737393539IN
Sky: LitePSM USDC A
0 ETH0.0046594252.49696269
Buy Gem216665642025-01-20 15:21:232 days ago1737386483IN
Sky: LitePSM USDC A
0 ETH0.0030275936.69630281
Sell Gem216663082025-01-20 14:29:352 days ago1737383375IN
Sky: LitePSM USDC A
0 ETH0.0023904528.47271092
Sell Gem216660682025-01-20 13:41:352 days ago1737380495IN
Sky: LitePSM USDC A
0 ETH0.0030006535.74079409
Buy Gem216655812025-01-20 12:03:472 days ago1737374627IN
Sky: LitePSM USDC A
0 ETH0.0030964931.08428222
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
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

[{"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 Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.