ETH Price: $3,118.16 (-0.17%)
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Profit Limit...171898842024-07-16 22:31:55516 days ago1721169115IN
Yearn: Health Check
0 ETH0.000000340.0112
Set Profit Limit...45780892023-09-28 23:58:45808 days ago1695945525IN
Yearn: Health Check
0 ETH0.000009810.00487092

Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CommonHealthCheck

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2023-08-29
*/

// SPDX-License-Identifier: GPL-3.0

pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;

// Global Enums and Structs



struct Limits {
    uint256 profitLimitRatio;
    uint256 lossLimitRatio;
    bool exists;
}
struct StrategyParams {
    uint256 performanceFee;
    uint256 activation;
    uint256 debtRatio;
    uint256 minDebtPerHarvest;
    uint256 maxDebtPerHarvest;
    uint256 lastReport;
    uint256 totalDebt;
    uint256 totalGain;
    uint256 totalLoss;
}

// Part: ICustomHealthCheck

interface ICustomHealthCheck {
    function check(
        address callerStrategy,
        uint256 profit,
        uint256 loss,
        uint256 debtPayment,
        uint256 debtOutstanding
    ) external view returns (bool);
}

// Part: StrategyAPI

/**
 * This interface is here for the keeper bot to use.
 */
interface StrategyAPI {
    function name() external view returns (string memory);

    function vault() external view returns (address);

    function want() external view returns (address);

    function apiVersion() external pure returns (string memory);

    function keeper() external view returns (address);

    function isActive() external view returns (bool);

    function delegatedAssets() external view returns (uint256);

    function estimatedTotalAssets() external view returns (uint256);

    function tendTrigger(uint256 callCost) external view returns (bool);

    function tend() external;

    function harvestTrigger(uint256 callCost) external view returns (bool);

    function harvest() external;

    event Harvested(uint256 profit, uint256 loss, uint256 debtPayment, uint256 debtOutstanding);
}

// File: CommonHealthCheck.sol

contract CommonHealthCheck {
    // Default Settings for all strategies
    uint256 constant MAX_BPS = 10_000;
    uint256 public profitLimitRatio;
    uint256 public lossLimitRatio;
    mapping(address => Limits) public strategiesLimits;

    address public governance;
    address public management;

    mapping(address => address) public checks;
    mapping(address => bool) public disabledCheck;

    modifier onlyGovernance() {
        require(msg.sender == governance, "!authorized");
        _;
    }

    modifier onlyAuthorized() {
        require(msg.sender == governance || msg.sender == management, "!authorized");
        _;
    }

    modifier onlyVault(address strategy) {
        require(msg.sender == StrategyAPI(strategy).vault(), "!authorized");
        _;
    }

    constructor() public {
        governance = msg.sender;
        management = msg.sender;
        profitLimitRatio = 100;
        lossLimitRatio = 1;
    }

    function setGovernance(address _governance) external onlyGovernance {
        require(_governance != address(0));
        governance = _governance;
    }

    function setManagement(address _management) external onlyGovernance {
        require(_management != address(0));
        management = _management;
    }

    function setProfitLimitRatio(uint256 _profitLimitRatio) external onlyAuthorized {
        require(_profitLimitRatio < MAX_BPS);
        profitLimitRatio = _profitLimitRatio;
    }

    function setlossLimitRatio(uint256 _lossLimitRatio) external onlyAuthorized {
        require(_lossLimitRatio < MAX_BPS);
        lossLimitRatio = _lossLimitRatio;
    }

    function setStrategyLimits(
        address _strategy,
        uint256 _profitLimitRatio,
        uint256 _lossLimitRatio
    ) external onlyAuthorized {
        require(_lossLimitRatio < MAX_BPS);
        require(_profitLimitRatio < MAX_BPS);
        strategiesLimits[_strategy] = Limits(_profitLimitRatio, _lossLimitRatio, true);
    }

    function setCheck(address _strategy, address _check) external onlyAuthorized {
        checks[_strategy] = _check;
    }

    function enableCheck(address _strategy) external onlyVault(_strategy) {
        disabledCheck[_strategy] = false;
    }

    function setDisabledCheck(address _strategy, bool disabled) external onlyAuthorized {
        disabledCheck[_strategy] = disabled;
    }

    function doHealthCheck(address _strategy) external view returns (bool) {
        return !disabledCheck[_strategy];
    }

    function check(
        uint256 profit,
        uint256 loss,
        uint256 debtPayment,
        uint256 debtOutstanding,
        uint256 totalDebt
    ) external view returns (bool) {
        address strategy = msg.sender;

        return _runChecks(strategy, profit, loss, debtPayment, debtOutstanding, totalDebt);
    }

    function check(
        address strategy,
        uint256 profit,
        uint256 loss,
        uint256 debtPayment,
        uint256 debtOutstanding,
        uint256 totalDebt
    ) external view returns (bool) {
        require(strategy != address(0));

        return _runChecks(strategy, profit, loss, debtPayment, debtOutstanding, totalDebt);
    }

    function _runChecks(
        address strategy,
        uint256 profit,
        uint256 loss,
        uint256 debtPayment,
        uint256 debtOutstanding,
        uint256 totalDebt
    ) internal view returns (bool) {
        address customCheck = checks[strategy];

        if (customCheck == address(0)) {
            return _executeDefaultCheck(strategy, profit, loss, totalDebt);
        }

        return ICustomHealthCheck(customCheck).check(strategy, profit, loss, debtPayment, debtOutstanding);
    }

    function _executeDefaultCheck(
        address strategy,
        uint256 _profit,
        uint256 _loss,
        uint256 _totalDebt
    ) internal view returns (bool) {
        Limits memory limits = strategiesLimits[strategy];
        uint256 _profitLimitRatio;
        uint256 _lossLimitRatio;
        if (limits.exists) {
            _profitLimitRatio = limits.profitLimitRatio;
            _lossLimitRatio = limits.lossLimitRatio;
        } else {
            _profitLimitRatio = profitLimitRatio;
            _lossLimitRatio = lossLimitRatio;
        }

        if (_profit > ((_totalDebt * _profitLimitRatio) / MAX_BPS)) {
            return false;
        }
        if (_loss > ((_totalDebt * _lossLimitRatio) / MAX_BPS)) {
            return false;
        }
        return true;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"strategy","type":"address"},{"internalType":"uint256","name":"profit","type":"uint256"},{"internalType":"uint256","name":"loss","type":"uint256"},{"internalType":"uint256","name":"debtPayment","type":"uint256"},{"internalType":"uint256","name":"debtOutstanding","type":"uint256"},{"internalType":"uint256","name":"totalDebt","type":"uint256"}],"name":"check","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profit","type":"uint256"},{"internalType":"uint256","name":"loss","type":"uint256"},{"internalType":"uint256","name":"debtPayment","type":"uint256"},{"internalType":"uint256","name":"debtOutstanding","type":"uint256"},{"internalType":"uint256","name":"totalDebt","type":"uint256"}],"name":"check","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checks","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"disabledCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"name":"doHealthCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"name":"enableCheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lossLimitRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"management","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"profitLimitRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"address","name":"_check","type":"address"}],"name":"setCheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bool","name":"disabled","type":"bool"}],"name":"setDisabledCheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_management","type":"address"}],"name":"setManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_profitLimitRatio","type":"uint256"}],"name":"setProfitLimitRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"uint256","name":"_profitLimitRatio","type":"uint256"},{"internalType":"uint256","name":"_lossLimitRatio","type":"uint256"}],"name":"setStrategyLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lossLimitRatio","type":"uint256"}],"name":"setlossLimitRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"strategiesLimits","outputs":[{"internalType":"uint256","name":"profitLimitRatio","type":"uint256"},{"internalType":"uint256","name":"lossLimitRatio","type":"uint256"},{"internalType":"bool","name":"exists","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50600380546001600160a01b031990811633908117909255600480549091169091179055606460005560018055610b408061004c6000396000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636e905e17116100a25780639abf315b116100715780639abf315b14610217578063ab033ea91461022a578063c70fa00b1461023d578063c935433714610250578063d4a22bde1461027257610115565b80636e905e17146101e15780637d969932146101f457806388a8d602146101fc578063950b3d731461020457610115565b80631afdc5a2116100e95780631afdc5a21461017e57806327fff0db14610191578063458add98146101b15780634a5d0943146101c45780635aa6e675146101d957610115565b8062fd31f01461011a578063039aa2501461012f57806306bfaf04146101425780630ef5ee021461016b575b600080fd5b61012d610128366004610964565b610285565b005b61012d61013d3660046108c0565b610340565b610155610150366004610998565b610404565b6040516101629190610a93565b60405180910390f35b61012d6101793660046109ff565b610434565b61012d61018c3660046108ff565b610486565b6101a461019f3660046108c0565b6104f3565b6040516101629190610a51565b6101556101bf3660046108c0565b61050e565b6101cc610523565b6040516101629190610ac3565b6101a4610529565b6101556101ef3660046108c0565b610538565b6101cc610557565b6101a461055d565b61012d6102123660046109ff565b61056c565b61012d610225366004610937565b6105be565b61012d6102383660046108c0565b610628565b61015561024b366004610a17565b610687565b61026361025e3660046108c0565b6106a3565b60405161016293929190610acc565b61012d6102803660046108c0565b6106c6565b6003546001600160a01b03163314806102a857506004546001600160a01b031633145b6102cd5760405162461bcd60e51b81526004016102c490610a9e565b60405180910390fd5b61271081106102db57600080fd5b61271082106102e957600080fd5b60408051606081018252928352602080840192835260018483018181526001600160a01b03969096166000908152600292839052929092209351845591519083015591519101805460ff1916911515919091179055565b80806001600160a01b031663fbfa77cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561037a57600080fd5b505afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b291906108e3565b6001600160a01b0316336001600160a01b0316146103e25760405162461bcd60e51b81526004016102c490610a9e565b506001600160a01b03166000908152600660205260409020805460ff19169055565b60006001600160a01b03871661041957600080fd5b610427878787878787610725565b90505b9695505050505050565b6003546001600160a01b031633148061045757506004546001600160a01b031633145b6104735760405162461bcd60e51b81526004016102c490610a9e565b612710811061048157600080fd5b600155565b6003546001600160a01b03163314806104a957506004546001600160a01b031633145b6104c55760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03918216600090815260056020526040902080546001600160a01b03191691909216179055565b6005602052600090815260409020546001600160a01b031681565b60066020526000908152604090205460ff1681565b60005481565b6003546001600160a01b031681565b6001600160a01b031660009081526006602052604090205460ff161590565b60015481565b6004546001600160a01b031681565b6003546001600160a01b031633148061058f57506004546001600160a01b031633145b6105ab5760405162461bcd60e51b81526004016102c490610a9e565b61271081106105b957600080fd5b600055565b6003546001600160a01b03163314806105e157506004546001600160a01b031633145b6105fd5760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6003546001600160a01b031633146106525760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03811661066557600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600033610698818888888888610725565b979650505050505050565b600260208190526000918252604090912080546001820154919092015460ff1683565b6003546001600160a01b031633146106f05760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03811661070357600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038087166000908152600560205260408120549091168061075b57610753888888866107eb565b91505061042a565b60405163022c80df60e51b81526001600160a01b038216906345901be09061078f908b908b908b908b908b90600401610a65565b60206040518083038186803b1580156107a757600080fd5b505afa1580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df91906109e3565b98975050505050505050565b60006107f561089d565b506001600160a01b03851660009081526002602081815260408084208151606081018352815481526001820154938101939093529092015460ff16158015928201929092529190819061085057505080516020820151610859565b50506000546001545b612710858302048711156108735760009350505050610895565b6127108582020486111561088d5760009350505050610895565b600193505050505b949350505050565b604051806060016040528060008152602001600081526020016000151581525090565b6000602082840312156108d1578081fd5b81356108dc81610ae4565b9392505050565b6000602082840312156108f4578081fd5b81516108dc81610ae4565b60008060408385031215610911578081fd5b823561091c81610ae4565b9150602083013561092c81610ae4565b809150509250929050565b60008060408385031215610949578182fd5b823561095481610ae4565b9150602083013561092c81610afc565b600080600060608486031215610978578081fd5b833561098381610ae4565b95602085013595506040909401359392505050565b60008060008060008060c087890312156109b0578182fd5b86356109bb81610ae4565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b6000602082840312156109f4578081fd5b81516108dc81610afc565b600060208284031215610a10578081fd5b5035919050565b600080600080600060a08688031215610a2e578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6001600160a01b0391909116815260200190565b6001600160a01b03959095168552602085019390935260408401919091526060830152608082015260a00190565b901515815260200190565b6020808252600b908201526a08585d5d1a1bdc9a5e995960aa1b604082015260600190565b90815260200190565b92835260208301919091521515604082015260600190565b6001600160a01b0381168114610af957600080fd5b50565b8015158114610af957600080fdfea26469706673582212204cdbda58a43b40d95db450ff84bfca9fe8ea05eeb293de66158ea3a0ec8b344464736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636e905e17116100a25780639abf315b116100715780639abf315b14610217578063ab033ea91461022a578063c70fa00b1461023d578063c935433714610250578063d4a22bde1461027257610115565b80636e905e17146101e15780637d969932146101f457806388a8d602146101fc578063950b3d731461020457610115565b80631afdc5a2116100e95780631afdc5a21461017e57806327fff0db14610191578063458add98146101b15780634a5d0943146101c45780635aa6e675146101d957610115565b8062fd31f01461011a578063039aa2501461012f57806306bfaf04146101425780630ef5ee021461016b575b600080fd5b61012d610128366004610964565b610285565b005b61012d61013d3660046108c0565b610340565b610155610150366004610998565b610404565b6040516101629190610a93565b60405180910390f35b61012d6101793660046109ff565b610434565b61012d61018c3660046108ff565b610486565b6101a461019f3660046108c0565b6104f3565b6040516101629190610a51565b6101556101bf3660046108c0565b61050e565b6101cc610523565b6040516101629190610ac3565b6101a4610529565b6101556101ef3660046108c0565b610538565b6101cc610557565b6101a461055d565b61012d6102123660046109ff565b61056c565b61012d610225366004610937565b6105be565b61012d6102383660046108c0565b610628565b61015561024b366004610a17565b610687565b61026361025e3660046108c0565b6106a3565b60405161016293929190610acc565b61012d6102803660046108c0565b6106c6565b6003546001600160a01b03163314806102a857506004546001600160a01b031633145b6102cd5760405162461bcd60e51b81526004016102c490610a9e565b60405180910390fd5b61271081106102db57600080fd5b61271082106102e957600080fd5b60408051606081018252928352602080840192835260018483018181526001600160a01b03969096166000908152600292839052929092209351845591519083015591519101805460ff1916911515919091179055565b80806001600160a01b031663fbfa77cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561037a57600080fd5b505afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b291906108e3565b6001600160a01b0316336001600160a01b0316146103e25760405162461bcd60e51b81526004016102c490610a9e565b506001600160a01b03166000908152600660205260409020805460ff19169055565b60006001600160a01b03871661041957600080fd5b610427878787878787610725565b90505b9695505050505050565b6003546001600160a01b031633148061045757506004546001600160a01b031633145b6104735760405162461bcd60e51b81526004016102c490610a9e565b612710811061048157600080fd5b600155565b6003546001600160a01b03163314806104a957506004546001600160a01b031633145b6104c55760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03918216600090815260056020526040902080546001600160a01b03191691909216179055565b6005602052600090815260409020546001600160a01b031681565b60066020526000908152604090205460ff1681565b60005481565b6003546001600160a01b031681565b6001600160a01b031660009081526006602052604090205460ff161590565b60015481565b6004546001600160a01b031681565b6003546001600160a01b031633148061058f57506004546001600160a01b031633145b6105ab5760405162461bcd60e51b81526004016102c490610a9e565b61271081106105b957600080fd5b600055565b6003546001600160a01b03163314806105e157506004546001600160a01b031633145b6105fd5760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6003546001600160a01b031633146106525760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03811661066557600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600033610698818888888888610725565b979650505050505050565b600260208190526000918252604090912080546001820154919092015460ff1683565b6003546001600160a01b031633146106f05760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03811661070357600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038087166000908152600560205260408120549091168061075b57610753888888866107eb565b91505061042a565b60405163022c80df60e51b81526001600160a01b038216906345901be09061078f908b908b908b908b908b90600401610a65565b60206040518083038186803b1580156107a757600080fd5b505afa1580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df91906109e3565b98975050505050505050565b60006107f561089d565b506001600160a01b03851660009081526002602081815260408084208151606081018352815481526001820154938101939093529092015460ff16158015928201929092529190819061085057505080516020820151610859565b50506000546001545b612710858302048711156108735760009350505050610895565b6127108582020486111561088d5760009350505050610895565b600193505050505b949350505050565b604051806060016040528060008152602001600081526020016000151581525090565b6000602082840312156108d1578081fd5b81356108dc81610ae4565b9392505050565b6000602082840312156108f4578081fd5b81516108dc81610ae4565b60008060408385031215610911578081fd5b823561091c81610ae4565b9150602083013561092c81610ae4565b809150509250929050565b60008060408385031215610949578182fd5b823561095481610ae4565b9150602083013561092c81610afc565b600080600060608486031215610978578081fd5b833561098381610ae4565b95602085013595506040909401359392505050565b60008060008060008060c087890312156109b0578182fd5b86356109bb81610ae4565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b6000602082840312156109f4578081fd5b81516108dc81610afc565b600060208284031215610a10578081fd5b5035919050565b600080600080600060a08688031215610a2e578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6001600160a01b0391909116815260200190565b6001600160a01b03959095168552602085019390935260408401919091526060830152608082015260a00190565b901515815260200190565b6020808252600b908201526a08585d5d1a1bdc9a5e995960aa1b604082015260600190565b90815260200190565b92835260208301919091521515604082015260600190565b6001600160a01b0381168114610af957600080fd5b50565b8015158114610af957600080fdfea26469706673582212204cdbda58a43b40d95db450ff84bfca9fe8ea05eeb293de66158ea3a0ec8b344464736f6c634300060c0033

Deployed Bytecode Sourcemap

1744:4633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3425:345;;;;;;:::i;:::-;;:::i;:::-;;3908:121;;;;;;:::i;:::-;;:::i;4655:363::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3245:172;;;;;;:::i;:::-;;:::i;3778:122::-;;;;;;:::i;:::-;;:::i;2061:41::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2109:45::-;;;;;;:::i;:::-;;:::i;1862:31::-;;;:::i;:::-;;;;;;;:::i;1995:25::-;;;:::i;4183:122::-;;;;;;:::i;:::-;;:::i;1900:29::-;;;:::i;2027:25::-;;;:::i;3055:182::-;;;;;;:::i;:::-;;:::i;4037:138::-;;;;;;:::i;:::-;;:::i;2727:156::-;;;;;;:::i;:::-;;:::i;4313:334::-;;;;;;:::i;:::-;;:::i;1936:50::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2891:156::-;;;;;;:::i;:::-;;:::i;3425:345::-;2335:10;;-1:-1:-1;;;;;2335:10:0;2321;:24;;:52;;-1:-1:-1;2363:10:0;;-1:-1:-1;;;;;2363:10:0;2349;:24;2321:52;2313:76;;;;-1:-1:-1;;;2313:76:0;;;;;;;:::i;:::-;;;;;;;;;1849:6:::1;3600:15;:25;3592:34;;;::::0;::::1;;1849:6;3645:17;:27;3637:36;;;::::0;::::1;;3714:48;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;3757:4:::1;3714:48:::0;;;;;;-1:-1:-1;;;;;3684:27:0;;;::::1;-1:-1:-1::0;3684:27:0;;;:16:::1;:27:::0;;;;;;;;:78;;;;;;;;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;3684:78:0::1;::::0;::::1;;::::0;;;::::1;::::0;;3425:345::o;3908:121::-;3967:9;2499:8;-1:-1:-1;;;;;2487:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2473:43:0;:10;-1:-1:-1;;;;;2473:43:0;;2465:67;;;;-1:-1:-1;;;2465:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;3989:24:0::1;4016:5;3989:24:::0;;;:13:::1;:24;::::0;;;;:32;;-1:-1:-1;;3989:32:0::1;::::0;;3908:121::o;4655:363::-;4867:4;-1:-1:-1;;;;;4892:22:0;;4884:31;;;;;;4935:75;4946:8;4956:6;4964:4;4970:11;4983:15;5000:9;4935:10;:75::i;:::-;4928:82;;4655:363;;;;;;;;;:::o;3245:172::-;2335:10;;-1:-1:-1;;;;;2335:10:0;2321;:24;;:52;;-1:-1:-1;2363:10:0;;-1:-1:-1;;;;;2363:10:0;2349;:24;2321:52;2313:76;;;;-1:-1:-1;;;2313:76:0;;;;;;;:::i;:::-;1849:6:::1;3340:15;:25;3332:34;;;::::0;::::1;;3377:14;:32:::0;3245:172::o;3778:122::-;2335:10;;-1:-1:-1;;;;;2335:10:0;2321;:24;;:52;;-1:-1:-1;2363:10:0;;-1:-1:-1;;;;;2363:10:0;2349;:24;2321:52;2313:76;;;;-1:-1:-1;;;2313:76:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3866:17:0;;::::1;;::::0;;;:6:::1;:17;::::0;;;;:26;;-1:-1:-1;;;;;;3866:26:0::1;::::0;;;::::1;;::::0;;3778:122::o;2061:41::-;;;;;;;;;;;;-1:-1:-1;;;;;2061:41:0;;:::o;2109:45::-;;;;;;;;;;;;;;;:::o;1862:31::-;;;;:::o;1995:25::-;;;-1:-1:-1;;;;;1995:25:0;;:::o;4183:122::-;-1:-1:-1;;;;;4273:24:0;4248:4;4273:24;;;:13;:24;;;;;;;;4272:25;;4183:122::o;1900:29::-;;;;:::o;2027:25::-;;;-1:-1:-1;;;;;2027:25:0;;:::o;3055:182::-;2335:10;;-1:-1:-1;;;;;2335:10:0;2321;:24;;:52;;-1:-1:-1;2363:10:0;;-1:-1:-1;;;;;2363:10:0;2349;:24;2321:52;2313:76;;;;-1:-1:-1;;;2313:76:0;;;;;;;:::i;:::-;1849:6:::1;3154:17;:27;3146:36;;;::::0;::::1;;3193:16;:36:::0;3055:182::o;4037:138::-;2335:10;;-1:-1:-1;;;;;2335:10:0;2321;:24;;:52;;-1:-1:-1;2363:10:0;;-1:-1:-1;;;;;2363:10:0;2349;:24;2321:52;2313:76;;;;-1:-1:-1;;;2313:76:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4132:24:0;;;::::1;;::::0;;;:13:::1;:24;::::0;;;;:35;;-1:-1:-1;;4132:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;4037:138::o;2727:156::-;2222:10;;-1:-1:-1;;;;;2222:10:0;2208;:24;2200:48;;;;-1:-1:-1;;;2200:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2814:25:0;::::1;2806:34;;;::::0;::::1;;2851:10;:24:::0;;-1:-1:-1;;;;;;2851:24:0::1;-1:-1:-1::0;;;;;2851:24:0;;;::::1;::::0;;;::::1;::::0;;2727:156::o;4313:334::-;4498:4;4534:10;4564:75;4534:10;4585:6;4593:4;4599:11;4612:15;4629:9;4564:10;:75::i;:::-;4557:82;4313:334;-1:-1:-1;;;;;;;4313:334:0:o;1936:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2891:156::-;2222:10;;-1:-1:-1;;;;;2222:10:0;2208;:24;2200:48;;;;-1:-1:-1;;;2200:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2978:25:0;::::1;2970:34;;;::::0;::::1;;3015:10;:24:::0;;-1:-1:-1;;;;;;3015:24:0::1;-1:-1:-1::0;;;;;3015:24:0;;;::::1;::::0;;;::::1;::::0;;2891:156::o;5026:523::-;-1:-1:-1;;;;;5282:16:0;;;5243:4;5282:16;;;:6;:16;;;;;;5243:4;;5282:16;5315:25;5311:120;;5364:55;5385:8;5395:6;5403:4;5409:9;5364:20;:55::i;:::-;5357:62;;;;;5311:120;5450:91;;-1:-1:-1;;;5450:91:0;;-1:-1:-1;;;;;5450:37:0;;;;;:91;;5488:8;;5498:6;;5506:4;;5512:11;;5525:15;;5450:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5443:98;5026:523;-1:-1:-1;;;;;;;;5026:523:0:o;5557:817::-;5723:4;5740:20;;:::i;:::-;-1:-1:-1;;;;;;5763:26:0;;;;;;:16;:26;;;;;;;;5740:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5763:26;;;5870:259;;-1:-1:-1;;5924:23:0;;5980:21;;;;5870:259;;;-1:-1:-1;;6054:16:0;;6103:14;;5870:259;1849:6;6157:30;;;6156:42;6145:7;:54;6141:99;;;6223:5;6216:12;;;;;;;6141:99;1849:6;6264:28;;;6263:40;6254:5;:50;6250:95;;;6328:5;6321:12;;;;;;;6250:95;6362:4;6355:11;;;;;5557:817;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;686:241::-;;790:2;778:9;769:7;765:23;761:32;758:2;;;-1:-1;;796:12;758:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;848:63;752:175;-1:-1;;;752:175::o;934:263::-;;1049:2;1037:9;1028:7;1024:23;1020:32;1017:2;;;-1:-1;;1055:12;1017:2;226:6;220:13;238:33;265:5;238:33;:::i;1204:366::-;;;1325:2;1313:9;1304:7;1300:23;1296:32;1293:2;;;-1:-1;;1331:12;1293:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1383:63;-1:-1;1483:2;1522:22;;72:20;97:33;72:20;97:33;:::i;:::-;1491:63;;;;1287:283;;;;;:::o;1577:360::-;;;1695:2;1683:9;1674:7;1670:23;1666:32;1663:2;;;-1:-1;;1701:12;1663:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1753:63;-1:-1;1853:2;1889:22;;347:20;372:30;347:20;372:30;:::i;1944:491::-;;;;2082:2;2070:9;2061:7;2057:23;2053:32;2050:2;;;-1:-1;;2088:12;2050:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;2140:63;2240:2;2279:22;;616:20;;-1:-1;2348:2;2387:22;;;616:20;;2044:391;-1:-1;;;2044:391::o;2442:869::-;;;;;;;2631:3;2619:9;2610:7;2606:23;2602:33;2599:2;;;-1:-1;;2638:12;2599:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;2690:63;2790:2;2829:22;;616:20;;-1:-1;2898:2;2937:22;;616:20;;3006:2;3045:22;;616:20;;-1:-1;3114:3;3154:22;;616:20;;-1:-1;3223:3;3263:22;616:20;;-1:-1;2593:718;-1:-1;;;2593:718::o;3318:257::-;;3430:2;3418:9;3409:7;3405:23;3401:32;3398:2;;;-1:-1;;3436:12;3398:2;495:6;489:13;507:30;531:5;507:30;:::i;3582:241::-;;3686:2;3674:9;3665:7;3661:23;3657:32;3654:2;;;-1:-1;;3692:12;3654:2;-1:-1;616:20;;3648:175;-1:-1;3648:175::o;3830:743::-;;;;;;4002:3;3990:9;3981:7;3977:23;3973:33;3970:2;;;-1:-1;;4009:12;3970:2;-1:-1;;616:20;;;4161:2;4200:22;;616:20;;-1:-1;4269:2;4308:22;;616:20;;4377:2;4416:22;;616:20;;-1:-1;4485:3;4525:22;616:20;;-1:-1;3964:609;-1:-1;3964:609::o;5251:222::-;-1:-1;;;;;7887:54;;;;4651:37;;5378:2;5363:18;;5349:124::o;5480:668::-;-1:-1;;;;;7887:54;;;;4651:37;;5884:2;5869:18;;5202:37;;;;5967:2;5952:18;;5202:37;;;;6050:2;6035:18;;5202:37;6133:3;6118:19;;5202:37;5719:3;5704:19;;5690:458::o;6155:210::-;7799:13;;7792:21;4765:34;;6276:2;6261:18;;6247:118::o;6372:416::-;6572:2;6586:47;;;5036:2;6557:18;;;7567:19;-1:-1;;;7607:14;;;5052:34;5105:12;;;6543:245::o;6795:222::-;5202:37;;;6922:2;6907:18;;6893:124::o;7024:432::-;5202:37;;;7365:2;7350:18;;5202:37;;;;7799:13;7792:21;7442:2;7427:18;;4765:34;7201:2;7186:18;;7172:284::o;8032:117::-;-1:-1;;;;;7887:54;;8091:35;;8081:2;;8140:1;;8130:12;8081:2;8075:74;:::o;8156:111::-;8237:5;7799:13;7792:21;8215:5;8212:32;8202:2;;8258:1;;8248:12

Swarm Source

ipfs://4cdbda58a43b40d95db450ff84bfca9fe8ea05eeb293de66158ea3a0ec8b3444

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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.