ETH Price: $2,964.54 (-1.85%)
Gas: 2 Gwei

Contract

0x4ed9C0dCa0479bC64d8f4EB3007126D5791f7851
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Update Collatera...202551292024-07-07 14:07:591 hr ago1720361279IN
Reflexer: Oracle Relayer
0 ETH0.00046535.61119962
Update Collatera...202547302024-07-07 12:47:592 hrs ago1720356479IN
Reflexer: Oracle Relayer
0 ETH0.000338674.08405554
Update Collatera...202543342024-07-07 11:27:593 hrs ago1720351679IN
Reflexer: Oracle Relayer
0 ETH0.000324283.91053155
Update Collatera...202539382024-07-07 10:07:595 hrs ago1720346879IN
Reflexer: Oracle Relayer
0 ETH0.000325673.92194193
Update Collatera...202535382024-07-07 8:47:596 hrs ago1720342079IN
Reflexer: Oracle Relayer
0 ETH0.00033524.04224372
Update Collatera...202531422024-07-07 7:27:597 hrs ago1720337279IN
Reflexer: Oracle Relayer
0 ETH0.000322363.88738323
Update Collatera...202527432024-07-07 6:07:599 hrs ago1720332479IN
Reflexer: Oracle Relayer
0 ETH0.000353974.26856392
Update Collatera...202523442024-07-07 4:47:5910 hrs ago1720327679IN
Reflexer: Oracle Relayer
0 ETH0.000331393.99636238
Update Collatera...202519472024-07-07 3:27:5911 hrs ago1720322879IN
Reflexer: Oracle Relayer
0 ETH0.00031343.77933935
Update Collatera...202515502024-07-07 2:07:5913 hrs ago1720318079IN
Reflexer: Oracle Relayer
0 ETH0.00030873.72271726
Update Collatera...202511532024-07-07 0:47:5914 hrs ago1720313279IN
Reflexer: Oracle Relayer
0 ETH0.000304673.67406249
Update Collatera...202507532024-07-06 23:27:5915 hrs ago1720308479IN
Reflexer: Oracle Relayer
0 ETH0.000320093.8600999
Update Collatera...202503532024-07-06 22:07:5917 hrs ago1720303679IN
Reflexer: Oracle Relayer
0 ETH0.000318783.84427822
Update Collatera...202499542024-07-06 20:47:5918 hrs ago1720298879IN
Reflexer: Oracle Relayer
0 ETH0.000324563.91397539
Update Collatera...202495582024-07-06 19:27:5919 hrs ago1720294079IN
Reflexer: Oracle Relayer
0 ETH0.000349194.21101322
Update Collatera...202491602024-07-06 18:07:5921 hrs ago1720289279IN
Reflexer: Oracle Relayer
0 ETH0.000368924.44885644
Update Collatera...202487612024-07-06 16:47:5922 hrs ago1720284479IN
Reflexer: Oracle Relayer
0 ETH0.000633167.63540234
Update Collatera...202483612024-07-06 15:27:5923 hrs ago1720279679IN
Reflexer: Oracle Relayer
0 ETH0.000497095.99455193
Update Collatera...202479622024-07-06 14:07:5925 hrs ago1720274879IN
Reflexer: Oracle Relayer
0 ETH0.000502796.06326426
Update Collatera...202475622024-07-06 12:47:5926 hrs ago1720270079IN
Reflexer: Oracle Relayer
0 ETH0.000392444.73258114
Update Collatera...202471652024-07-06 11:27:5927 hrs ago1720265279IN
Reflexer: Oracle Relayer
0 ETH0.000379894.58117605
Update Collatera...202467692024-07-06 10:07:5929 hrs ago1720260479IN
Reflexer: Oracle Relayer
0 ETH0.000369054.45050877
Update Collatera...202463752024-07-06 8:47:5930 hrs ago1720255679IN
Reflexer: Oracle Relayer
0 ETH0.000379474.57617254
Update Collatera...202459762024-07-06 7:27:5931 hrs ago1720250879IN
Reflexer: Oracle Relayer
0 ETH0.000360524.37724945
Update Collatera...202455802024-07-06 6:07:5933 hrs ago1720246079IN
Reflexer: Oracle Relayer
0 ETH0.000330653.98741109
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To Value
118484222021-02-13 13:01:361240 days ago1613221296  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OracleRelayer

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
*/

/// OracleRelayer.sol

// 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 SAFEEngineLike {
    function modifyParameters(bytes32, bytes32, uint256) virtual external;
}

abstract contract OracleLike {
    function getResultWithValidity() virtual public view returns (uint256, bool);
}

contract OracleRelayer {
    // --- 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, "OracleRelayer/account-not-authorized");
        _;
    }

    // --- Data ---
    struct CollateralType {
        // Usually an oracle security module that enforces delays to fresh price feeds
        OracleLike orcl;
        // CRatio used to compute the 'safePrice' - the price used when generating debt in SAFEEngine
        uint256 safetyCRatio;
        // CRatio used to compute the 'liquidationPrice' - the price used when liquidating SAFEs
        uint256 liquidationCRatio;
    }

    // Data about each collateral type
    mapping (bytes32 => CollateralType) public collateralTypes;

    SAFEEngineLike public safeEngine;

    // Whether this contract is enabled
    uint256 public contractEnabled;
    // Virtual redemption price (not the most updated value)
    uint256 internal _redemptionPrice;                                                        // [ray]
    // The force that changes the system users' incentives by changing the redemption price
    uint256 public redemptionRate;                                                            // [ray]
    // Last time when the redemption price was changed
    uint256 public redemptionPriceUpdateTime;                                                 // [unix epoch time]
    // Upper bound for the per-second redemption rate
    uint256 public redemptionRateUpperBound;                                                  // [ray]
    // Lower bound for the per-second redemption rate
    uint256 public redemptionRateLowerBound;                                                  // [ray]

    // --- Events ---
    event AddAuthorization(address account);
    event RemoveAuthorization(address account);
    event DisableContract();
    event ModifyParameters(
        bytes32 collateralType,
        bytes32 parameter,
        address addr
    );
    event ModifyParameters(bytes32 parameter, uint256 data);
    event ModifyParameters(
        bytes32 collateralType,
        bytes32 parameter,
        uint256 data
    );
    event UpdateRedemptionPrice(uint256 redemptionPrice);
    event UpdateCollateralPrice(
      bytes32 indexed collateralType,
      uint256 priceFeedValue,
      uint256 safetyPrice,
      uint256 liquidationPrice
    );

    // --- Init ---
    constructor(address safeEngine_) public {
        authorizedAccounts[msg.sender] = 1;
        safeEngine                 = SAFEEngineLike(safeEngine_);
        _redemptionPrice           = RAY;
        redemptionRate             = RAY;
        redemptionPriceUpdateTime  = now;
        redemptionRateUpperBound   = RAY * WAD;
        redemptionRateLowerBound   = 1;
        contractEnabled            = 1;
        emit AddAuthorization(msg.sender);
    }

    // --- Math ---
    uint256 constant WAD = 10 ** 18;
    uint256 constant RAY = 10 ** 27;

    function subtract(uint256 x, uint256 y) internal pure returns (uint256 z) {
        z = x - y;
        require(z <= x, "OracleRelayer/sub-underflow");
    }
    function multiply(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require(y == 0 || (z = x * y) / y == x, "OracleRelayer/mul-overflow");
    }
    function rmultiply(uint256 x, uint256 y) internal pure returns (uint256 z) {
        // always rounds down
        z = multiply(x, y) / RAY;
    }
    function rdivide(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require(y > 0, "OracleRelayer/rdiv-by-zero");
        z = multiply(x, RAY) / y;
    }
    function rpower(uint256 x, uint256 n, uint256 base) internal pure returns (uint256 z) {
        assembly {
            switch x case 0 {switch n case 0 {z := base} default {z := 0}}
            default {
                switch mod(n, 2) case 0 { z := base } default { z := x }
                let half := div(base, 2)  // for rounding.
                for { n := div(n, 2) } n { n := div(n,2) } {
                    let xx := mul(x, x)
                    if iszero(eq(div(xx, x), x)) { revert(0,0) }
                    let xxRound := add(xx, half)
                    if lt(xxRound, xx) { revert(0,0) }
                    x := div(xxRound, base)
                    if mod(n,2) {
                        let zx := mul(z, x)
                        if and(iszero(iszero(x)), iszero(eq(div(zx, x), z))) { revert(0,0) }
                        let zxRound := add(zx, half)
                        if lt(zxRound, zx) { revert(0,0) }
                        z := div(zxRound, base)
                    }
                }
            }
        }
    }

    // --- Administration ---
    /**
     * @notice Modify oracle price feed addresses
     * @param collateralType Collateral whose oracle we change
     * @param parameter Name of the parameter
     * @param addr New oracle address
     */
    function modifyParameters(
        bytes32 collateralType,
        bytes32 parameter,
        address addr
    ) external isAuthorized {
        require(contractEnabled == 1, "OracleRelayer/contract-not-enabled");
        if (parameter == "orcl") collateralTypes[collateralType].orcl = OracleLike(addr);
        else revert("OracleRelayer/modify-unrecognized-param");
        emit ModifyParameters(
            collateralType,
            parameter,
            addr
        );
    }
    /**
     * @notice Modify redemption related parameters
     * @param parameter Name of the parameter
     * @param data New param value
     */
    function modifyParameters(bytes32 parameter, uint256 data) external isAuthorized {
        require(contractEnabled == 1, "OracleRelayer/contract-not-enabled");
        require(data > 0, "OracleRelayer/null-data");
        if (parameter == "redemptionPrice") {
          _redemptionPrice = data;
        }
        else if (parameter == "redemptionRate") {
          require(now == redemptionPriceUpdateTime, "OracleRelayer/redemption-price-not-updated");
          uint256 adjustedRate = data;
          if (data > redemptionRateUpperBound) {
            adjustedRate = redemptionRateUpperBound;
          } else if (data < redemptionRateLowerBound) {
            adjustedRate = redemptionRateLowerBound;
          }
          redemptionRate = adjustedRate;
        }
        else if (parameter == "redemptionRateUpperBound") {
          require(data > RAY, "OracleRelayer/invalid-redemption-rate-upper-bound");
          redemptionRateUpperBound = data;
        }
        else if (parameter == "redemptionRateLowerBound") {
          require(data < RAY, "OracleRelayer/invalid-redemption-rate-lower-bound");
          redemptionRateLowerBound = data;
        }
        else revert("OracleRelayer/modify-unrecognized-param");
        emit ModifyParameters(
            parameter,
            data
        );
    }
    /**
     * @notice Modify CRatio related parameters
     * @param collateralType Collateral whose parameters we change
     * @param parameter Name of the parameter
     * @param data New param value
     */
    function modifyParameters(
        bytes32 collateralType,
        bytes32 parameter,
        uint256 data
    ) external isAuthorized {
        require(contractEnabled == 1, "OracleRelayer/contract-not-enabled");
        if (parameter == "safetyCRatio") {
          require(data >= collateralTypes[collateralType].liquidationCRatio, "OracleRelayer/safety-lower-than-liquidation-cratio");
          collateralTypes[collateralType].safetyCRatio = data;
        }
        else if (parameter == "liquidationCRatio") {
          require(data <= collateralTypes[collateralType].safetyCRatio, "OracleRelayer/safety-lower-than-liquidation-cratio");
          collateralTypes[collateralType].liquidationCRatio = data;
        }
        else revert("OracleRelayer/modify-unrecognized-param");
        emit ModifyParameters(
            collateralType,
            parameter,
            data
        );
    }

    // --- Redemption Price Update ---
    /**
     * @notice Update the redemption price according to the current redemption rate
     */
    function updateRedemptionPrice() internal returns (uint256) {
        // Update redemption price
        _redemptionPrice = rmultiply(
          rpower(redemptionRate, subtract(now, redemptionPriceUpdateTime), RAY),
          _redemptionPrice
        );
        if (_redemptionPrice == 0) _redemptionPrice = 1;
        redemptionPriceUpdateTime = now;
        emit UpdateRedemptionPrice(_redemptionPrice);
        // Return updated redemption price
        return _redemptionPrice;
    }
    /**
     * @notice Fetch the latest redemption price by first updating it
     */
    function redemptionPrice() public returns (uint256) {
        if (now > redemptionPriceUpdateTime) return updateRedemptionPrice();
        return _redemptionPrice;
    }

    // --- Update value ---
    /**
     * @notice Update the collateral price inside the system (inside SAFEEngine)
     * @param collateralType The collateral we want to update prices (safety and liquidation prices) for
     */
    function updateCollateralPrice(bytes32 collateralType) external {
        (uint256 priceFeedValue, bool hasValidValue) =
          collateralTypes[collateralType].orcl.getResultWithValidity();
        uint256 redemptionPrice_ = redemptionPrice();
        uint256 safetyPrice_ = hasValidValue ? rdivide(rdivide(multiply(uint256(priceFeedValue), 10 ** 9), redemptionPrice_), collateralTypes[collateralType].safetyCRatio) : 0;
        uint256 liquidationPrice_ = hasValidValue ? rdivide(rdivide(multiply(uint256(priceFeedValue), 10 ** 9), redemptionPrice_), collateralTypes[collateralType].liquidationCRatio) : 0;

        safeEngine.modifyParameters(collateralType, "safetyPrice", safetyPrice_);
        safeEngine.modifyParameters(collateralType, "liquidationPrice", liquidationPrice_);
        emit UpdateCollateralPrice(collateralType, priceFeedValue, safetyPrice_, liquidationPrice_);
    }

    /**
     * @notice Disable this contract (normally called by GlobalSettlement)
     */
    function disableContract() external isAuthorized {
        contractEnabled = 0;
        redemptionRate = RAY;
        emit DisableContract();
    }

    /**
     * @notice Fetch the safety CRatio of a specific collateral type
     * @param collateralType The collateral type we want the safety CRatio for
     */
    function safetyCRatio(bytes32 collateralType) public view returns (uint256) {
        return collateralTypes[collateralType].safetyCRatio;
    }
    /**
     * @notice Fetch the liquidation CRatio of a specific collateral type
     * @param collateralType The collateral type we want the liquidation CRatio for
     */
    function liquidationCRatio(bytes32 collateralType) public view returns (uint256) {
        return collateralTypes[collateralType].liquidationCRatio;
    }
    /**
     * @notice Fetch the oracle price feed of a specific collateral type
     * @param collateralType The collateral type we want the oracle price feed for
     */
    function orcl(bytes32 collateralType) public view returns (address) {
        return address(collateralTypes[collateralType].orcl);
    }
}

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":[],"name":"DisableContract","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":"addr","type":"address"}],"name":"ModifyParameters","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":"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":"address","name":"account","type":"address"}],"name":"RemoveAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"priceFeedValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"safetyPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidationPrice","type":"uint256"}],"name":"UpdateCollateralPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"redemptionPrice","type":"uint256"}],"name":"UpdateRedemptionPrice","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":"bytes32","name":"","type":"bytes32"}],"name":"collateralTypes","outputs":[{"internalType":"contract OracleLike","name":"orcl","type":"address"},{"internalType":"uint256","name":"safetyCRatio","type":"uint256"},{"internalType":"uint256","name":"liquidationCRatio","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractEnabled","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"}],"name":"liquidationCRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"address","name":"addr","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":"collateralType","type":"bytes32"}],"name":"orcl","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redemptionPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"redemptionPriceUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redemptionRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redemptionRateLowerBound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redemptionRateUpperBound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"safeEngine","outputs":[{"internalType":"contract SAFEEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"}],"name":"safetyCRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"}],"name":"updateCollateralPrice","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516113083803806113088339818101604052602081101561003357600080fd5b50513360008181526020818152604091829020600190819055600280546001600160a01b0319166001600160a01b0387161790556b033b2e3c9fd0803ce8000000600481905560055542600655722cd76fe086b93ce2f768a00b22a000000000006007556008819055600355815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150611228806100e06000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806375502d3c116100ad57806394f3f81d1161007157806394f3f81d14610280578063c5b748c0146102a6578063d07900bb146102ae578063d4b9311d146102f3578063fe4f58901461031c57610121565b806375502d3c14610243578063894ba833146102605780638b5a7dba146102685780638e42e4b514610270578063925270371461027857610121565b8063513a3dba116100f4578063513a3dba146101ab578063540385a3146101dd578063667641cb146101e557806367aea3131461021e5780636d530fb31461022657610121565b806324ba5884146101265780633443106d1461015e57806335b281531461017b57806341b3a0d9146101a3575b600080fd5b61014c6004803603602081101561013c57600080fd5b50356001600160a01b031661033f565b60408051918252519081900360200190f35b61014c6004803603602081101561017457600080fd5b5035610351565b6101a16004803603602081101561019157600080fd5b50356001600160a01b0316610367565b005b61014c610407565b6101a1600480360360608110156101c157600080fd5b50803590602081013590604001356001600160a01b031661040d565b61014c61055b565b610202600480360360208110156101fb57600080fd5b5035610561565b604080516001600160a01b039092168252519081900360200190f35b61020261057c565b6101a16004803603602081101561023c57600080fd5b503561058b565b61014c6004803603602081101561025957600080fd5b50356107f0565b6101a1610805565b61014c610893565b61014c610899565b61014c61089f565b6101a16004803603602081101561029657600080fd5b50356001600160a01b03166108a5565b61014c610944565b6102cb600480360360208110156102c457600080fd5b5035610967565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6101a16004803603606081101561030957600080fd5b5080359060208101359060400135610993565b6101a16004803603604081101561033257600080fd5b5080359060200135610b6a565b60006020819052908152604090205481565b6000908152600160208190526040909120015490565b336000908152602081905260409020546001146103b55760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b60035481565b3360009081526020819052604090205460011461045b5760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b60035460011461049c5760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b81631bdc98db60e21b14156104d757600083815260016020526040902080546001600160a01b0319166001600160a01b03831617905561050e565b60405162461bcd60e51b81526004018080602001828103825260278152602001806110c86027913960400191505060405180910390fd5b60408051848152602081018490526001600160a01b0383168183015290517f87c209b94b27bfe8cb3329ca996f854fc16f2ec485116b0932eccd15fac50a409181900360600190a1505050565b60055481565b6000908152600160205260409020546001600160a01b031690565b6002546001600160a01b031681565b6000818152600160205260408082205481516309fa15b560e31b8152825184936001600160a01b0390931692634fd0ada89260048082019391829003018186803b1580156105d857600080fd5b505afa1580156105ec573d6000803e3d6000fd5b505050506040513d604081101561060257600080fd5b5080516020909101519092509050600061061a610944565b905060008261062a57600061065c565b61065c61064461063e86633b9aca00610e2a565b84610e9c565b60008781526001602081905260409091200154610e9c565b905060008361066c57600061069d565b61069d61068661068087633b9aca00610e2a565b85610e9c565b600088815260016020526040902060020154610e9c565b6002546040805163d4b9311d60e01b8152600481018a90526a736166657479507269636560a81b60248201526044810186905290519293506001600160a01b039091169163d4b9311d9160648082019260009290919082900301818387803b15801561070857600080fd5b505af115801561071c573d6000803e3d6000fd5b50506002546040805163d4b9311d60e01b8152600481018b90526f6c69717569646174696f6e507269636560801b60248201526044810186905290516001600160a01b03909216935063d4b9311d925060648082019260009290919082900301818387803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b5050604080518881526020810186905280820185905290518993507f37f13f22a2174c79144ffda4c6b7ad416951d5a41171bec961f53ef4c049014e92509081900360600190a2505050505050565b60009081526001602052604090206002015490565b336000908152602081905260409020546001146108535760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600060038190556b033b2e3c9fd0803ce80000006005556040517f2d4b4ecff7bd7503135271925520a2f6c0d98c9473ffc1a1e72c92502f51b25e9190a1565b60065481565b60085481565b60075481565b336000908152602081905260409020546001146108f35760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b600060065442111561095f57610958610f18565b9050610964565b506004545b90565b60016020819052600091825260409091208054918101546002909101546001600160a01b039092169183565b336000908152602081905260409020546001146109e15760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600354600114610a225760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b816b73616665747943526174696f60a01b1415610aa357600083815260016020526040902060020154811015610a895760405162461bcd60e51b81526004018080602001828103825260328152602001806111666032913960400191505060405180910390fd5b600083815260016020819052604090912001819055610b25565b81706c69717569646174696f6e43526174696f60781b14156104d75760008381526001602081905260409091200154811115610b105760405162461bcd60e51b81526004018080602001828103825260328152602001806111666032913960400191505060405180910390fd5b60008381526001602052604090206002018190555b604080518481526020810184905280820183905290517fc59b1109b54f213212d2f5af5c1dae5e887f9daa63b595578fae847cb048e8f49181900360600190a1505050565b33600090815260208190526040902054600114610bb85760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600354600114610bf95760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b60008111610c4e576040805162461bcd60e51b815260206004820152601760248201527f4f7261636c6552656c617965722f6e756c6c2d64617461000000000000000000604482015290519081900360640190fd5b816e726564656d7074696f6e507269636560881b1415610c72576004819055610deb565b816d726564656d7074696f6e5261746560901b1415610cf7576006544214610ccb5760405162461bcd60e51b815260040180806020018281038252602a815260200180611198602a913960400191505060405180910390fd5b6007548190811115610ce05750600754610cef565b600854821015610cef57506008545b600555610deb565b817f726564656d7074696f6e526174655570706572426f756e6400000000000000001415610d73576b033b2e3c9fd0803ce80000008111610d695760405162461bcd60e51b81526004018080602001828103825260318152602001806111c26031913960400191505060405180910390fd5b6007819055610deb565b817f726564656d7074696f6e526174654c6f776572426f756e64000000000000000014156104d7576b033b2e3c9fd0803ce80000008110610de55760405162461bcd60e51b81526004018080602001828103825260318152602001806111116031913960400191505060405180910390fd5b60088190555b604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b6000811580610e4557505080820282828281610e4257fe5b04145b610e96576040805162461bcd60e51b815260206004820152601a60248201527f4f7261636c6552656c617965722f6d756c2d6f766572666c6f77000000000000604482015290519081900360640190fd5b92915050565b6000808211610ef2576040805162461bcd60e51b815260206004820152601a60248201527f4f7261636c6552656c617965722f726469762d62792d7a65726f000000000000604482015290519081900360640190fd5b81610f09846b033b2e3c9fd0803ce8000000610e2a565b81610f1057fe5b049392505050565b6000610f49610f41600554610f2f42600654610f98565b6b033b2e3c9fd0803ce8000000610ff0565b6004546110ae565b6004819055610f585760016004555b4260065560045460408051918252517f9e2c1201748a5c10b659169e27843c246931edf32ccc126c79505db2352fbc3b9181900360200190a15060045490565b80820382811115610e96576040805162461bcd60e51b815260206004820152601b60248201527f4f7261636c6552656c617965722f7375622d756e646572666c6f770000000000604482015290519081900360640190fd5b60008380156110905760018416801561100b5785925061100f565b8392505b50600283046002850494505b841561108a57858602868782041461103257600080fd5b8181018181101561104257600080fd5b859004965050600185161561107f57858302838782041415871515161561106857600080fd5b8181018181101561107857600080fd5b8590049350505b60028504945061101b565b506110a6565b8380156110a057600092506110a4565b8392505b505b509392505050565b60006b033b2e3c9fd0803ce8000000610f098484610e2a56fe4f7261636c6552656c617965722f6d6f646966792d756e7265636f676e697a65642d706172616d4f7261636c6552656c617965722f636f6e74726163742d6e6f742d656e61626c65644f7261636c6552656c617965722f696e76616c69642d726564656d7074696f6e2d726174652d6c6f7765722d626f756e644f7261636c6552656c617965722f6163636f756e742d6e6f742d617574686f72697a65644f7261636c6552656c617965722f7361666574792d6c6f7765722d7468616e2d6c69717569646174696f6e2d63726174696f4f7261636c6552656c617965722f726564656d7074696f6e2d70726963652d6e6f742d757064617465644f7261636c6552656c617965722f696e76616c69642d726564656d7074696f6e2d726174652d75707065722d626f756e64a2646970667358221220c2f2e60bbbb0e899011fdb85c74ca0cd43ed83a901401914bd0f80b9617e954164736f6c63430006070033000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101215760003560e01c806375502d3c116100ad57806394f3f81d1161007157806394f3f81d14610280578063c5b748c0146102a6578063d07900bb146102ae578063d4b9311d146102f3578063fe4f58901461031c57610121565b806375502d3c14610243578063894ba833146102605780638b5a7dba146102685780638e42e4b514610270578063925270371461027857610121565b8063513a3dba116100f4578063513a3dba146101ab578063540385a3146101dd578063667641cb146101e557806367aea3131461021e5780636d530fb31461022657610121565b806324ba5884146101265780633443106d1461015e57806335b281531461017b57806341b3a0d9146101a3575b600080fd5b61014c6004803603602081101561013c57600080fd5b50356001600160a01b031661033f565b60408051918252519081900360200190f35b61014c6004803603602081101561017457600080fd5b5035610351565b6101a16004803603602081101561019157600080fd5b50356001600160a01b0316610367565b005b61014c610407565b6101a1600480360360608110156101c157600080fd5b50803590602081013590604001356001600160a01b031661040d565b61014c61055b565b610202600480360360208110156101fb57600080fd5b5035610561565b604080516001600160a01b039092168252519081900360200190f35b61020261057c565b6101a16004803603602081101561023c57600080fd5b503561058b565b61014c6004803603602081101561025957600080fd5b50356107f0565b6101a1610805565b61014c610893565b61014c610899565b61014c61089f565b6101a16004803603602081101561029657600080fd5b50356001600160a01b03166108a5565b61014c610944565b6102cb600480360360208110156102c457600080fd5b5035610967565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6101a16004803603606081101561030957600080fd5b5080359060208101359060400135610993565b6101a16004803603604081101561033257600080fd5b5080359060200135610b6a565b60006020819052908152604090205481565b6000908152600160208190526040909120015490565b336000908152602081905260409020546001146103b55760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b60035481565b3360009081526020819052604090205460011461045b5760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b60035460011461049c5760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b81631bdc98db60e21b14156104d757600083815260016020526040902080546001600160a01b0319166001600160a01b03831617905561050e565b60405162461bcd60e51b81526004018080602001828103825260278152602001806110c86027913960400191505060405180910390fd5b60408051848152602081018490526001600160a01b0383168183015290517f87c209b94b27bfe8cb3329ca996f854fc16f2ec485116b0932eccd15fac50a409181900360600190a1505050565b60055481565b6000908152600160205260409020546001600160a01b031690565b6002546001600160a01b031681565b6000818152600160205260408082205481516309fa15b560e31b8152825184936001600160a01b0390931692634fd0ada89260048082019391829003018186803b1580156105d857600080fd5b505afa1580156105ec573d6000803e3d6000fd5b505050506040513d604081101561060257600080fd5b5080516020909101519092509050600061061a610944565b905060008261062a57600061065c565b61065c61064461063e86633b9aca00610e2a565b84610e9c565b60008781526001602081905260409091200154610e9c565b905060008361066c57600061069d565b61069d61068661068087633b9aca00610e2a565b85610e9c565b600088815260016020526040902060020154610e9c565b6002546040805163d4b9311d60e01b8152600481018a90526a736166657479507269636560a81b60248201526044810186905290519293506001600160a01b039091169163d4b9311d9160648082019260009290919082900301818387803b15801561070857600080fd5b505af115801561071c573d6000803e3d6000fd5b50506002546040805163d4b9311d60e01b8152600481018b90526f6c69717569646174696f6e507269636560801b60248201526044810186905290516001600160a01b03909216935063d4b9311d925060648082019260009290919082900301818387803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b5050604080518881526020810186905280820185905290518993507f37f13f22a2174c79144ffda4c6b7ad416951d5a41171bec961f53ef4c049014e92509081900360600190a2505050505050565b60009081526001602052604090206002015490565b336000908152602081905260409020546001146108535760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600060038190556b033b2e3c9fd0803ce80000006005556040517f2d4b4ecff7bd7503135271925520a2f6c0d98c9473ffc1a1e72c92502f51b25e9190a1565b60065481565b60085481565b60075481565b336000908152602081905260409020546001146108f35760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b600060065442111561095f57610958610f18565b9050610964565b506004545b90565b60016020819052600091825260409091208054918101546002909101546001600160a01b039092169183565b336000908152602081905260409020546001146109e15760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600354600114610a225760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b816b73616665747943526174696f60a01b1415610aa357600083815260016020526040902060020154811015610a895760405162461bcd60e51b81526004018080602001828103825260328152602001806111666032913960400191505060405180910390fd5b600083815260016020819052604090912001819055610b25565b81706c69717569646174696f6e43526174696f60781b14156104d75760008381526001602081905260409091200154811115610b105760405162461bcd60e51b81526004018080602001828103825260328152602001806111666032913960400191505060405180910390fd5b60008381526001602052604090206002018190555b604080518481526020810184905280820183905290517fc59b1109b54f213212d2f5af5c1dae5e887f9daa63b595578fae847cb048e8f49181900360600190a1505050565b33600090815260208190526040902054600114610bb85760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600354600114610bf95760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b60008111610c4e576040805162461bcd60e51b815260206004820152601760248201527f4f7261636c6552656c617965722f6e756c6c2d64617461000000000000000000604482015290519081900360640190fd5b816e726564656d7074696f6e507269636560881b1415610c72576004819055610deb565b816d726564656d7074696f6e5261746560901b1415610cf7576006544214610ccb5760405162461bcd60e51b815260040180806020018281038252602a815260200180611198602a913960400191505060405180910390fd5b6007548190811115610ce05750600754610cef565b600854821015610cef57506008545b600555610deb565b817f726564656d7074696f6e526174655570706572426f756e6400000000000000001415610d73576b033b2e3c9fd0803ce80000008111610d695760405162461bcd60e51b81526004018080602001828103825260318152602001806111c26031913960400191505060405180910390fd5b6007819055610deb565b817f726564656d7074696f6e526174654c6f776572426f756e64000000000000000014156104d7576b033b2e3c9fd0803ce80000008110610de55760405162461bcd60e51b81526004018080602001828103825260318152602001806111116031913960400191505060405180910390fd5b60088190555b604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b6000811580610e4557505080820282828281610e4257fe5b04145b610e96576040805162461bcd60e51b815260206004820152601a60248201527f4f7261636c6552656c617965722f6d756c2d6f766572666c6f77000000000000604482015290519081900360640190fd5b92915050565b6000808211610ef2576040805162461bcd60e51b815260206004820152601a60248201527f4f7261636c6552656c617965722f726469762d62792d7a65726f000000000000604482015290519081900360640190fd5b81610f09846b033b2e3c9fd0803ce8000000610e2a565b81610f1057fe5b049392505050565b6000610f49610f41600554610f2f42600654610f98565b6b033b2e3c9fd0803ce8000000610ff0565b6004546110ae565b6004819055610f585760016004555b4260065560045460408051918252517f9e2c1201748a5c10b659169e27843c246931edf32ccc126c79505db2352fbc3b9181900360200190a15060045490565b80820382811115610e96576040805162461bcd60e51b815260206004820152601b60248201527f4f7261636c6552656c617965722f7375622d756e646572666c6f770000000000604482015290519081900360640190fd5b60008380156110905760018416801561100b5785925061100f565b8392505b50600283046002850494505b841561108a57858602868782041461103257600080fd5b8181018181101561104257600080fd5b859004965050600185161561107f57858302838782041415871515161561106857600080fd5b8181018181101561107857600080fd5b8590049350505b60028504945061101b565b506110a6565b8380156110a057600092506110a4565b8392505b505b509392505050565b60006b033b2e3c9fd0803ce8000000610f098484610e2a56fe4f7261636c6552656c617965722f6d6f646966792d756e7265636f676e697a65642d706172616d4f7261636c6552656c617965722f636f6e74726163742d6e6f742d656e61626c65644f7261636c6552656c617965722f696e76616c69642d726564656d7074696f6e2d726174652d6c6f7765722d626f756e644f7261636c6552656c617965722f6163636f756e742d6e6f742d617574686f72697a65644f7261636c6552656c617965722f7361666574792d6c6f7765722d7468616e2d6c69717569646174696f6e2d63726174696f4f7261636c6552656c617965722f726564656d7074696f6e2d70726963652d6e6f742d757064617465644f7261636c6552656c617965722f696e76616c69642d726564656d7074696f6e2d726174652d75707065722d626f756e64a2646970667358221220c2f2e60bbbb0e899011fdb85c74ca0cd43ed83a901401914bd0f80b9617e954164736f6c63430006070033

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

1041:12122:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1041:12122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1092:54:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1092:54:0;-1:-1:-1;;;;;1092:54:0;;:::i;:::-;;;;;;;;;;;;;;;;12353:146;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12353:146:0;;:::i;1256:156::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1256:156:0;-1:-1:-1;;;;;1256:156:0;;:::i;:::-;;2561:30;;;:::i;6723:496::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6723:496:0;;;;;;;;;;;-1:-1:-1;;;;;6723:496:0;;:::i;2857:29::-;;;:::i;13021:139::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13021:139:0;;:::i;:::-;;;;-1:-1:-1;;;;;13021:139:0;;;;;;;;;;;;;;2479:32;;;:::i;11022:902::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11022:902:0;;:::i;12683:156::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12683:156:0;;:::i;12026:151::-;;;:::i;3017:40::-;;;:::i;3347:39::-;;;:::i;3188:::-;;;:::i;1531:162::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1531:162:0;-1:-1:-1;;;;;1531:162:0;;:::i;10607:172::-;;;:::i;2412:58::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2412:58:0;;:::i;:::-;;;;-1:-1:-1;;;;;2412:58:0;;;;;;;;;;;;;;;;;;;;;;;;;8944:919;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8944:919:0;;;;;;;;;;;;:::i;7379:1341::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7379:1341:0;;;;;;;:::i;1092:54::-;;;;;;;;;;;;;;:::o;12353:146::-;12420:7;12447:31;;;:15;:31;;;;;;;;:44;;;12353:146::o;1256:156::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1332:27:0;::::1;:18;:27:::0;;;::::1;::::0;;;;;;;;1362:1:::1;1332:31:::0;;1379:25;;;;;;;::::1;::::0;;;;;;;;::::1;1256:156:::0;:::o;2561:30::-;;;;:::o;6723:496::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6881:15:::1;;6900:1;6881:20;6873:67;;;;-1:-1:-1::0;;;6873:67:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6955:9;-1:-1:-1::0;;;6955:19:0::1;6951:145;;;6976:31;::::0;;;:15:::1;:31;::::0;;;;:55;;-1:-1:-1;;;;;;6976:55:0::1;-1:-1:-1::0;;;;;6976:55:0;::::1;;::::0;;6951:145:::1;;;7047:49;;-1:-1:-1::0;;;7047:49:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6951:145;7112:99;::::0;;;;;::::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;7112:99:0;::::1;::::0;;;;;;::::1;::::0;;;;;;;::::1;6723:496:::0;;;:::o;2857:29::-;;;;:::o;13021:139::-;13080:7;13115:31;;;:15;:31;;;;;:36;-1:-1:-1;;;;;13115:36:0;;13021:139::o;2479:32::-;;;-1:-1:-1;;;;;2479:32:0;;:::o;11022:902::-;11098:22;11155:31;;;:15;:31;;;;;;:36;:60;;-1:-1:-1;;;11155:60:0;;;;11098:22;;-1:-1:-1;;;;;11155:36:0;;;;:58;;:60;;;;;;;;;;;:36;:60;;;2:2:-1;;;;27:1;24;17:12;2:2;11155:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11155:60:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11155:60:0;;;;;;;;;-1:-1:-1;11155:60:0;-1:-1:-1;11226:24:0;11253:17;:15;:17::i;:::-;11226:44;;11281:20;11304:13;:144;;11447:1;11304:144;;;11320:124;11328:69;11336:42;11353:14;11370:7;11336:8;:42::i;:::-;11380:16;11328:7;:69::i;:::-;11399:31;;;;:15;:31;;;;;;;;:44;;11320:7;:124::i;:::-;11281:167;;11459:25;11487:13;:149;;11635:1;11487:149;;;11503:129;11511:69;11519:42;11536:14;11553:7;11519:8;:42::i;:::-;11563:16;11511:7;:69::i;:::-;11582:31;;;;:15;:31;;;;;:49;;;11503:7;:129::i;:::-;11649:10;;:72;;;-1:-1:-1;;;11649:72:0;;;;;;;;-1:-1:-1;;;11649:72:0;;;;;;;;;;;;11459:177;;-1:-1:-1;;;;;;11649:10:0;;;;:27;;:72;;;;;:10;;:72;;;;;;;;:10;;:72;;;2:2:-1;;;;27:1;24;17:12;2:2;11649:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11732:10:0;;:82;;;-1:-1:-1;;;11732:82:0;;;;;;;;-1:-1:-1;;;11732:82:0;;;;;;;;;;;;-1:-1:-1;;;;;11732:10:0;;;;-1:-1:-1;11732:27:0;;-1:-1:-1;11732:82:0;;;;;:10;;:82;;;;;;;;:10;;:82;;;2:2:-1;;;;27:1;24;17:12;2:2;11732:82:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11830:86:0;;;;;;;;;;;;;;;;;;;;11852:14;;-1:-1:-1;11830:86:0;;-1:-1:-1;11830:86:0;;;;;;;;11022:902;;;;;;:::o;12683:156::-;12755:7;12782:31;;;:15;:31;;;;;:49;;;;12683:156::o;12026:151::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12104:1:::1;12086:15;:19:::0;;;4711:8:::1;12116:14;:20:::0;12152:17:::1;::::0;::::1;::::0;12104:1;12152:17:::1;12026:151::o:0;3017:40::-;;;;:::o;3347:39::-;;;;:::o;3188:::-;;;;:::o;1531:162::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1610:27:0;::::1;1640:1;1610:27:::0;;;::::1;::::0;;;;;;;:31;;;;1657:28;;;;;;;::::1;::::0;;;;;;;;::::1;1531:162:::0;:::o;10607:172::-;10650:7;10680:25;;10674:3;:31;10670:67;;;10714:23;:21;:23::i;:::-;10707:30;;;;10670:67;-1:-1:-1;10755:16:0;;10607:172;;:::o;2412:58::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2412:58:0;;;;;:::o;8944:919::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9102:15:::1;;9121:1;9102:20;9094:67;;;;-1:-1:-1::0;;;9094:67:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9176:9;-1:-1:-1::0;;;9176:27:0::1;9172:568;;;9234:31;::::0;;;:15:::1;:31;::::0;;;;:49:::1;;::::0;9226:57;::::1;;9218:120;;;;-1:-1:-1::0;;;9218:120:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9351:31;::::0;;;:15:::1;:31;::::0;;;;;;;:44:::1;:51:::0;;;9172:568:::1;;;9433:9;-1:-1:-1::0;;;9433:32:0::1;9429:311;;;9496:31;::::0;;;:15:::1;:31;::::0;;;;;;;:44:::1;::::0;9488:52;::::1;;9480:115;;;;-1:-1:-1::0;;;9480:115:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9608:31;::::0;;;:15:::1;:31;::::0;;;;:49:::1;;:56:::0;;;9429:311:::1;9756:99;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;8944:919:::0;;;:::o;7379:1341::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7479:15:::1;;7498:1;7479:20;7471:67;;;;-1:-1:-1::0;;;7471:67:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7564:1;7557:4;:8;7549:44;;;::::0;;-1:-1:-1;;;7549:44:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;7608:9;-1:-1:-1::0;;;7608:30:0::1;7604:1022;;;7653:16;:23:::0;;;7604:1022:::1;;;7707:9;-1:-1:-1::0;;;7707:29:0::1;7703:923;;;7766:25;;7759:3;:32;7751:87;;;;-1:-1:-1::0;;;7751:87:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7902:24;::::0;7874:4;;7895:31;::::1;7891:216;;;-1:-1:-1::0;7958:24:0::1;::::0;7891:216:::1;;;8013:24;;8006:4;:31;8002:105;;;-1:-1:-1::0;8069:24:0::1;::::0;8002:105:::1;8119:14;:29:::0;7703:923:::1;;;8179:9;:39;;8175:451;;;4711:8;8241:4;:10;8233:72;;;;-1:-1:-1::0;;;8233:72:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8318:24;:31:::0;;;8175:451:::1;;;8380:9;:39;;8376:250;;;4711:8;8442:4;:10;8434:72;;;;-1:-1:-1::0;;;8434:72:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8519:24;:31:::0;;;8376:250:::1;8642:70;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;7379:1341:::0;;:::o;4893:162::-;4956:9;4986:6;;;:30;;-1:-1:-1;;5001:5:0;;;5015:1;5010;5001:5;5010:1;4996:15;;;;;:20;4986:30;4978:69;;;;;-1:-1:-1;;;4978:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4893:162;;;;:::o;5216:171::-;5278:9;5312:1;5308;:5;5300:44;;;;;-1:-1:-1;;;5300:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5378:1;5359:16;5368:1;4711:8;5359;:16::i;:::-;:20;;;;;;;5216:171;-1:-1:-1;;;5216:171:0:o;10014:498::-;10065:7;10140:131;10162:69;10169:14;;10185:40;10194:3;10199:25;;10185:8;:40::i;:::-;4711:8;10162:6;:69::i;:::-;10244:16;;10140:9;:131::i;:::-;10121:16;:150;;;10282:47;;10328:1;10309:16;:20;10282:47;10368:3;10340:25;:31;10409:16;;10387:39;;;;;;;;;;;;;;;;-1:-1:-1;10488:16:0;;10014:498;:::o;4728:159::-;4817:5;;;4841:6;;;;4833:46;;;;;-1:-1:-1;;;4833:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5393:1072;5468:9;5521:1;5523:53;;;;5624:9;;;5634:20;;;;5670:1;5665:6;;5617:56;;5634:20;5648:4;5643:9;;5617:56;;5713:1;5707:4;5703:12;5769:1;5766;5762:9;5757:14;;5751:681;5774:1;5751:681;;;5834:1;5831;5827:9;5883:1;5879;5875:2;5871:10;5868:17;5858:2;;5898:1;5896;5889:11;5858:2;5947:4;5943:2;5939:13;5989:2;5980:7;5977:15;5974:2;;;6004:1;6002;5995:11;5974:2;6035:18;;;;-1:-1:-1;;6078:8:0;;;6075:2;;;6131:1;6128;6124:9;6207:1;6203;6199:2;6195:10;6192:17;6185:25;6180:1;6173:9;6166:17;6162:49;6159:2;;;6223:1;6221;6214:11;6159:2;6276:4;6272:2;6268:13;6322:2;6313:7;6310:15;6307:2;;;6337:1;6335;6328:11;6307:2;6372:18;;;;-1:-1:-1;;6075:2:0;5789:1;5787;5783:8;5778:13;;5751:681;;;5755:18;5514:933;;5523:53;5538:1;5540:18;;;;5573:1;5568:6;;5531:44;;5540:18;5553:4;5548:9;;5531:44;;5514:933;;5499:959;;;;;:::o;5061:149::-;5125:9;4711:8;5182:14;5191:1;5194;5182:8;:14::i

Swarm Source

ipfs://c2f2e60bbbb0e899011fdb85c74ca0cd43ed83a901401914bd0f80b9617e9541

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  ]
[ 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.