ETH Price: $3,113.08 (-0.62%)
Gas: 9.92 Gwei

Contract

0x27Efc6FFE79692E0521E7e27657cF228240A06c2
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Liquidate SAFE149593772022-06-14 2:26:37890 days ago1655173597IN
Reflexer: Liquidation Engine
0 ETH0.01217104172.27242924
Liquidate SAFE128213352021-07-13 22:01:161225 days ago1626213676IN
Reflexer: Liquidation Engine
0 ETH0.0024727535
Liquidate SAFE128213352021-07-13 22:01:161225 days ago1626213676IN
Reflexer: Liquidation Engine
0 ETH0.0282676147.69053944
Liquidate SAFE126769722021-06-21 10:01:011247 days ago1624269661IN
Reflexer: Liquidation Engine
0 ETH0.0034044748.18794337
Liquidate SAFE126769722021-06-21 10:01:011247 days ago1624269661IN
Reflexer: Liquidation Engine
0 ETH0.0046857166.32287914
Liquidate SAFE126609792021-06-18 22:07:391250 days ago1624054059IN
Reflexer: Liquidation Engine
0 ETH0.0052001618
Liquidate SAFE126357192021-06-15 0:08:041254 days ago1623715684IN
Reflexer: Liquidation Engine
0 ETH0.0061837219.40625
Liquidate SAFE125781252021-06-06 2:07:221263 days ago1622945242IN
Reflexer: Liquidation Engine
0 ETH0.0010950715.5
Liquidate SAFE125781252021-06-06 2:07:221263 days ago1622945242IN
Reflexer: Liquidation Engine
0 ETH0.0021216930.03106786
Liquidate SAFE125471342021-06-01 7:07:201267 days ago1622531240IN
Reflexer: Liquidation Engine
0 ETH0.0013423519.00000145
Liquidate SAFE125471342021-06-01 7:07:201267 days ago1622531240IN
Reflexer: Liquidation Engine
0 ETH0.0205917733.15810153
Liquidate SAFE124970642021-05-24 12:46:011275 days ago1621860361IN
Reflexer: Liquidation Engine
0 ETH0.0424660676.5
Liquidate SAFE124912162021-05-23 14:55:351276 days ago1621781735IN
Reflexer: Liquidation Engine
0 ETH0.01754946248.4
Liquidate SAFE124720742021-05-20 15:25:211279 days ago1621524321IN
Reflexer: Liquidation Engine
0 ETH0.01171354165.796875
Liquidate SAFE124719522021-05-20 14:57:451279 days ago1621522665IN
Reflexer: Liquidation Engine
0 ETH0.09098745150
Liquidate SAFE122893652021-04-22 10:10:561307 days ago1619086256IN
Reflexer: Liquidation Engine
0 ETH0.00896407126.88
Liquidate SAFE119470992021-02-28 17:10:251360 days ago1614532225IN
Reflexer: Liquidation Engine
0 ETH0.01504376260.95
Liquidate SAFE119438962021-02-28 5:11:051361 days ago1614489065IN
Reflexer: Liquidation Engine
0 ETH0.02491171432.12
Liquidate SAFE119438942021-02-28 5:09:581361 days ago1614488998IN
Reflexer: Liquidation Engine
0 ETH0.18893604756.21
Liquidate SAFE119436332021-02-28 4:10:521361 days ago1614485452IN
Reflexer: Liquidation Engine
0 ETH0.0419516158.4
Liquidate SAFE119113362021-02-23 5:12:101366 days ago1614057130IN
Reflexer: Liquidation Engine
0 ETH0.08125671346
Liquidate SAFE119113312021-02-23 5:11:581366 days ago1614057118IN
Reflexer: Liquidation Engine
0 ETH0.08102187345
Liquidate SAFE119113262021-02-23 5:11:201366 days ago1614057080IN
Reflexer: Liquidation Engine
0 ETH0.08055217343.00000156
Liquidate SAFE119113232021-02-23 5:10:511366 days ago1614057051IN
Reflexer: Liquidation Engine
0 ETH0.09004764340
Liquidate SAFE119070282021-02-22 13:10:211366 days ago1613999421IN
Reflexer: Liquidation Engine
0 ETH0.08369133316
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
118484522021-02-13 13:10:541375 days ago1613221854  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LiquidationEngine

Compiler Version
v0.6.7+commit.b8d736ae

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-02-14
*/

/**
 *Submitted for verification at Etherscan.io on 2021-02-02
*/

/// LiquidationEngine.sol

// Copyright (C) 2018 Rain <[email protected]>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

pragma solidity 0.6.7;

abstract contract CollateralAuctionHouseLike {
    function startAuction(
      address forgoneCollateralReceiver,
      address initialBidder,
      uint256 amountToRaise,
      uint256 collateralToSell,
      uint256 initialBid
    ) virtual public returns (uint256);
}
abstract contract SAFESaviourLike {
    function saveSAFE(address,bytes32,address) virtual external returns (bool,uint256,uint256);
}
abstract contract SAFEEngineLike {
    function collateralTypes(bytes32) virtual public view returns (
        uint256 debtAmount,        // [wad]
        uint256 accumulatedRate,   // [ray]
        uint256 safetyPrice,       // [ray]
        uint256 debtCeiling,       // [rad]
        uint256 debtFloor,         // [rad]
        uint256 liquidationPrice   // [ray]
    );
    function safes(bytes32,address) virtual public view returns (
        uint256 lockedCollateral,  // [wad]
        uint256 generatedDebt      // [wad]
    );
    function confiscateSAFECollateralAndDebt(bytes32,address,address,address,int256,int256) virtual external;
    function canModifySAFE(address, address) virtual public view returns (bool);
    function approveSAFEModification(address) virtual external;
    function denySAFEModification(address) virtual external;
}
abstract contract AccountingEngineLike {
    function pushDebtToQueue(uint256) virtual external;
}

contract LiquidationEngine {
    // --- Auth ---
    mapping (address => uint256) public authorizedAccounts;
    /**
     * @notice Add auth to an account
     * @param account Account to add auth to
     */
    function addAuthorization(address account) external isAuthorized {
        authorizedAccounts[account] = 1;
        emit AddAuthorization(account);
    }
    /**
     * @notice Remove auth from an account
     * @param account Account to remove auth from
     */
    function removeAuthorization(address account) external isAuthorized {
        authorizedAccounts[account] = 0;
        emit RemoveAuthorization(account);
    }
    /**
    * @notice Checks whether msg.sender can call an authed function
    **/
    modifier isAuthorized {
        require(authorizedAccounts[msg.sender] == 1, "LiquidationEngine/account-not-authorized");
        _;
    }

    // --- SAFE Saviours ---
    // Contracts that can save SAFEs from liquidation
    mapping (address => uint256) public safeSaviours;
    /**
    * @notice Authed function to add contracts that can save SAFEs from liquidation
    * @param saviour SAFE saviour contract to be whitelisted
    **/
    function connectSAFESaviour(address saviour) external isAuthorized {
        (bool ok, uint256 collateralAdded, uint256 liquidatorReward) =
          SAFESaviourLike(saviour).saveSAFE(address(this), "", address(0));
        require(ok, "LiquidationEngine/saviour-not-ok");
        require(both(collateralAdded == uint256(-1), liquidatorReward == uint256(-1)), "LiquidationEngine/invalid-amounts");
        safeSaviours[saviour] = 1;
        emit ConnectSAFESaviour(saviour);
    }
    /**
    * @notice Governance used function to remove contracts that can save SAFEs from liquidation
    * @param saviour SAFE saviour contract to be removed
    **/
    function disconnectSAFESaviour(address saviour) external isAuthorized {
        safeSaviours[saviour] = 0;
        emit DisconnectSAFESaviour(saviour);
    }

    // --- Data ---
    struct CollateralType {
        // Address of the collateral auction house handling liquidations for this collateral type
        address collateralAuctionHouse;
        // Penalty applied to every liquidation involving this collateral type. Discourages SAFE users from bidding on their own SAFEs
        uint256 liquidationPenalty;                                                                                                   // [wad]
        // Max amount of system coins to request in one auction
        uint256 liquidationQuantity;                                                                                                  // [rad]
    }

    // Collateral types included in the system
    mapping (bytes32 => CollateralType)              public collateralTypes;
    // Saviour contract chosen for each SAFE by its creator
    mapping (bytes32 => mapping(address => address)) public chosenSAFESaviour;
    // Mutex used to block against re-entrancy when 'liquidateSAFE' passes execution to a saviour
    mapping (bytes32 => mapping(address => uint8))   public mutex;

    // Max amount of system coins that can be on liquidation at any time
    uint256 public onAuctionSystemCoinLimit;                                // [rad]
    // Current amount of system coins out for liquidation
    uint256 public currentOnAuctionSystemCoins;                             // [rad]
    // Whether this contract is enabled
    uint256 public contractEnabled;

    SAFEEngineLike       public safeEngine;
    AccountingEngineLike public accountingEngine;

    // --- Events ---
    event AddAuthorization(address account);
    event RemoveAuthorization(address account);
    event ConnectSAFESaviour(address saviour);
    event DisconnectSAFESaviour(address saviour);
    event UpdateCurrentOnAuctionSystemCoins(uint256 currentOnAuctionSystemCoins);
    event ModifyParameters(bytes32 parameter, uint256 data);
    event ModifyParameters(bytes32 parameter, address data);
    event ModifyParameters(
      bytes32 collateralType,
      bytes32 parameter,
      uint256 data
    );
    event ModifyParameters(
      bytes32 collateralType,
      bytes32 parameter,
      address data
    );
    event DisableContract();
    event Liquidate(
      bytes32 indexed collateralType,
      address indexed safe,
      uint256 collateralAmount,
      uint256 debtAmount,
      uint256 amountToRaise,
      address collateralAuctioneer,
      uint256 auctionId
    );
    event SaveSAFE(
      bytes32 indexed collateralType,
      address indexed safe,
      uint256 collateralAddedOrDebtRepaid
    );
    event FailedSAFESave(bytes failReason);
    event ProtectSAFE(
      bytes32 indexed collateralType,
      address indexed safe,
      address saviour
    );

    // --- Init ---
    constructor(address safeEngine_) public {
        authorizedAccounts[msg.sender] = 1;
        safeEngine = SAFEEngineLike(safeEngine_);
        onAuctionSystemCoinLimit = uint256(-1);
        contractEnabled = 1;
        emit AddAuthorization(msg.sender);
        emit ModifyParameters("onAuctionSystemCoinLimit", uint256(-1));
    }

    // --- Math ---
    uint256 constant WAD = 10 ** 18;
    uint256 constant RAY = 10 ** 27;
    uint256 constant MAX_LIQUIDATION_QUANTITY = uint256(-1) / RAY;

    function addition(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require((z = x + y) >= x, "LiquidationEngine/add-overflow");
    }
    function subtract(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require((z = x - y) <= x, "LiquidationEngine/sub-underflow");
    }
    function multiply(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require(y == 0 || (z = x * y) / y == x, "LiquidationEngine/mul-overflow");
    }
    function minimum(uint256 x, uint256 y) internal pure returns (uint256 z) {
        if (x > y) { z = y; } else { z = x; }
    }

    // --- Utils ---
    function both(bool x, bool y) internal pure returns (bool z) {
        assembly{ z := and(x, y)}
    }
    function either(bool x, bool y) internal pure returns (bool z) {
        assembly{ z := or(x, y)}
    }

    // --- Administration ---
    /*
    * @notice Modify uint256 parameters
    * @param paramter The name of the parameter modified
    * @param data Value for the new parameter
    */
    function modifyParameters(bytes32 parameter, uint256 data) external isAuthorized {
        if (parameter == "onAuctionSystemCoinLimit") onAuctionSystemCoinLimit = data;
        else revert("LiquidationEngine/modify-unrecognized-param");
        emit ModifyParameters(parameter, data);
    }
    /**
     * @notice Modify contract integrations
     * @param parameter The name of the parameter modified
     * @param data New address for the parameter
     */
    function modifyParameters(bytes32 parameter, address data) external isAuthorized {
        if (parameter == "accountingEngine") accountingEngine = AccountingEngineLike(data);
        else revert("LiquidationEngine/modify-unrecognized-param");
        emit ModifyParameters(parameter, data);
    }
    /**
     * @notice Modify liquidation params
     * @param collateralType The collateral type we change parameters for
     * @param parameter The name of the parameter modified
     * @param data New value for the parameter
     */
    function modifyParameters(
        bytes32 collateralType,
        bytes32 parameter,
        uint256 data
    ) external isAuthorized {
        if (parameter == "liquidationPenalty") collateralTypes[collateralType].liquidationPenalty = data;
        else if (parameter == "liquidationQuantity") {
          require(data <= MAX_LIQUIDATION_QUANTITY, "LiquidationEngine/liquidation-quantity-overflow");
          collateralTypes[collateralType].liquidationQuantity = data;
        }
        else revert("LiquidationEngine/modify-unrecognized-param");
        emit ModifyParameters(
          collateralType,
          parameter,
          data
        );
    }
    /**
     * @notice Modify collateral auction integration
     * @param collateralType The collateral type we change parameters for
     * @param parameter The name of the integration modified
     * @param data New address for the integration contract
     */
    function modifyParameters(
        bytes32 collateralType,
        bytes32 parameter,
        address data
    ) external isAuthorized {
        if (parameter == "collateralAuctionHouse") {
            safeEngine.denySAFEModification(collateralTypes[collateralType].collateralAuctionHouse);
            collateralTypes[collateralType].collateralAuctionHouse = data;
            safeEngine.approveSAFEModification(data);
        }
        else revert("LiquidationEngine/modify-unrecognized-param");
        emit ModifyParameters(
            collateralType,
            parameter,
            data
        );
    }
    /**
     * @notice Disable this contract (normally called by GlobalSettlement)
     */
    function disableContract() external isAuthorized {
        contractEnabled = 0;
        emit DisableContract();
    }

    // --- SAFE Liquidation ---
    /**
     * @notice Choose a saviour contract for your SAFE
     * @param collateralType The SAFE's collateral type
     * @param safe The SAFE's address
     * @param saviour The chosen saviour
     */
    function protectSAFE(
        bytes32 collateralType,
        address safe,
        address saviour
    ) external {
        require(safeEngine.canModifySAFE(safe, msg.sender), "LiquidationEngine/cannot-modify-safe");
        require(saviour == address(0) || safeSaviours[saviour] == 1, "LiquidationEngine/saviour-not-authorized");
        chosenSAFESaviour[collateralType][safe] = saviour;
        emit ProtectSAFE(
            collateralType,
            safe,
            saviour
        );
    }
    /**
     * @notice Liquidate a SAFE
     * @param collateralType The SAFE's collateral type
     * @param safe The SAFE's address
     */
    function liquidateSAFE(bytes32 collateralType, address safe) external returns (uint256 auctionId) {
        require(mutex[collateralType][safe] == 0, "LiquidationEngine/non-null-mutex");
        mutex[collateralType][safe] = 1;

        (, uint256 accumulatedRate, , , uint256 debtFloor, uint256 liquidationPrice) = safeEngine.collateralTypes(collateralType);
        (uint256 safeCollateral, uint256 safeDebt) = safeEngine.safes(collateralType, safe);

        require(contractEnabled == 1, "LiquidationEngine/contract-not-enabled");
        require(both(
          liquidationPrice > 0,
          multiply(safeCollateral, liquidationPrice) < multiply(safeDebt, accumulatedRate)
        ), "LiquidationEngine/safe-not-unsafe");
        require(
          both(currentOnAuctionSystemCoins < onAuctionSystemCoinLimit,
          subtract(onAuctionSystemCoinLimit, currentOnAuctionSystemCoins) >= debtFloor),
          "LiquidationEngine/liquidation-limit-hit"
        );

        if (chosenSAFESaviour[collateralType][safe] != address(0) &&
            safeSaviours[chosenSAFESaviour[collateralType][safe]] == 1) {
          try SAFESaviourLike(chosenSAFESaviour[collateralType][safe]).saveSAFE(msg.sender, collateralType, safe)
            returns (bool ok, uint256 collateralAddedOrDebtRepaid, uint256) {
            if (both(ok, collateralAddedOrDebtRepaid > 0)) {
              emit SaveSAFE(collateralType, safe, collateralAddedOrDebtRepaid);
            }
          } catch (bytes memory revertReason) {
            emit FailedSAFESave(revertReason);
          }
        }

        // Checks that the saviour didn't take collateral or add more debt to the SAFE
        {
          (uint256 newSafeCollateral, uint256 newSafeDebt) = safeEngine.safes(collateralType, safe);
          require(both(newSafeCollateral >= safeCollateral, newSafeDebt <= safeDebt), "LiquidationEngine/invalid-safe-saviour-operation");
        }

        (, accumulatedRate, , , , liquidationPrice) = safeEngine.collateralTypes(collateralType);
        (safeCollateral, safeDebt) = safeEngine.safes(collateralType, safe);

        if (both(liquidationPrice > 0, multiply(safeCollateral, liquidationPrice) < multiply(safeDebt, accumulatedRate))) {
          CollateralType memory collateralData = collateralTypes[collateralType];

          uint256 limitAdjustedDebt = minimum(
            safeDebt,
            multiply(minimum(collateralData.liquidationQuantity, subtract(onAuctionSystemCoinLimit, currentOnAuctionSystemCoins)), WAD) / accumulatedRate / collateralData.liquidationPenalty
          );
          require(limitAdjustedDebt > 0, "LiquidationEngine/null-auction");
          require(either(limitAdjustedDebt == safeDebt, multiply(subtract(safeDebt, limitAdjustedDebt), accumulatedRate) >= debtFloor), "LiquidationEngine/dusty-safe");

          uint256 collateralToSell = minimum(safeCollateral, multiply(safeCollateral, limitAdjustedDebt) / safeDebt);

          require(collateralToSell > 0, "LiquidationEngine/null-collateral-to-sell");
          require(both(collateralToSell <= 2**255, limitAdjustedDebt <= 2**255), "LiquidationEngine/collateral-or-debt-overflow");

          safeEngine.confiscateSAFECollateralAndDebt(
            collateralType, safe, address(this), address(accountingEngine), -int256(collateralToSell), -int256(limitAdjustedDebt)
          );
          accountingEngine.pushDebtToQueue(multiply(limitAdjustedDebt, accumulatedRate));

          {
            // This calcuation will overflow if multiply(limitAdjustedDebt, accumulatedRate) exceeds ~10^14,
            // i.e. the maximum amountToRaise is roughly 100 trillion system coins.
            uint256 amountToRaise_      = multiply(multiply(limitAdjustedDebt, accumulatedRate), collateralData.liquidationPenalty) / WAD;
            currentOnAuctionSystemCoins = addition(currentOnAuctionSystemCoins, amountToRaise_);

            auctionId = CollateralAuctionHouseLike(collateralData.collateralAuctionHouse).startAuction(
              { forgoneCollateralReceiver: safe
              , initialBidder: address(accountingEngine)
              , amountToRaise: amountToRaise_
              , collateralToSell: collateralToSell
              , initialBid: 0
             });

             emit UpdateCurrentOnAuctionSystemCoins(currentOnAuctionSystemCoins);
          }

          emit Liquidate(collateralType, safe, collateralToSell, limitAdjustedDebt, multiply(limitAdjustedDebt, accumulatedRate), collateralData.collateralAuctionHouse, auctionId);
        }

        mutex[collateralType][safe] = 0;
    }
    /**
     * @notice Remove debt that was currently being auctioned
     * @param rad The amount of debt to withdraw from currentOnAuctionSystemCoins
     */
    function removeCoinsFromAuction(uint256 rad) public isAuthorized {
        currentOnAuctionSystemCoins = subtract(currentOnAuctionSystemCoins, rad);
        emit UpdateCurrentOnAuctionSystemCoins(currentOnAuctionSystemCoins);
    }

    // --- Getters ---
    /*
    * @notice Get the amount of debt that can currently be covered by a collateral auction for a specific safe
    * @param collateralType The collateral type of the SAFE
    * @param safe The SAFE's address
    */
    function getLimitAdjustedDebtToCover(bytes32 collateralType, address safe) external view returns (uint256) {
        (, uint256 accumulatedRate,,,,)            = safeEngine.collateralTypes(collateralType);
        (uint256 safeCollateral, uint256 safeDebt) = safeEngine.safes(collateralType, safe);
        CollateralType memory collateralData       = collateralTypes[collateralType];

        return minimum(
          safeDebt,
          multiply(minimum(collateralData.liquidationQuantity, subtract(onAuctionSystemCoinLimit, currentOnAuctionSystemCoins)), WAD) / accumulatedRate / collateralData.liquidationPenalty
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"safeEngine_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"AddAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"saviour","type":"address"}],"name":"ConnectSAFESaviour","type":"event"},{"anonymous":false,"inputs":[],"name":"DisableContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"saviour","type":"address"}],"name":"DisconnectSAFESaviour","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"failReason","type":"bytes"}],"name":"FailedSAFESave","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"indexed":true,"internalType":"address","name":"safe","type":"address"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debtAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToRaise","type":"uint256"},{"indexed":false,"internalType":"address","name":"collateralAuctioneer","type":"address"},{"indexed":false,"internalType":"uint256","name":"auctionId","type":"uint256"}],"name":"Liquidate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"address","name":"data","type":"address"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"address","name":"data","type":"address"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"indexed":true,"internalType":"address","name":"safe","type":"address"},{"indexed":false,"internalType":"address","name":"saviour","type":"address"}],"name":"ProtectSAFE","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"RemoveAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"indexed":true,"internalType":"address","name":"safe","type":"address"},{"indexed":false,"internalType":"uint256","name":"collateralAddedOrDebtRepaid","type":"uint256"}],"name":"SaveSAFE","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"currentOnAuctionSystemCoins","type":"uint256"}],"name":"UpdateCurrentOnAuctionSystemCoins","type":"event"},{"inputs":[],"name":"accountingEngine","outputs":[{"internalType":"contract AccountingEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorizedAccounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"name":"chosenSAFESaviour","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"collateralTypes","outputs":[{"internalType":"address","name":"collateralAuctionHouse","type":"address"},{"internalType":"uint256","name":"liquidationPenalty","type":"uint256"},{"internalType":"uint256","name":"liquidationQuantity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"saviour","type":"address"}],"name":"connectSAFESaviour","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractEnabled","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentOnAuctionSystemCoins","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"saviour","type":"address"}],"name":"disconnectSAFESaviour","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"internalType":"address","name":"safe","type":"address"}],"name":"getLimitAdjustedDebtToCover","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"internalType":"address","name":"safe","type":"address"}],"name":"liquidateSAFE","outputs":[{"internalType":"uint256","name":"auctionId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"address","name":"data","type":"address"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"address","name":"data","type":"address"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"name":"mutex","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"onAuctionSystemCoinLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"internalType":"address","name":"safe","type":"address"},{"internalType":"address","name":"saviour","type":"address"}],"name":"protectSAFE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rad","type":"uint256"}],"name":"removeCoinsFromAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"safeEngine","outputs":[{"internalType":"contract SAFEEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"safeSaviours","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b506040516122383803806122388339818101604052602081101561003357600080fd5b50513360008181526020818152604091829020600190819055600880546001600160a01b0319166001600160a01b038716179055600019600555600755815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a1604080517f6f6e41756374696f6e53797374656d436f696e4c696d697400000000000000008152600019602082015281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15061212b8061010d6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80634faeff1d116100c357806394f3f81d1161007c57806394f3f81d146103b757806395ffa802146103dd578063961d45c414610403578063d07900bb1461040b578063d4b9311d14610450578063fe4f5890146104795761014d565b80634faeff1d146102fd578063513a3dba146103235780635626da24146103555780636614f0101461037b57806367aea313146103a7578063894ba833146103af5761014d565b806335b281531161011557806335b28153146102255780633896a3841461024b5780633c7999571461027f57806341b3a0d914610287578063456b81811461028f5780634c28be57146102d15761014d565b8063049c92791461015257806324ba5884146101905780632c20afc4146101b657806332d0eefd146101fe578063332bef1114610206575b600080fd5b61017e6004803603604081101561016857600080fd5b50803590602001356001600160a01b031661049c565b60408051918252519081900360200190f35b61017e600480360360208110156101a657600080fd5b50356001600160a01b0316610647565b6101e2600480360360408110156101cc57600080fd5b50803590602001356001600160a01b0316610659565b604080516001600160a01b039092168252519081900360200190f35b61017e61067f565b6102236004803603602081101561021c57600080fd5b5035610685565b005b6102236004803603602081101561023b57600080fd5b50356001600160a01b0316610719565b6102236004803603606081101561026157600080fd5b508035906001600160a01b03602082013581169160400135166107b9565b61017e610950565b61017e610956565b6102bb600480360360408110156102a557600080fd5b50803590602001356001600160a01b031661095c565b6040805160ff9092168252519081900360200190f35b61017e600480360360408110156102e757600080fd5b50803590602001356001600160a01b031661097c565b6102236004803603602081101561031357600080fd5b50356001600160a01b03166114f7565b6102236004803603606081101561033957600080fd5b50803590602081013590604001356001600160a01b0316611598565b61017e6004803603602081101561036b57600080fd5b50356001600160a01b0316611785565b6102236004803603604081101561039157600080fd5b50803590602001356001600160a01b0316611797565b6101e2611862565b610223611871565b610223600480360360208110156103cd57600080fd5b50356001600160a01b03166118ef565b610223600480360360208110156103f357600080fd5b50356001600160a01b031661198e565b6101e2611b66565b6104286004803603602081101561042157600080fd5b5035611b75565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6102236004803603606081101561046657600080fd5b5080359060208101359060400135611ba1565b6102236004803603604081101561048f57600080fd5b5080359060200135611cf2565b6008546040805163d07900bb60e01b815260048101859052905160009283926001600160a01b039091169163d07900bb9160248082019260c092909190829003018186803b1580156104ed57600080fd5b505afa158015610501573d6000803e3d6000fd5b505050506040513d60c081101561051757600080fd5b506020015160085460408051630f50894160e21b8152600481018890526001600160a01b038781166024830152825194955060009485949190911692633d4225049260448082019391829003018186803b15801561057457600080fd5b505afa158015610588573d6000803e3d6000fd5b505050506040513d604081101561059e57600080fd5b50805160209091015190925090506105b4611ee8565b50600086815260026020818152604092839020835160608101855281546001600160a01b031681526001820154928101839052920154928201839052600554600654929361063a938693928992610625926106179261061291611dac565b611e04565b670de0b6b3a7640000611e1c565b8161062c57fe5b048161063457fe5b04611e04565b9450505050505b92915050565b60006020819052908152604090205481565b60036020908152600092835260408084209091529082529020546001600160a01b031681565b60055481565b336000908152602081905260409020546001146106d35760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b6106df60065482611dac565b600681905560408051918252517fe1bbac4c69a9c7825ff4f220089a412e2349521ceba06c7f07c3764522ef04149181900360200190a150565b336000908152602081905260409020546001146107675760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b600854604080516350de215d60e01b81526001600160a01b038581166004830152336024830152915191909216916350de215d916044808301926020929190829003018186803b15801561080c57600080fd5b505afa158015610820573d6000803e3d6000fd5b505050506040513d602081101561083657600080fd5b50516108735760405162461bcd60e51b81526004018080602001828103825260248152602001806120a76024913960400191505060405180910390fd5b6001600160a01b03811615806108a257506001600160a01b038116600090815260016020819052604090912054145b6108dd5760405162461bcd60e51b81526004018080602001828103825260288152602001806120566028913960400191505060405180910390fd5b60008381526003602090815260408083206001600160a01b038681168086529184529382902080546001600160a01b031916948616948517905581519384529051909286927f9c0c3b2f97315fb268638262f83f63de4f645ad9ae8ea84e2182f67e7d28d8f792918290030190a3505050565b60065481565b60075481565b600460209081526000928352604080842090915290825290205460ff1681565b60008281526004602090815260408083206001600160a01b038516845290915281205460ff16156109f4576040805162461bcd60e51b815260206004820181905260248201527f4c69717569646174696f6e456e67696e652f6e6f6e2d6e756c6c2d6d75746578604482015290519081900360640190fd5b60008381526004602081815260408084206001600160a01b0380881686529252808420805460ff19166001179055600854815163d07900bb60e01b8152938401889052905184938493929092169163d07900bb9160248083019260c0929190829003018186803b158015610a6757600080fd5b505afa158015610a7b573d6000803e3d6000fd5b505050506040513d60c0811015610a9157600080fd5b506020810151608082015160a09092015160085460408051630f50894160e21b8152600481018c90526001600160a01b038b8116602483015282519599509597509295506000948594921692633d4225049260448083019392829003018186803b158015610afe57600080fd5b505afa158015610b12573d6000803e3d6000fd5b505050506040513d6040811015610b2857600080fd5b5080516020909101516007549193509150600114610b775760405162461bcd60e51b81526004018080602001828103825260268152602001806120306026913960400191505060405180910390fd5b610b9860008411610b888388611e1c565b610b928587611e1c565b10611e88565b610bd35760405162461bcd60e51b8152600401808060200182810382526021815260200180611fe26021913960400191505060405180910390fd5b610bf36005546006541085610bec600554600654611dac565b1015611e88565b610c2e5760405162461bcd60e51b8152600401808060200182810382526027815260200180611f136027913960400191505060405180910390fd5b60008881526003602090815260408083206001600160a01b038b811685529252909120541615801590610c90575060008881526003602090815260408083206001600160a01b03808c1685529083528184205416835260019182905290912054145b15610e6b5760008881526003602090815260408083206001600160a01b03808c168086529190935281842054825163b9b0bb3960e01b8152336004820152602481018e905260448101929092529151919092169263b9b0bb3992606480820193606093909283900390910190829087803b158015610d0d57600080fd5b505af1925050508015610d4157506040513d6060811015610d2d57600080fd5b508051602082015160409092015190919060015b610e14573d808015610d6f576040519150601f19603f3d011682016040523d82523d6000602084013e610d74565b606091505b507fe7862113e21c9c96e382110b92dfc08242b5c58f90259305fe30adc0d77e2a43816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dd4578181015183820152602001610dbc565b50505050905090810190601f168015610e015780820380516001836020036101000a031916815260200191505b509250505060405180910390a150610e6b565b610e218360008411611e88565b15610e67576040805183815290516001600160a01b038c16918d917f7afee8680e1a5395600115d5fc996ecb20b450ca793815c08c9b19d2dc6663d79181900360200190a35b5050505b60085460408051630f50894160e21b8152600481018b90526001600160a01b038a8116602483015282516000948594921692633d422504926044808301939192829003018186803b158015610ebf57600080fd5b505afa158015610ed3573d6000803e3d6000fd5b505050506040513d6040811015610ee957600080fd5b5080516020909101519092509050610f078483101584831115611e88565b610f425760405162461bcd60e51b8152600401808060200182810382526030815260200180611f3a6030913960400191505060405180910390fd5b50506008546040805163d07900bb60e01b8152600481018b905290516001600160a01b039092169163d07900bb9160248082019260c092909190829003018186803b158015610f9057600080fd5b505afa158015610fa4573d6000803e3d6000fd5b505050506040513d60c0811015610fba57600080fd5b50602081015160a09091015160085460408051630f50894160e21b8152600481018d90526001600160a01b038c811660248301528251959a509397509290911692633d422504926044808201939291829003018186803b15801561101d57600080fd5b505afa158015611031573d6000803e3d6000fd5b505050506040513d604081101561104757600080fd5b5080516020909101519092509050611065831515610b888388611e1c565b156114c457611072611ee8565b506000888152600260208181526040808420815160608101835281546001600160a01b0316815260018201549381018490529301549083018190526005546006549394936110d493879390928c92610625926106179290916106129190611dac565b90506000811161112b576040805162461bcd60e51b815260206004820152601e60248201527f4c69717569646174696f6e456e67696e652f6e756c6c2d61756374696f6e0000604482015290519081900360640190fd5b61114c8382148761114561113f8786611dac565b8b611e1c565b1015611e8c565b61119d576040805162461bcd60e51b815260206004820152601c60248201527f4c69717569646174696f6e456e67696e652f64757374792d7361666500000000604482015290519081900360640190fd5b60006111b585856111ae8886611e1c565b8161063457fe5b9050600081116111f65760405162461bcd60e51b815260040180806020018281038252602981526020018061207e6029913960400191505060405180910390fd5b61120e600160ff1b821115600160ff1b841115611e88565b6112495760405162461bcd60e51b815260040180806020018281038252602d815260200180612003602d913960400191505060405180910390fd5b60085460095460408051634e14a96760e01b8152600481018f90526001600160a01b038e8116602483015230604483015292831660648201526000858103608483015286810360a483015291519290931692634e14a9679260c4808301939282900301818387803b1580156112bd57600080fd5b505af11580156112d1573d6000803e3d6000fd5b50506009546001600160a01b0316915063a8b30a9f90506112f2848b611e1c565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132857600080fd5b505af115801561133c573d6000803e3d6000fd5b505050506000670de0b6b3a7640000611362611358858c611e1c565b8660200151611e1c565b8161136957fe5b04905061137860065482611e90565b60065583516009546040805163097af09d60e21b81526001600160a01b038f8116600483015292831660248201526044810185905260648101869052600060848201819052915192909316926325ebc2749260a48083019360209383900390910190829087803b1580156113eb57600080fd5b505af11580156113ff573d6000803e3d6000fd5b505050506040513d602081101561141557600080fd5b50516006546040805191825251919b507fe1bbac4c69a9c7825ff4f220089a412e2349521ceba06c7f07c3764522ef0414919081900360200190a150896001600160a01b03168b7f72d3864f233703680912d39433c137e816d579e8785e5245274ca9f95bea89678385611489878e611e1c565b8851604080519485526020850193909352838301919091526001600160a01b03166060830152608082018e9052519081900360a00190a35050505b505050600094855250506004602090815260408085206001600160a01b0390941685529290529120805460ff1916905590565b336000908152602081905260409020546001146115455760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b6001600160a01b038116600081815260016020908152604080832092909255815192835290517ffce504fd9d349038183fa936cbbfadf867e63406485f0f4f9f45f7f2856f813f9281900390910190a150565b336000908152602081905260409020546001146115e65760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b8175636f6c6c61746572616c41756374696f6e486f75736560501b14156117015760085460008481526002602052604080822054815163d49d786760e01b81526001600160a01b039182166004820152915193169263d49d78679260248084019391929182900301818387803b15801561165f57600080fd5b505af1158015611673573d6000803e3d6000fd5b50505060008481526002602052604080822080546001600160a01b0319166001600160a01b038681169182179092556008548351631b29a84160e31b81526004810192909252925192909116935063d94d420892602480830193919282900301818387803b1580156116e457600080fd5b505af11580156116f8573d6000803e3d6000fd5b50505050611738565b60405162461bcd60e51b815260040180806020018281038252602b8152602001806120cb602b913960400191505060405180910390fd5b60408051848152602081018490526001600160a01b0383168183015290517f87c209b94b27bfe8cb3329ca996f854fc16f2ec485116b0932eccd15fac50a409181900360600190a1505050565b60016020526000908152604090205481565b336000908152602081905260409020546001146117e55760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b816f6163636f756e74696e67456e67696e6560801b141561170157600980546001600160a01b0319166001600160a01b038316179055604080518381526001600160a01b038316602082015281517fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d1929181900390910190a15050565b6008546001600160a01b031681565b336000908152602081905260409020546001146118bf5760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b600060078190556040517f2d4b4ecff7bd7503135271925520a2f6c0d98c9473ffc1a1e72c92502f51b25e9190a1565b3360009081526020819052604090205460011461193d5760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b336000908152602081905260409020546001146119dc5760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b6040805163b9b0bb3960e01b81523060048201526000604482018190529151829182916001600160a01b0386169163b9b0bb3991606480830192606092919082900301818787803b158015611a3057600080fd5b505af1158015611a44573d6000803e3d6000fd5b505050506040513d6060811015611a5a57600080fd5b5080516020820151604090920151909450909250905082611ac2576040805162461bcd60e51b815260206004820181905260248201527f4c69717569646174696f6e456e67696e652f736176696f75722d6e6f742d6f6b604482015290519081900360640190fd5b611ad460001983146000198314611e88565b611b0f5760405162461bcd60e51b8152600401808060200182810382526021815260200180611fc16021913960400191505060405180910390fd5b6001600160a01b03841660008181526001602081815260409283902091909155815192835290517fc2553257d1b78c297941723c1913912f9161a830e997b56133a669b3a3de6a1e9281900390910190a150505050565b6009546001600160a01b031681565b60026020819052600091825260409091208054600182015491909201546001600160a01b039092169183565b33600090815260208190526040902054600114611bef5760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b81716c69717569646174696f6e50656e616c747960701b1415611c25576000838152600260205260409020600101819055611cad565b81726c69717569646174696f6e5175616e7469747960681b141561170157744f3a68dbc8f03f243baf513267aa9a3ee524f8e028811115611c975760405162461bcd60e51b815260040180806020018281038252602f815260200180611f92602f913960400191505060405180910390fd5b6000838152600260208190526040909120018190555b604080518481526020810184905280820183905290517fc59b1109b54f213212d2f5af5c1dae5e887f9daa63b595578fae847cb048e8f49181900360600190a1505050565b33600090815260208190526040902054600114611d405760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b817f6f6e41756374696f6e53797374656d436f696e4c696d697400000000000000001415611701576005819055604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b80820382811115610641576040805162461bcd60e51b815260206004820152601f60248201527f4c69717569646174696f6e456e67696e652f7375622d756e646572666c6f7700604482015290519081900360640190fd5b600081831115611e15575080610641565b5090919050565b6000811580611e3757505080820282828281611e3457fe5b04145b610641576040805162461bcd60e51b815260206004820152601e60248201527f4c69717569646174696f6e456e67696e652f6d756c2d6f766572666c6f770000604482015290519081900360640190fd5b1690565b1790565b80820182811015610641576040805162461bcd60e51b815260206004820152601e60248201527f4c69717569646174696f6e456e67696e652f6164642d6f766572666c6f770000604482015290519081900360640190fd5b604051806060016040528060006001600160a01b031681526020016000815260200160008152509056fe4c69717569646174696f6e456e67696e652f6c69717569646174696f6e2d6c696d69742d6869744c69717569646174696f6e456e67696e652f696e76616c69642d736166652d736176696f75722d6f7065726174696f6e4c69717569646174696f6e456e67696e652f6163636f756e742d6e6f742d617574686f72697a65644c69717569646174696f6e456e67696e652f6c69717569646174696f6e2d7175616e746974792d6f766572666c6f774c69717569646174696f6e456e67696e652f696e76616c69642d616d6f756e74734c69717569646174696f6e456e67696e652f736166652d6e6f742d756e736166654c69717569646174696f6e456e67696e652f636f6c6c61746572616c2d6f722d646562742d6f766572666c6f774c69717569646174696f6e456e67696e652f636f6e74726163742d6e6f742d656e61626c65644c69717569646174696f6e456e67696e652f736176696f75722d6e6f742d617574686f72697a65644c69717569646174696f6e456e67696e652f6e756c6c2d636f6c6c61746572616c2d746f2d73656c6c4c69717569646174696f6e456e67696e652f63616e6e6f742d6d6f646966792d736166654c69717569646174696f6e456e67696e652f6d6f646966792d756e7265636f676e697a65642d706172616da26469706673582212201d24f5f6a16d64671848cd4d9d2689e4b4697b17f41e29b1cb820ae4503ba0a764736f6c63430006070033000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80634faeff1d116100c357806394f3f81d1161007c57806394f3f81d146103b757806395ffa802146103dd578063961d45c414610403578063d07900bb1461040b578063d4b9311d14610450578063fe4f5890146104795761014d565b80634faeff1d146102fd578063513a3dba146103235780635626da24146103555780636614f0101461037b57806367aea313146103a7578063894ba833146103af5761014d565b806335b281531161011557806335b28153146102255780633896a3841461024b5780633c7999571461027f57806341b3a0d914610287578063456b81811461028f5780634c28be57146102d15761014d565b8063049c92791461015257806324ba5884146101905780632c20afc4146101b657806332d0eefd146101fe578063332bef1114610206575b600080fd5b61017e6004803603604081101561016857600080fd5b50803590602001356001600160a01b031661049c565b60408051918252519081900360200190f35b61017e600480360360208110156101a657600080fd5b50356001600160a01b0316610647565b6101e2600480360360408110156101cc57600080fd5b50803590602001356001600160a01b0316610659565b604080516001600160a01b039092168252519081900360200190f35b61017e61067f565b6102236004803603602081101561021c57600080fd5b5035610685565b005b6102236004803603602081101561023b57600080fd5b50356001600160a01b0316610719565b6102236004803603606081101561026157600080fd5b508035906001600160a01b03602082013581169160400135166107b9565b61017e610950565b61017e610956565b6102bb600480360360408110156102a557600080fd5b50803590602001356001600160a01b031661095c565b6040805160ff9092168252519081900360200190f35b61017e600480360360408110156102e757600080fd5b50803590602001356001600160a01b031661097c565b6102236004803603602081101561031357600080fd5b50356001600160a01b03166114f7565b6102236004803603606081101561033957600080fd5b50803590602081013590604001356001600160a01b0316611598565b61017e6004803603602081101561036b57600080fd5b50356001600160a01b0316611785565b6102236004803603604081101561039157600080fd5b50803590602001356001600160a01b0316611797565b6101e2611862565b610223611871565b610223600480360360208110156103cd57600080fd5b50356001600160a01b03166118ef565b610223600480360360208110156103f357600080fd5b50356001600160a01b031661198e565b6101e2611b66565b6104286004803603602081101561042157600080fd5b5035611b75565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6102236004803603606081101561046657600080fd5b5080359060208101359060400135611ba1565b6102236004803603604081101561048f57600080fd5b5080359060200135611cf2565b6008546040805163d07900bb60e01b815260048101859052905160009283926001600160a01b039091169163d07900bb9160248082019260c092909190829003018186803b1580156104ed57600080fd5b505afa158015610501573d6000803e3d6000fd5b505050506040513d60c081101561051757600080fd5b506020015160085460408051630f50894160e21b8152600481018890526001600160a01b038781166024830152825194955060009485949190911692633d4225049260448082019391829003018186803b15801561057457600080fd5b505afa158015610588573d6000803e3d6000fd5b505050506040513d604081101561059e57600080fd5b50805160209091015190925090506105b4611ee8565b50600086815260026020818152604092839020835160608101855281546001600160a01b031681526001820154928101839052920154928201839052600554600654929361063a938693928992610625926106179261061291611dac565b611e04565b670de0b6b3a7640000611e1c565b8161062c57fe5b048161063457fe5b04611e04565b9450505050505b92915050565b60006020819052908152604090205481565b60036020908152600092835260408084209091529082529020546001600160a01b031681565b60055481565b336000908152602081905260409020546001146106d35760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b6106df60065482611dac565b600681905560408051918252517fe1bbac4c69a9c7825ff4f220089a412e2349521ceba06c7f07c3764522ef04149181900360200190a150565b336000908152602081905260409020546001146107675760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b600854604080516350de215d60e01b81526001600160a01b038581166004830152336024830152915191909216916350de215d916044808301926020929190829003018186803b15801561080c57600080fd5b505afa158015610820573d6000803e3d6000fd5b505050506040513d602081101561083657600080fd5b50516108735760405162461bcd60e51b81526004018080602001828103825260248152602001806120a76024913960400191505060405180910390fd5b6001600160a01b03811615806108a257506001600160a01b038116600090815260016020819052604090912054145b6108dd5760405162461bcd60e51b81526004018080602001828103825260288152602001806120566028913960400191505060405180910390fd5b60008381526003602090815260408083206001600160a01b038681168086529184529382902080546001600160a01b031916948616948517905581519384529051909286927f9c0c3b2f97315fb268638262f83f63de4f645ad9ae8ea84e2182f67e7d28d8f792918290030190a3505050565b60065481565b60075481565b600460209081526000928352604080842090915290825290205460ff1681565b60008281526004602090815260408083206001600160a01b038516845290915281205460ff16156109f4576040805162461bcd60e51b815260206004820181905260248201527f4c69717569646174696f6e456e67696e652f6e6f6e2d6e756c6c2d6d75746578604482015290519081900360640190fd5b60008381526004602081815260408084206001600160a01b0380881686529252808420805460ff19166001179055600854815163d07900bb60e01b8152938401889052905184938493929092169163d07900bb9160248083019260c0929190829003018186803b158015610a6757600080fd5b505afa158015610a7b573d6000803e3d6000fd5b505050506040513d60c0811015610a9157600080fd5b506020810151608082015160a09092015160085460408051630f50894160e21b8152600481018c90526001600160a01b038b8116602483015282519599509597509295506000948594921692633d4225049260448083019392829003018186803b158015610afe57600080fd5b505afa158015610b12573d6000803e3d6000fd5b505050506040513d6040811015610b2857600080fd5b5080516020909101516007549193509150600114610b775760405162461bcd60e51b81526004018080602001828103825260268152602001806120306026913960400191505060405180910390fd5b610b9860008411610b888388611e1c565b610b928587611e1c565b10611e88565b610bd35760405162461bcd60e51b8152600401808060200182810382526021815260200180611fe26021913960400191505060405180910390fd5b610bf36005546006541085610bec600554600654611dac565b1015611e88565b610c2e5760405162461bcd60e51b8152600401808060200182810382526027815260200180611f136027913960400191505060405180910390fd5b60008881526003602090815260408083206001600160a01b038b811685529252909120541615801590610c90575060008881526003602090815260408083206001600160a01b03808c1685529083528184205416835260019182905290912054145b15610e6b5760008881526003602090815260408083206001600160a01b03808c168086529190935281842054825163b9b0bb3960e01b8152336004820152602481018e905260448101929092529151919092169263b9b0bb3992606480820193606093909283900390910190829087803b158015610d0d57600080fd5b505af1925050508015610d4157506040513d6060811015610d2d57600080fd5b508051602082015160409092015190919060015b610e14573d808015610d6f576040519150601f19603f3d011682016040523d82523d6000602084013e610d74565b606091505b507fe7862113e21c9c96e382110b92dfc08242b5c58f90259305fe30adc0d77e2a43816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dd4578181015183820152602001610dbc565b50505050905090810190601f168015610e015780820380516001836020036101000a031916815260200191505b509250505060405180910390a150610e6b565b610e218360008411611e88565b15610e67576040805183815290516001600160a01b038c16918d917f7afee8680e1a5395600115d5fc996ecb20b450ca793815c08c9b19d2dc6663d79181900360200190a35b5050505b60085460408051630f50894160e21b8152600481018b90526001600160a01b038a8116602483015282516000948594921692633d422504926044808301939192829003018186803b158015610ebf57600080fd5b505afa158015610ed3573d6000803e3d6000fd5b505050506040513d6040811015610ee957600080fd5b5080516020909101519092509050610f078483101584831115611e88565b610f425760405162461bcd60e51b8152600401808060200182810382526030815260200180611f3a6030913960400191505060405180910390fd5b50506008546040805163d07900bb60e01b8152600481018b905290516001600160a01b039092169163d07900bb9160248082019260c092909190829003018186803b158015610f9057600080fd5b505afa158015610fa4573d6000803e3d6000fd5b505050506040513d60c0811015610fba57600080fd5b50602081015160a09091015160085460408051630f50894160e21b8152600481018d90526001600160a01b038c811660248301528251959a509397509290911692633d422504926044808201939291829003018186803b15801561101d57600080fd5b505afa158015611031573d6000803e3d6000fd5b505050506040513d604081101561104757600080fd5b5080516020909101519092509050611065831515610b888388611e1c565b156114c457611072611ee8565b506000888152600260208181526040808420815160608101835281546001600160a01b0316815260018201549381018490529301549083018190526005546006549394936110d493879390928c92610625926106179290916106129190611dac565b90506000811161112b576040805162461bcd60e51b815260206004820152601e60248201527f4c69717569646174696f6e456e67696e652f6e756c6c2d61756374696f6e0000604482015290519081900360640190fd5b61114c8382148761114561113f8786611dac565b8b611e1c565b1015611e8c565b61119d576040805162461bcd60e51b815260206004820152601c60248201527f4c69717569646174696f6e456e67696e652f64757374792d7361666500000000604482015290519081900360640190fd5b60006111b585856111ae8886611e1c565b8161063457fe5b9050600081116111f65760405162461bcd60e51b815260040180806020018281038252602981526020018061207e6029913960400191505060405180910390fd5b61120e600160ff1b821115600160ff1b841115611e88565b6112495760405162461bcd60e51b815260040180806020018281038252602d815260200180612003602d913960400191505060405180910390fd5b60085460095460408051634e14a96760e01b8152600481018f90526001600160a01b038e8116602483015230604483015292831660648201526000858103608483015286810360a483015291519290931692634e14a9679260c4808301939282900301818387803b1580156112bd57600080fd5b505af11580156112d1573d6000803e3d6000fd5b50506009546001600160a01b0316915063a8b30a9f90506112f2848b611e1c565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132857600080fd5b505af115801561133c573d6000803e3d6000fd5b505050506000670de0b6b3a7640000611362611358858c611e1c565b8660200151611e1c565b8161136957fe5b04905061137860065482611e90565b60065583516009546040805163097af09d60e21b81526001600160a01b038f8116600483015292831660248201526044810185905260648101869052600060848201819052915192909316926325ebc2749260a48083019360209383900390910190829087803b1580156113eb57600080fd5b505af11580156113ff573d6000803e3d6000fd5b505050506040513d602081101561141557600080fd5b50516006546040805191825251919b507fe1bbac4c69a9c7825ff4f220089a412e2349521ceba06c7f07c3764522ef0414919081900360200190a150896001600160a01b03168b7f72d3864f233703680912d39433c137e816d579e8785e5245274ca9f95bea89678385611489878e611e1c565b8851604080519485526020850193909352838301919091526001600160a01b03166060830152608082018e9052519081900360a00190a35050505b505050600094855250506004602090815260408085206001600160a01b0390941685529290529120805460ff1916905590565b336000908152602081905260409020546001146115455760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b6001600160a01b038116600081815260016020908152604080832092909255815192835290517ffce504fd9d349038183fa936cbbfadf867e63406485f0f4f9f45f7f2856f813f9281900390910190a150565b336000908152602081905260409020546001146115e65760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b8175636f6c6c61746572616c41756374696f6e486f75736560501b14156117015760085460008481526002602052604080822054815163d49d786760e01b81526001600160a01b039182166004820152915193169263d49d78679260248084019391929182900301818387803b15801561165f57600080fd5b505af1158015611673573d6000803e3d6000fd5b50505060008481526002602052604080822080546001600160a01b0319166001600160a01b038681169182179092556008548351631b29a84160e31b81526004810192909252925192909116935063d94d420892602480830193919282900301818387803b1580156116e457600080fd5b505af11580156116f8573d6000803e3d6000fd5b50505050611738565b60405162461bcd60e51b815260040180806020018281038252602b8152602001806120cb602b913960400191505060405180910390fd5b60408051848152602081018490526001600160a01b0383168183015290517f87c209b94b27bfe8cb3329ca996f854fc16f2ec485116b0932eccd15fac50a409181900360600190a1505050565b60016020526000908152604090205481565b336000908152602081905260409020546001146117e55760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b816f6163636f756e74696e67456e67696e6560801b141561170157600980546001600160a01b0319166001600160a01b038316179055604080518381526001600160a01b038316602082015281517fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d1929181900390910190a15050565b6008546001600160a01b031681565b336000908152602081905260409020546001146118bf5760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b600060078190556040517f2d4b4ecff7bd7503135271925520a2f6c0d98c9473ffc1a1e72c92502f51b25e9190a1565b3360009081526020819052604090205460011461193d5760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b336000908152602081905260409020546001146119dc5760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b6040805163b9b0bb3960e01b81523060048201526000604482018190529151829182916001600160a01b0386169163b9b0bb3991606480830192606092919082900301818787803b158015611a3057600080fd5b505af1158015611a44573d6000803e3d6000fd5b505050506040513d6060811015611a5a57600080fd5b5080516020820151604090920151909450909250905082611ac2576040805162461bcd60e51b815260206004820181905260248201527f4c69717569646174696f6e456e67696e652f736176696f75722d6e6f742d6f6b604482015290519081900360640190fd5b611ad460001983146000198314611e88565b611b0f5760405162461bcd60e51b8152600401808060200182810382526021815260200180611fc16021913960400191505060405180910390fd5b6001600160a01b03841660008181526001602081815260409283902091909155815192835290517fc2553257d1b78c297941723c1913912f9161a830e997b56133a669b3a3de6a1e9281900390910190a150505050565b6009546001600160a01b031681565b60026020819052600091825260409091208054600182015491909201546001600160a01b039092169183565b33600090815260208190526040902054600114611bef5760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b81716c69717569646174696f6e50656e616c747960701b1415611c25576000838152600260205260409020600101819055611cad565b81726c69717569646174696f6e5175616e7469747960681b141561170157744f3a68dbc8f03f243baf513267aa9a3ee524f8e028811115611c975760405162461bcd60e51b815260040180806020018281038252602f815260200180611f92602f913960400191505060405180910390fd5b6000838152600260208190526040909120018190555b604080518481526020810184905280820183905290517fc59b1109b54f213212d2f5af5c1dae5e887f9daa63b595578fae847cb048e8f49181900360600190a1505050565b33600090815260208190526040902054600114611d405760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6a6028913960400191505060405180910390fd5b817f6f6e41756374696f6e53797374656d436f696e4c696d697400000000000000001415611701576005819055604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b80820382811115610641576040805162461bcd60e51b815260206004820152601f60248201527f4c69717569646174696f6e456e67696e652f7375622d756e646572666c6f7700604482015290519081900360640190fd5b600081831115611e15575080610641565b5090919050565b6000811580611e3757505080820282828281611e3457fe5b04145b610641576040805162461bcd60e51b815260206004820152601e60248201527f4c69717569646174696f6e456e67696e652f6d756c2d6f766572666c6f770000604482015290519081900360640190fd5b1690565b1790565b80820182811015610641576040805162461bcd60e51b815260206004820152601e60248201527f4c69717569646174696f6e456e67696e652f6164642d6f766572666c6f770000604482015290519081900360640190fd5b604051806060016040528060006001600160a01b031681526020016000815260200160008152509056fe4c69717569646174696f6e456e67696e652f6c69717569646174696f6e2d6c696d69742d6869744c69717569646174696f6e456e67696e652f696e76616c69642d736166652d736176696f75722d6f7065726174696f6e4c69717569646174696f6e456e67696e652f6163636f756e742d6e6f742d617574686f72697a65644c69717569646174696f6e456e67696e652f6c69717569646174696f6e2d7175616e746974792d6f766572666c6f774c69717569646174696f6e456e67696e652f696e76616c69642d616d6f756e74734c69717569646174696f6e456e67696e652f736166652d6e6f742d756e736166654c69717569646174696f6e456e67696e652f636f6c6c61746572616c2d6f722d646562742d6f766572666c6f774c69717569646174696f6e456e67696e652f636f6e74726163742d6e6f742d656e61626c65644c69717569646174696f6e456e67696e652f736176696f75722d6e6f742d617574686f72697a65644c69717569646174696f6e456e67696e652f6e756c6c2d636f6c6c61746572616c2d746f2d73656c6c4c69717569646174696f6e456e67696e652f63616e6e6f742d6d6f646966792d736166654c69717569646174696f6e456e67696e652f6d6f646966792d756e7265636f676e697a65642d706172616da26469706673582212201d24f5f6a16d64671848cd4d9d2689e4b4697b17f41e29b1cb820ae4503ba0a764736f6c63430006070033

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

000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962

-----Decoded View---------------
Arg [0] : safeEngine_ (address): 0xCC88a9d330da1133Df3A7bD823B95e52511A6962

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962


Deployed Bytecode Sourcemap

2256:16195:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2256:16195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;17805:643:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17805:643:0;;;;;;-1:-1:-1;;;;;17805:643:0;;:::i;:::-;;;;;;;;;;;;;;;;2311:54;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2311:54:0;-1:-1:-1;;;;;2311:54:0;;:::i;5168:73::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5168:73:0;;;;;;-1:-1:-1;;;;;5168:73:0;;:::i;:::-;;;;-1:-1:-1;;;;;5168:73:0;;;;;;;;;;;;;;5491:39;;;:::i;17312:234::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17312:234:0;;:::i;:::-;;2475:156;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2475:156:0;-1:-1:-1;;;;;2475:156:0;;:::i;11816:512::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11816:512:0;;;-1:-1:-1;;;;;11816:512:0;;;;;;;;;;;;:::i;5636:42::-;;;:::i;5763:30::-;;;:::i;5347:61::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5347:61:0;;;;;;-1:-1:-1;;;;;5347:61:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;12481:4661;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12481:4661:0;;;;;;-1:-1:-1;;;;;12481:4661:0;;:::i;4125:160::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4125:160:0;-1:-1:-1;;;;;4125:160:0;;:::i;10714:629::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10714:629:0;;;;;;;;;;;-1:-1:-1;;;;;10714:629:0;;:::i;3239:48::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3239:48:0;-1:-1:-1;;;;;3239:48:0;;:::i;9214:300::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9214:300:0;;;;;;-1:-1:-1;;;;;9214:300:0;;:::i;5802:38::-;;;:::i;11443:120::-;;;:::i;2750:162::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2750:162:0;-1:-1:-1;;;;;2750:162:0;;:::i;3459:487::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3459:487:0;-1:-1:-1;;;;;3459:487:0;;:::i;5847:44::-;;;:::i;5029:71::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5029:71:0;;:::i;:::-;;;;-1:-1:-1;;;;;5029:71:0;;;;;;;;;;;;;;;;;;;;;;;;;9763:675;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9763:675:0;;;;;;;;;;;;:::i;8741:294::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8741:294:0;;;;;;;:::i;17805:643::-;17968:10;;:42;;;-1:-1:-1;;;17968:42:0;;;;;;;;;;17903:7;;;;-1:-1:-1;;;;;17968:10:0;;;;:26;;:42;;;;;;;;;;;;;;;:10;:42;;;2:2:-1;;;;27:1;24;17:12;2:2;17968:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17968:42:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;17968:42:0;;;18066:10;;17968:42;18066:38;;-1:-1:-1;;;18066:38:0;;;;;;;;-1:-1:-1;;;;;18066:38:0;;;;;;;;;17968:42;;-1:-1:-1;18022:22:0;;;;18066:10;;;;;:16;;:38;;;;;;;;;;;:10;:38;;;2:2:-1;;;;27:1;24;17:12;2:2;18066:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18066:38:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18066:38:0;;;;;;;;;-1:-1:-1;18066:38:0;-1:-1:-1;18115:36:0;;:::i;:::-;-1:-1:-1;18160:31:0;;;;:15;:31;;;;;;;;;18115:76;;;;;;;;;-1:-1:-1;;;;;18115:76:0;;;;;;;;;;;;;;;;;;;;;;18314:24;;18340:27;;18115:76;;18211:229;;18231:8;;18115:76;18378:15;;18252:123;;18261:108;;18305:63;;:8;:63::i;:::-;18261:7;:108::i;:::-;7555:8;18252;:123::i;:::-;:141;;;;;;:177;;;;;;18211:7;:229::i;:::-;18204:236;;;;;;17805:643;;;;;:::o;2311:54::-;;;;;;;;;;;;;;:::o;5168:73::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5168:73:0;;:::o;5491:39::-;;;;:::o;17312:234::-;3065:10;3046:18;:30;;;;;;;;;;;3080:1;3046:35;3038:88;;;;-1:-1:-1;;;3038:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17418:42:::1;17427:27;;17456:3;17418:8;:42::i;:::-;17388:27;:72:::0;;;17476:62:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;17312:234:::0;:::o;2475:156::-;3065:10;3046:18;:30;;;;;;;;;;;3080:1;3046:35;3038:88;;;;-1:-1:-1;;;3038:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2551:27:0;::::1;:18;:27:::0;;;::::1;::::0;;;;;;;;2581:1:::1;2551:31:::0;;2598:25;;;;;;;::::1;::::0;;;;;;;;::::1;2475:156:::0;:::o;11816:512::-;11954:10;;:42;;;-1:-1:-1;;;11954:42:0;;-1:-1:-1;;;;;11954:42:0;;;;;;;11985:10;11954:42;;;;;;:10;;;;;:24;;:42;;;;;;;;;;;;;;:10;:42;;;2:2:-1;;;;27:1;24;17:12;2:2;11954:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11954:42:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11954:42:0;11946:91;;;;-1:-1:-1;;;11946:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12056:21:0;;;;:51;;-1:-1:-1;;;;;;12081:21:0;;;;;;:12;:21;;;;;;;;;:26;12056:51;12048:104;;;;-1:-1:-1;;;12048:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12163:33;;;;:17;:33;;;;;;;;-1:-1:-1;;;;;12163:39:0;;;;;;;;;;;;;:49;;-1:-1:-1;;;;;;12163:49:0;;;;;;;;;12228:92;;;;;;;12163:39;;:33;;12228:92;;;;;;;;;11816:512;;;:::o;5636:42::-;;;;:::o;5763:30::-;;;;:::o;5347:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12481:4661::-;12560:17;12598:21;;;:5;:21;;;;;;;;-1:-1:-1;;;;;12598:27:0;;;;;;;;;;;;:32;12590:77;;;;;-1:-1:-1;;;12590:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12678:21;;;;:5;:21;;;;;;;;-1:-1:-1;;;;;12678:27:0;;;;;;;;;;:31;;-1:-1:-1;;12678:31:0;12708:1;12678:31;;;12801:10;;:42;;-1:-1:-1;;;12801:42:0;;;;;;;;;;12678:21;;;;12801:10;;;;;:26;;:42;;;;;;;;;;;;;;:10;:42;;;2:2:-1;;;;27:1;24;17:12;2:2;12801:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12801:42:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;12801:42:0;;;;;;;;;;;;;12899:10;;12801:42;12899:38;;-1:-1:-1;;;12899:38:0;;;;;;;;-1:-1:-1;;;;;12899:38:0;;;;;;;;;12801:42;;-1:-1:-1;12801:42:0;;-1:-1:-1;12801:42:0;;-1:-1:-1;12855:22:0;;;;12899:10;;;:16;;:38;;;;;12801:42;12899:38;;;;;:10;:38;;;2:2:-1;;;;27:1;24;17:12;2:2;12899:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12899:38:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12899:38:0;;;;;;;12958:15;;12899:38;;-1:-1:-1;12899:38:0;-1:-1:-1;12977:1:0;12958:20;12950:71;;;;-1:-1:-1;;;12950:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13040:141;13076:1;13057:16;:20;13135:35;13144:8;13154:15;13135:8;:35::i;:::-;13090:42;13099:14;13115:16;13090:8;:42::i;:::-;:80;13040:4;:141::i;:::-;13032:187;;;;-1:-1:-1;;;13032:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13250:149;13285:24;;13255:27;;:54;13389:9;13322:63;13331:24;;13357:27;;13322:8;:63::i;:::-;:76;;13250:4;:149::i;:::-;13230:234;;;;-1:-1:-1;;;13230:234:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13532:1;13481:33;;;:17;:33;;;;;;;;-1:-1:-1;;;;;13481:39:0;;;;;;;;;;;;:53;;;;:128;;-1:-1:-1;13551:53:0;13564:33;;;:17;:33;;;;;;;;-1:-1:-1;;;;;13564:39:0;;;;;;;;;;;;;13551:53;;:12;:53;;;;;;;;:58;13481:128;13477:608;;;13644:33;;;;:17;:33;;;;;;;;-1:-1:-1;;;;;13644:39:0;;;;;;;;;;;;;;13628:99;;-1:-1:-1;;;13628:99:0;;13694:10;13628:99;;;;;;;;;;;;;;;;;;;13644:39;;;;;13628:65;;:99;;;;;;;;;;;;;;;;;;13644:39;13628:99;;;2:2:-1;;;;27:1;24;17:12;2:2;13628:99:0;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13628:99:0;;;;;;;;;;;;;;;;13624:450;;;;14:27:-1;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;14032:28:0;14047:12;14032:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14032:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13978:96;13624:450;;;13824:41;13829:2;13863:1;13833:27;:31;13824:4;:41::i;:::-;13820:144;;;13889:59;;;;;;;;-1:-1:-1;;;;;13889:59:0;;;13898:14;;13889:59;;;;;;;;;13820:144;13741:236;;;13624:450;14249:10;;:38;;;-1:-1:-1;;;14249:38:0;;;;;;;;-1:-1:-1;;;;;14249:38:0;;;;;;;;;14199:25;;;;14249:10;;;:16;;:38;;;;;;;;;;;;:10;:38;;;2:2:-1;;;;27:1;24;17:12;2:2;14249:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14249:38:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14249:38:0;;;;;;;;;-1:-1:-1;14249:38:0;-1:-1:-1;14308:66:0;14313:35;;;;14350:23;;;;14308:4;:66::i;:::-;14300:127;;;;-1:-1:-1;;;14300:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14497:10:0;;:42;;;-1:-1:-1;;;14497:42:0;;;;;;;;;;-1:-1:-1;;;;;14497:10:0;;;;:26;;:42;;;;;;;;;;;;;;;:10;:42;;;2:2:-1;;;;27:1;24;17:12;2:2;14497:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14497:42:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;14497:42:0;;;;;;;;;14579:10;;14497:42;14579:38;;-1:-1:-1;;;14579:38:0;;;;;;;;-1:-1:-1;;;;;14579:38:0;;;;;;;;;14497:42;;-1:-1:-1;14497:42:0;;-1:-1:-1;14579:10:0;;;;;:16;;:38;;;;;14497:42;14579:38;;;;;;:10;:38;;;2:2:-1;;;;27:1;24;17:12;2:2;14579:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14579:38:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14579:38:0;;;;;;;;;-1:-1:-1;14579:38:0;-1:-1:-1;14634:108:0;14639:20;;;14706:35;14579:38;14725:15;14706:8;:35::i;14634:108::-;14630:2461;;;14757:36;;:::i;:::-;-1:-1:-1;14796:31:0;;;;:15;:31;;;;;;;;14757:70;;;;;;;;;-1:-1:-1;;;;;14757:70:0;;;;;;;;;;;;;;;;;;;;;;14977:24;;15003:27;;14757:70;;14796:31;14870:235;;14892:8;;14757:70;;15041:15;;14915:123;;14924:108;;14757:70;;14968:63;;14977:24;14968:8;:63::i;14870:235::-;14842:263;;15146:1;15126:17;:21;15118:64;;;;;-1:-1:-1;;;15118:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15203:116;15231:8;15210:17;:29;15309:9;15241:64;15250:37;15259:8;15269:17;15250:8;:37::i;:::-;15289:15;15241:8;:64::i;:::-;:77;;15203:6;:116::i;:::-;15195:157;;;;;-1:-1:-1;;;15195:157:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15367:24;15394:79;15402:14;15464:8;15418:43;15427:14;15443:17;15418:8;:43::i;:::-;:54;;;;15394:79;15367:106;;15515:1;15496:16;:20;15488:74;;;;-1:-1:-1;;;15488:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15583:61;-1:-1:-1;;;15588:16:0;:26;;-1:-1:-1;;;15616:17:0;:27;;15583:4;:61::i;:::-;15575:119;;;;-1:-1:-1;;;15575:119:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15709:10;;15811:16;;15709:187;;;-1:-1:-1;;;15709:187:0;;;;;;;;-1:-1:-1;;;;;15709:187:0;;;;;;;15796:4;15709:187;;;;15811:16;;;15709:187;;;;:10;15830:25;;;15709:187;;;;15857:26;;;15709:187;;;;;;:10;;;;;:42;;:187;;;;;:10;:187;;;;;:10;;:187;;;2:2:-1;;;;27:1;24;17:12;2:2;15709:187:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15909:16:0;;-1:-1:-1;;;;;15909:16:0;;-1:-1:-1;15909:32:0;;-1:-1:-1;15942:44:0;15951:17;15970:15;15942:8;:44::i;:::-;15909:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15909:78:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15909:78:0;;;;16212:22;7555:8;16242:89;16251:44;16260:17;16279:15;16251:8;:44::i;:::-;16297:14;:33;;;16242:8;:89::i;:::-;:95;;;;;;16212:125;;16382:53;16391:27;;16420:14;16382:8;:53::i;:::-;16352:27;:83;16491:37;;16633:16;;16464:333;;;-1:-1:-1;;;16464:333:0;;-1:-1:-1;;;;;16464:333:0;;;;;;;16633:16;;;16464:333;;;;;;;;;;;;;;;;16491:37;16464:333;;;;;;;;:78;;;;;;;:333;;;;;;;;;;;;;;;;:78;:333;;;2:2:-1;;;;27:1;24;17:12;2:2;16464:333:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16464:333:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16464:333:0;16854:27;;16820:62;;;;;;;16464:333;;-1:-1:-1;16820:62:0;;;;;;16464:333;16820:62;;;14630:2461;16941:4;-1:-1:-1;;;;;16915:164:0;16925:14;16915:164;16947:16;16965:17;16984:44;16993:17;17012:15;16984:8;:44::i;:::-;17030:37;;16915:164;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16915:164:0;;;;;;;;;;;;;;;;;;;;14630:2461;;;;-1:-1:-1;;;17133:1:0;17103:21;;;-1:-1:-1;;17103:5:0;:21;;;;;;;;-1:-1:-1;;;;;17103:27:0;;;;;;;;;;:31;;-1:-1:-1;;17103:31:0;;;12481:4661;:::o;4125:160::-;3065:10;3046:18;:30;;;;;;;;;;;3080:1;3046:35;3038:88;;;;-1:-1:-1;;;3038:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4206:21:0;::::1;4230:1;4206:21:::0;;;:12:::1;:21;::::0;;;;;;;:25;;;;4247:30;;;;;;;::::1;::::0;;;;;;;;::::1;4125:160:::0;:::o;10714:629::-;3065:10;3046:18;:30;;;;;;;;;;;3080:1;3046:35;3038:88;;;;-1:-1:-1;;;3038:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10868:9:::1;-1:-1:-1::0;;;10868:37:0::1;10864:356;;;10922:10;::::0;::::1;10954:31:::0;;;:15:::1;:31;::::0;;;;;:54;10922:87;;-1:-1:-1;;;10922:87:0;;-1:-1:-1;;;;;10954:54:0;;::::1;10922:87;::::0;::::1;::::0;;;:10;::::1;::::0;:31:::1;::::0;:87;;;;;:10;;:87;;;;;;:10;;:87;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;10922:87:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;;11024:31:0::1;::::0;;;:15:::1;:31;::::0;;;;;:61;;-1:-1:-1;;;;;;11024:61:0::1;-1:-1:-1::0;;;;;11024:61:0;;::::1;::::0;;::::1;::::0;;;11100:10:::1;::::0;:40;;-1:-1:-1;;;11100:40:0;;::::1;::::0;::::1;::::0;;;;;;:10;;;::::1;::::0;-1:-1:-1;11100:34:0::1;::::0;:40;;;;;11024:31;;11100:40;;;;;11024:31;11100:10;:40;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;11100:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;11100:40:0;;;;10864:356;;;11167:53;;-1:-1:-1::0;;;11167:53:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10864:356;11236:99;::::0;;;;;::::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;11236:99:0;::::1;::::0;;;;;;::::1;::::0;;;;;;;::::1;10714:629:::0;;;:::o;3239:48::-;;;;;;;;;;;;;:::o;9214:300::-;3065:10;3046:18;:30;;;;;;;;;;;3080:1;3046:35;3038:88;;;;-1:-1:-1;;;3038:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9310:9:::1;-1:-1:-1::0;;;9310:31:0::1;9306:151;;;9343:16;:45:::0;;-1:-1:-1;;;;;;9343:45:0::1;-1:-1:-1::0;;;;;9343:45:0;::::1;;::::0;;9473:33:::1;::::0;;;;;-1:-1:-1;;;;;9473:33:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;;::::1;9214:300:::0;;:::o;5802:38::-;;;-1:-1:-1;;;;;5802:38:0;;:::o;11443:120::-;3065:10;3046:18;:30;;;;;;;;;;;3080:1;3046:35;3038:88;;;;-1:-1:-1;;;3038:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11521:1:::1;11503:15;:19:::0;;;11538:17:::1;::::0;::::1;::::0;11521:1;11538:17:::1;11443:120::o:0;2750:162::-;3065:10;3046:18;:30;;;;;;;;;;;3080:1;3046:35;3038:88;;;;-1:-1:-1;;;3038:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2829:27:0;::::1;2859:1;2829:27:::0;;;::::1;::::0;;;;;;;:31;;;;2876:28;;;;;;;::::1;::::0;;;;;;;;::::1;2750:162:::0;:::o;3459:487::-;3065:10;3046:18;:30;;;;;;;;;;;3080:1;3046:35;3038:88;;;;-1:-1:-1;;;3038:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3611:64:::1;::::0;;-1:-1:-1;;;3611:64:0;;3653:4:::1;3611:64;::::0;::::1;::::0;3538:7:::1;3611:64:::0;;;;;;;;3538:7;;;;-1:-1:-1;;;;;3611:33:0;::::1;::::0;::::1;::::0;:64;;;;;::::1;::::0;;;;;;;;3538:7;3611:33;:64;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;3611:64:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3611:64:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;3611:64:0;;::::1;::::0;::::1;::::0;;;;;;;;-1:-1:-1;3611:64:0;;-1:-1:-1;3611:64:0;-1:-1:-1;3611:64:0;3686:47:::1;;;::::0;;-1:-1:-1;;;3686:47:0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;3752:69;-1:-1:-1::0;;3757:15:0::1;:30;-1:-1:-1::0;;3789:16:0::1;:31;3752:4;:69::i;:::-;3744:115;;;;-1:-1:-1::0;;;3744:115:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;3870:21:0;::::1;;::::0;;;3894:1:::1;3870:21;::::0;;;;;;;;:25;;;;3911:27;;;;;;;::::1;::::0;;;;;;;;::::1;3137:1;;;3459:487:::0;:::o;5847:44::-;;;-1:-1:-1;;;;;5847:44:0;;:::o;5029:71::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5029:71:0;;;;;:::o;9763:675::-;3065:10;3046:18;:30;;;;;;;;;;;3080:1;3046:35;3038:88;;;;-1:-1:-1;;;3038:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9917:9:::1;-1:-1:-1::0;;;9917:33:0::1;9913:408;;;9952:31;::::0;;;:15:::1;:31;::::0;;;;:50:::1;;:57:::0;;;9913:408:::1;;;10029:9;-1:-1:-1::0;;;10029:34:0::1;10025:296;;;7652:17:::0;10086:32;::::1;;10078:92;;;;-1:-1:-1::0;;;10078:92:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10183:31;::::0;;;:15:::1;:31;::::0;;;;;;;:51:::1;:58:::0;;;10025:296:::1;10337:93;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;9763:675:::0;;;:::o;8741:294::-;3065:10;3046:18;:30;;;;;;;;;;;3080:1;3046:35;3038:88;;;;-1:-1:-1;;;3038:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8837:9:::1;:39;;8833:145;;;8878:24;:31:::0;;;8994:33:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;8741:294:::0;;:::o;7836:153::-;7934:5;;;7929:16;;;;7921:60;;;;;-1:-1:-1;;;7921:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8167:128;8229:9;8259:1;8255;:5;8251:37;;;-1:-1:-1;8268:1:0;8251:37;;;-1:-1:-1;8284:1:0;;8167:128;-1:-1:-1;8167:128:0:o;7995:166::-;8058:9;8088:6;;;:30;;-1:-1:-1;;8103:5:0;;;8117:1;8112;8103:5;8112:1;8098:15;;;;;:20;8088:30;8080:73;;;;;-1:-1:-1;;;8080:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8325:104;8412:9;;8405:17::o;8435:105::-;8524:8;;8517:16::o;7678:152::-;7776:5;;;7771:16;;;;7763:59;;;;;-1:-1:-1;;;7763:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2256:16195;;;;;;;;;;-1:-1:-1;;;;;2256:16195:0;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://1d24f5f6a16d64671848cd4d9d2689e4b4697b17f41e29b1cb820ae4503ba0a7

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

The LiquidationEngine enables external actors to liquidate SAFEs and send their collateral to the CollateralAuctionHouse as well as send a portion of their debt to the AccountingEngine.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.