ETH Price: $3,773.64 (-1.82%)
Gas: 8 Gwei

Contract

0xa10C1e933C21315DfcaA8C8eDeDD032BD9b0Bccf
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Remove Authoriza...151706652022-07-19 3:31:15680 days ago1658201475IN
0xa10C1e93...BD9b0Bccf
0 ETH0.0005966625.78383874
Add Authorizatio...151706502022-07-19 3:27:46680 days ago1658201266IN
0xa10C1e93...BD9b0Bccf
0 ETH0.0013728329.12124813
0x60806040151705392022-07-19 3:03:24680 days ago1658199804IN
 Create: MinimalLiquidationEngineOverlay
0 ETH0.0137063326.16572493

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MinimalLiquidationEngineOverlay

Compiler Version
v0.6.7+commit.b8d736ae

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2022-07-19
*/

pragma solidity 0.6.7;

contract GebAuth {
    // --- Authorization ---
    mapping (address => uint) 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, "GebAuth/account-not-authorized");
        _;
    }

    // --- Events ---
    event AddAuthorization(address account);
    event RemoveAuthorization(address account);

    constructor () public {
        authorizedAccounts[msg.sender] = 1;
        emit AddAuthorization(msg.sender);
    }
}

abstract contract LiquidationEngineLike {
    function modifyParameters(
        bytes32 collateralType,
        bytes32 parameter,
        uint256 data
    ) external virtual;
    function connectSAFESaviour(address) virtual external;
    function disconnectSAFESaviour(address) virtual external;
}

contract MinimalLiquidationEngineOverlay is GebAuth {
    // Minimum and maximum possible penalty for any collateral type liquidation
    uint256               public minPenalty;
    uint256               public maxPenalty;

    LiquidationEngineLike public liquidationEngine;

    constructor(address liquidationEngine_, uint256 minPenalty_, uint256 maxPenalty_) public GebAuth() {
        require(liquidationEngine_ != address(0), "MinimalLiquidationEngineOverlay/null-address");
        require(both(minPenalty_ < maxPenalty_, minPenalty_ > 0), "MinimalLiquidationEngineOverlay/invalid-penalty-bounds");

        liquidationEngine = LiquidationEngineLike(liquidationEngine_);
        minPenalty        = minPenalty_;
        maxPenalty        = maxPenalty_;
    }

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

    /**
     * @notice Modify a collateral's liquidation penalty
     * @param collateralType The collateral type we change parameters for
     * @param parameter The name of the parameter (must be "liquidationPenalty")
     * @param data New value for the penalty
     */
    function modifyParameters(
        bytes32 collateralType,
        bytes32 parameter,
        uint256 data
    ) external isAuthorized {
        require(parameter == "liquidationPenalty", "MinimalLiquidationEngineOverlay/invalid-param-name");
        require(both(data >= minPenalty, data <= maxPenalty), "MinimalLiquidationEngineOverlay/invalid-new-penalty");
        liquidationEngine.modifyParameters(collateralType, parameter, data);
    }

    /*
    * @notify Connect a new safe saviour to the LiquidationEngine
    * @param saviour The new saviour address
    */
    function connectSAFESaviour(address saviour) external isAuthorized {
        liquidationEngine.connectSAFESaviour(saviour);
    }
    /*
    * @notify Disconnect an existing safe saviour from the LiquidationEngine
    * @param saviour The saviour address to disconnect
    */
    function disconnectSAFESaviour(address saviour) external isAuthorized {
        liquidationEngine.disconnectSAFESaviour(saviour);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"liquidationEngine_","type":"address"},{"internalType":"uint256","name":"minPenalty_","type":"uint256"},{"internalType":"uint256","name":"maxPenalty_","type":"uint256"}],"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":"account","type":"address"}],"name":"RemoveAuthorization","type":"event"},{"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":"address","name":"saviour","type":"address"}],"name":"connectSAFESaviour","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"saviour","type":"address"}],"name":"disconnectSAFESaviour","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidationEngine","outputs":[{"internalType":"contract LiquidationEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPenalty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPenalty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"address","name":"account","type":"address"}],"name":"removeAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516108803803806108808339818101604052606081101561003357600080fd5b50805160208083015160409384015133600081815280855286902060019055855190815294519394919390927f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f7000102928290030190a16001600160a01b0383166100cc5760405162461bcd60e51b815260040180806020018281038252602c815260200180610854602c913960400191505060405180910390fd5b6100e38183108315156001600160e01b0361014a16565b61011e5760405162461bcd60e51b815260040180806020018281038252603681526020018061081e6036913960400191505060405180910390fd5b600380546001600160a01b0319166001600160a01b03949094169390931790925560015560025561014e565b1690565b6106c18061015d6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80634faeff1d116100665780634faeff1d146101245780635200e79e1461014a57806394f3f81d1461015257806395ffa80214610178578063d4b9311d1461019e57610093565b80630eba98491461009857806324ba5884146100b257806335b28153146100d857806344bf3c7214610100575b600080fd5b6100a06101c7565b60408051918252519081900360200190f35b6100a0600480360360208110156100c857600080fd5b50356001600160a01b03166101cd565b6100fe600480360360208110156100ee57600080fd5b50356001600160a01b03166101df565b005b610108610283565b604080516001600160a01b039092168252519081900360200190f35b6100fe6004803603602081101561013a57600080fd5b50356001600160a01b0316610292565b6100a061034d565b6100fe6004803603602081101561016857600080fd5b50356001600160a01b0316610353565b6100fe6004803603602081101561018e57600080fd5b50356001600160a01b03166103f6565b6100fe600480360360608110156101b457600080fd5b5080359060208101359060400135610496565b60015481565b60006020819052908152604090205481565b33600090815260208190526040902054600114610231576040805162461bcd60e51b815260206004820152601e602482015260008051602061066c833981519152604482015290519081900360640190fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b6003546001600160a01b031681565b336000908152602081905260409020546001146102e4576040805162461bcd60e51b815260206004820152601e602482015260008051602061066c833981519152604482015290519081900360640190fd5b60035460408051634faeff1d60e01b81526001600160a01b03848116600483015291519190921691634faeff1d91602480830192600092919082900301818387803b15801561033257600080fd5b505af1158015610346573d6000803e3d6000fd5b5050505050565b60025481565b336000908152602081905260409020546001146103a5576040805162461bcd60e51b815260206004820152601e602482015260008051602061066c833981519152604482015290519081900360640190fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b33600090815260208190526040902054600114610448576040805162461bcd60e51b815260206004820152601e602482015260008051602061066c833981519152604482015290519081900360640190fd5b60035460408051634affd40160e11b81526001600160a01b038481166004830152915191909216916395ffa80291602480830192600092919082900301818387803b15801561033257600080fd5b336000908152602081905260409020546001146104e8576040805162461bcd60e51b815260206004820152601e602482015260008051602061066c833981519152604482015290519081900360640190fd5b81716c69717569646174696f6e50656e616c747960701b1461053b5760405162461bcd60e51b815260040180806020018281038252603281526020018061063a6032913960400191505060405180910390fd5b61054f600154821015600254831115610602565b61058a5760405162461bcd60e51b81526004018080602001828103825260338152602001806106076033913960400191505060405180910390fd5b6003546040805163d4b9311d60e01b815260048101869052602481018590526044810184905290516001600160a01b039092169163d4b9311d9160648082019260009290919082900301818387803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b50505050505050565b169056fe4d696e696d616c4c69717569646174696f6e456e67696e654f7665726c61792f696e76616c69642d6e65772d70656e616c74794d696e696d616c4c69717569646174696f6e456e67696e654f7665726c61792f696e76616c69642d706172616d2d6e616d65476562417574682f6163636f756e742d6e6f742d617574686f72697a65640000a2646970667358221220a6348796609ab8b8d4a7c4d7a446945f72e5e30fb73e46430576a181169e9f1264736f6c634300060700334d696e696d616c4c69717569646174696f6e456e67696e654f7665726c61792f696e76616c69642d70656e616c74792d626f756e64734d696e696d616c4c69717569646174696f6e456e67696e654f7665726c61792f6e756c6c2d616464726573730000000000000000000000004ffbaa89d648079faafc7852de49ea1dc92f99760000000000000000000000000000000000000000000000000f207539952d00000000000000000000000000000000000000000000000000000ff59ee833b30000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100935760003560e01c80634faeff1d116100665780634faeff1d146101245780635200e79e1461014a57806394f3f81d1461015257806395ffa80214610178578063d4b9311d1461019e57610093565b80630eba98491461009857806324ba5884146100b257806335b28153146100d857806344bf3c7214610100575b600080fd5b6100a06101c7565b60408051918252519081900360200190f35b6100a0600480360360208110156100c857600080fd5b50356001600160a01b03166101cd565b6100fe600480360360208110156100ee57600080fd5b50356001600160a01b03166101df565b005b610108610283565b604080516001600160a01b039092168252519081900360200190f35b6100fe6004803603602081101561013a57600080fd5b50356001600160a01b0316610292565b6100a061034d565b6100fe6004803603602081101561016857600080fd5b50356001600160a01b0316610353565b6100fe6004803603602081101561018e57600080fd5b50356001600160a01b03166103f6565b6100fe600480360360608110156101b457600080fd5b5080359060208101359060400135610496565b60015481565b60006020819052908152604090205481565b33600090815260208190526040902054600114610231576040805162461bcd60e51b815260206004820152601e602482015260008051602061066c833981519152604482015290519081900360640190fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b6003546001600160a01b031681565b336000908152602081905260409020546001146102e4576040805162461bcd60e51b815260206004820152601e602482015260008051602061066c833981519152604482015290519081900360640190fd5b60035460408051634faeff1d60e01b81526001600160a01b03848116600483015291519190921691634faeff1d91602480830192600092919082900301818387803b15801561033257600080fd5b505af1158015610346573d6000803e3d6000fd5b5050505050565b60025481565b336000908152602081905260409020546001146103a5576040805162461bcd60e51b815260206004820152601e602482015260008051602061066c833981519152604482015290519081900360640190fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b33600090815260208190526040902054600114610448576040805162461bcd60e51b815260206004820152601e602482015260008051602061066c833981519152604482015290519081900360640190fd5b60035460408051634affd40160e11b81526001600160a01b038481166004830152915191909216916395ffa80291602480830192600092919082900301818387803b15801561033257600080fd5b336000908152602081905260409020546001146104e8576040805162461bcd60e51b815260206004820152601e602482015260008051602061066c833981519152604482015290519081900360640190fd5b81716c69717569646174696f6e50656e616c747960701b1461053b5760405162461bcd60e51b815260040180806020018281038252603281526020018061063a6032913960400191505060405180910390fd5b61054f600154821015600254831115610602565b61058a5760405162461bcd60e51b81526004018080602001828103825260338152602001806106076033913960400191505060405180910390fd5b6003546040805163d4b9311d60e01b815260048101869052602481018590526044810184905290516001600160a01b039092169163d4b9311d9160648082019260009290919082900301818387803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b50505050505050565b169056fe4d696e696d616c4c69717569646174696f6e456e67696e654f7665726c61792f696e76616c69642d6e65772d70656e616c74794d696e696d616c4c69717569646174696f6e456e67696e654f7665726c61792f696e76616c69642d706172616d2d6e616d65476562417574682f6163636f756e742d6e6f742d617574686f72697a65640000a2646970667358221220a6348796609ab8b8d4a7c4d7a446945f72e5e30fb73e46430576a181169e9f1264736f6c63430006070033

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

0000000000000000000000004ffbaa89d648079faafc7852de49ea1dc92f99760000000000000000000000000000000000000000000000000f207539952d00000000000000000000000000000000000000000000000000000ff59ee833b30000

-----Decoded View---------------
Arg [0] : liquidationEngine_ (address): 0x4fFbAA89d648079Faafc7852dE49EA1dc92f9976
Arg [1] : minPenalty_ (uint256): 1090000000000000000
Arg [2] : maxPenalty_ (uint256): 1150000000000000000

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000004ffbaa89d648079faafc7852de49ea1dc92f9976
Arg [1] : 0000000000000000000000000000000000000000000000000f207539952d0000
Arg [2] : 0000000000000000000000000000000000000000000000000ff59ee833b30000


Deployed Bytecode Sourcemap

1467:2224:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1467:2224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1607:39:0;;;:::i;:::-;;;;;;;;;;;;;;;;80:51;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;80:51:0;-1:-1:-1;;;;;80:51:0;;:::i;241:156::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;241:156:0;-1:-1:-1;;;;;241:156:0;;:::i;:::-;;1701:46;;;:::i;:::-;;;;-1:-1:-1;;;;;1701:46:0;;;;;;;;;;;;;;3551:137;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3551:137:0;-1:-1:-1;;;;;3551:137:0;;:::i;1653:39::-;;;:::i;516:162::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;516:162:0;-1:-1:-1;;;;;516:162:0;;:::i;3264:131::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3264:131:0;-1:-1:-1;;;;;3264:131:0;;:::i;2676:451::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2676:451:0;;;;;;;;;;;;:::i;1607:39::-;;;;:::o;80:51::-;;;;;;;;;;;;;;:::o;241:156::-;831:10;812:18;:30;;;;;;;;;;;846:1;812:35;804:78;;;;;-1:-1:-1;;;804:78:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;804:78:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;317:27:0;::::1;:18;:27:::0;;;::::1;::::0;;;;;;;;347:1:::1;317:31:::0;;364:25;;;;;;;::::1;::::0;;;;;;;;::::1;241:156:::0;:::o;1701:46::-;;;-1:-1:-1;;;;;1701:46:0;;:::o;3551:137::-;831:10;812:18;:30;;;;;;;;;;;846:1;812:35;804:78;;;;;-1:-1:-1;;;804:78:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;804:78:0;;;;;;;;;;;;;;;3632:17:::1;::::0;:48:::1;::::0;;-1:-1:-1;;;3632:48:0;;-1:-1:-1;;;;;3632:48:0;;::::1;;::::0;::::1;::::0;;;:17;;;::::1;::::0;:39:::1;::::0;:48;;;;;:17:::1;::::0;:48;;;;;;;:17;;:48;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;3632:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3632:48:0;;;;3551:137:::0;:::o;1653:39::-;;;;:::o;516:162::-;831:10;812:18;:30;;;;;;;;;;;846:1;812:35;804:78;;;;;-1:-1:-1;;;804:78:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;804:78:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;595:27:0;::::1;625:1;595:27:::0;;;::::1;::::0;;;;;;;:31;;;;642:28;;;;;;;::::1;::::0;;;;;;;;::::1;516:162:::0;:::o;3264:131::-;831:10;812:18;:30;;;;;;;;;;;846:1;812:35;804:78;;;;;-1:-1:-1;;;804:78:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;804:78:0;;;;;;;;;;;;;;;3342:17:::1;::::0;:45:::1;::::0;;-1:-1:-1;;;3342:45:0;;-1:-1:-1;;;;;3342:45:0;;::::1;;::::0;::::1;::::0;;;:17;;;::::1;::::0;:36:::1;::::0;:45;;;;;:17:::1;::::0;:45;;;;;;;:17;;:45;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2676:451:0::0;831:10;812:18;:30;;;;;;;;;;;846:1;812:35;804:78;;;;;-1:-1:-1;;;804:78:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;804:78:0;;;;;;;;;;;;;;;2834:9:::1;-1:-1:-1::0;;;2834:33:0::1;2826:96;;;;-1:-1:-1::0;;;2826:96:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2941:44;2954:10;;2946:4;:18;;2974:10;;2966:4;:18;;2941:4;:44::i;:::-;2933:108;;;;-1:-1:-1::0;;;2933:108:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3052:17;::::0;:67:::1;::::0;;-1:-1:-1;;;3052:67:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3052:17:0;;::::1;::::0;:34:::1;::::0;:67;;;;;:17:::1;::::0;:67;;;;;;;;:17;;:67;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;3052:67:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3052:67:0;;;;2676:451:::0;;;:::o;2285:104::-;2372:9;;2365:17::o

Swarm Source

ipfs://a6348796609ab8b8d4a7c4d7a446945f72e5e30fb73e46430576a181169e9f12

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

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.