Contract 0x32059ccE723b4DD15dD5cb2a5187f814e6c470bC 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd41a793cc9bcb4c06482a18f89faef9ddd82191353a09903b3a62e078b3ac870Set Governance54055472022-02-04 3:41:52304 days 7 hrs ago0xd20eb2390e675b000adb8511f62b28404115a1a4 IN  0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH0.00059232554 ETH
0x24f2d19b46945631ca06ec942e770af3503eca03ad3434548919c18b0b3719d90x6080604054055102022-02-04 3:39:09304 days 7 hrs ago0xd20eb2390e675b000adb8511f62b28404115a1a4 IN  Create: CommonHealthCheck0 ETH0.013509923341 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x10229143b29410ed0d9d16fad38b4517978104c9d30d698ac514e67421d5732d436402492022-12-04 20:23:5214 hrs 41 mins ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xa1c8b5cc082765767c9f08267f4145d9dc059a7b2aadfc6aac02a3f4b0a15fe3433724792022-12-03 22:02:191 day 13 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x7e14c3ee570c32a4b13d77fcb6fd46096e1ff48f14f446fe97c251490c91c06b432690842022-12-03 13:37:361 day 21 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xc9b0985fb53789ba1609f8f12ac11bdc61bec91b6048ab36dacbcc4be34ba784430785392022-12-02 20:23:462 days 14 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x27e391ce30bc41b47139e7f6b6688b87182bc71dfa3be5413e0b3796fd90a925428181192022-12-01 22:02:173 days 13 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x2d7b0ae9b286a37957a96081bb8a1dfd4028c04990babd56f06e70237010b382427154112022-12-01 13:37:293 days 21 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x9999302da643cfc4fad6ca35d70529bde8d92195132f7981120dd0b2353b2d23425346502022-11-30 20:23:424 days 14 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x1d15e7af71774aa2646119b265a9aac70549fcdeda9c8ad9b1d4e1896b13824b422736472022-11-29 22:02:105 days 13 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x798664f9561230699786c0df2c373f812c8274b29186a79e7488d9e66eb1c9f3421667202022-11-29 13:37:265 days 21 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xeff5d0b9b8f6403b01f2ed37e66e03dfe9bdb1f6b0166b1d9cde05e44e0e9213419726522022-11-28 20:23:376 days 14 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xc1f64d11d1fb3aafad6d6326235993efc2b9eab8a68c16ceb0988c86f8d0e899417274612022-11-27 22:02:077 days 13 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xd423f6d56e32dd1e0adc504287429c88af65095e78d789d1261738be0cede39d416304172022-11-27 13:37:157 days 21 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x8006c4a849327cba4fc1925042f9f9272a7aa09270d0f337c8158b51152debec414559132022-11-26 20:23:308 days 14 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x5d4688eae162f3dc373c09d4c70e2b341db93fa26836ed6af0ca6bfe7592a81c412017552022-11-25 22:02:049 days 13 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xb35c0174e3ab9e06044821c42695efc75e6cdc8bdfd10c6d1ed79ddd524166c8411042112022-11-25 13:37:099 days 21 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x338fc592957938326a29552feeb4e98089fa25675d036d9bc0ad83a7ac3a1486409178722022-11-24 20:23:2310 days 14 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x20f43cdd1054bc7875c44ceca039584b2a28c88363d1fa8d7953ab3cf126ca00406619152022-11-23 22:02:0111 days 13 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xa0c102f901b0d9b9704b0b23f7d381a1e5538dad0b0ea50ea5eaa5d8c4c3572f405580322022-11-23 13:37:0311 days 21 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xc04a14336bc9e71b0bc7cafbcd4adc17667635d018a27e2db8d648d08019c46e403509692022-11-22 20:23:1912 days 14 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xaabc99d65585f6b1d0bd17940ad48b281b034951627998c7bf26da699babdecc400686662022-11-21 22:01:5113 days 13 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x63c9afaef5847ec23fa5386926435bbf128d4e9abfde5e137c2227ae5ad3aa40399561732022-11-21 13:35:4413 days 21 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x61f8698ebd4962167ea89cf61946684b1fc13a2cb813c699aecc4ee2088d0a28397370092022-11-20 20:23:0814 days 14 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x9736c6ba5cb7af0eb5179ea6a4617c8c6b73491113a8176609afe35fe0221c8a394441442022-11-19 22:01:3915 days 13 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x6fc80fec762fede078f35d041ff764cdab97f468a97c126755fb7186824c2d44393280862022-11-19 13:35:4115 days 21 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xd3cb508868f76c7c5bd7fa2ef13ae8330d039e0bf979832c97c181892051a71a391409942022-11-18 20:23:0316 days 14 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
[ Download CSV Export 
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
/**
 *Submitted for verification at Arbiscan on 2022-02-04
*/

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

[{"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"}]

608060405234801561001057600080fd5b50600380546001600160a01b031990811633908117909255600480549091169091179055606460005560018055610b408061004c6000396000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636e905e17116100a25780639abf315b116100715780639abf315b14610217578063ab033ea91461022a578063c70fa00b1461023d578063c935433714610250578063d4a22bde1461027257610115565b80636e905e17146101e15780637d969932146101f457806388a8d602146101fc578063950b3d731461020457610115565b80631afdc5a2116100e95780631afdc5a21461017e57806327fff0db14610191578063458add98146101b15780634a5d0943146101c45780635aa6e675146101d957610115565b8062fd31f01461011a578063039aa2501461012f57806306bfaf04146101425780630ef5ee021461016b575b600080fd5b61012d610128366004610964565b610285565b005b61012d61013d3660046108c0565b610340565b610155610150366004610998565b610404565b6040516101629190610a93565b60405180910390f35b61012d6101793660046109ff565b610434565b61012d61018c3660046108ff565b610486565b6101a461019f3660046108c0565b6104f3565b6040516101629190610a51565b6101556101bf3660046108c0565b61050e565b6101cc610523565b6040516101629190610ac3565b6101a4610529565b6101556101ef3660046108c0565b610538565b6101cc610557565b6101a461055d565b61012d6102123660046109ff565b61056c565b61012d610225366004610937565b6105be565b61012d6102383660046108c0565b610628565b61015561024b366004610a17565b610687565b61026361025e3660046108c0565b6106a3565b60405161016293929190610acc565b61012d6102803660046108c0565b6106c6565b6003546001600160a01b03163314806102a857506004546001600160a01b031633145b6102cd5760405162461bcd60e51b81526004016102c490610a9e565b60405180910390fd5b61271081106102db57600080fd5b61271082106102e957600080fd5b60408051606081018252928352602080840192835260018483018181526001600160a01b03969096166000908152600292839052929092209351845591519083015591519101805460ff1916911515919091179055565b80806001600160a01b031663fbfa77cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561037a57600080fd5b505afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b291906108e3565b6001600160a01b0316336001600160a01b0316146103e25760405162461bcd60e51b81526004016102c490610a9e565b506001600160a01b03166000908152600660205260409020805460ff19169055565b60006001600160a01b03871661041957600080fd5b610427878787878787610725565b90505b9695505050505050565b6003546001600160a01b031633148061045757506004546001600160a01b031633145b6104735760405162461bcd60e51b81526004016102c490610a9e565b612710811061048157600080fd5b600155565b6003546001600160a01b03163314806104a957506004546001600160a01b031633145b6104c55760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03918216600090815260056020526040902080546001600160a01b03191691909216179055565b6005602052600090815260409020546001600160a01b031681565b60066020526000908152604090205460ff1681565b60005481565b6003546001600160a01b031681565b6001600160a01b031660009081526006602052604090205460ff161590565b60015481565b6004546001600160a01b031681565b6003546001600160a01b031633148061058f57506004546001600160a01b031633145b6105ab5760405162461bcd60e51b81526004016102c490610a9e565b61271081106105b957600080fd5b600055565b6003546001600160a01b03163314806105e157506004546001600160a01b031633145b6105fd5760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6003546001600160a01b031633146106525760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03811661066557600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600033610698818888888888610725565b979650505050505050565b600260208190526000918252604090912080546001820154919092015460ff1683565b6003546001600160a01b031633146106f05760405162461bcd60e51b81526004016102c490610a9e565b6001600160a01b03811661070357600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038087166000908152600560205260408120549091168061075b57610753888888866107eb565b91505061042a565b60405163022c80df60e51b81526001600160a01b038216906345901be09061078f908b908b908b908b908b90600401610a65565b60206040518083038186803b1580156107a757600080fd5b505afa1580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df91906109e3565b98975050505050505050565b60006107f561089d565b506001600160a01b03851660009081526002602081815260408084208151606081018352815481526001820154938101939093529092015460ff16158015928201929092529190819061085057505080516020820151610859565b50506000546001545b612710858302048711156108735760009350505050610895565b6127108582020486111561088d5760009350505050610895565b600193505050505b949350505050565b604051806060016040528060008152602001600081526020016000151581525090565b6000602082840312156108d1578081fd5b81356108dc81610ae4565b9392505050565b6000602082840312156108f4578081fd5b81516108dc81610ae4565b60008060408385031215610911578081fd5b823561091c81610ae4565b9150602083013561092c81610ae4565b809150509250929050565b60008060408385031215610949578182fd5b823561095481610ae4565b9150602083013561092c81610afc565b600080600060608486031215610978578081fd5b833561098381610ae4565b95602085013595506040909401359392505050565b60008060008060008060c087890312156109b0578182fd5b86356109bb81610ae4565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b6000602082840312156109f4578081fd5b81516108dc81610afc565b600060208284031215610a10578081fd5b5035919050565b600080600080600060a08688031215610a2e578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6001600160a01b0391909116815260200190565b6001600160a01b03959095168552602085019390935260408401919091526060830152608082015260a00190565b901515815260200190565b6020808252600b908201526a08585d5d1a1bdc9a5e995960aa1b604082015260600190565b90815260200190565b92835260208301919091521515604082015260600190565b6001600160a01b0381168114610af957600080fd5b50565b8015158114610af957600080fdfea2646970667358221220e2da23ee9e5cbebe7572d42ec97ef55adbfa6eff51c2b050327793a51daee77c64736f6c634300060c0033

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

Metadata Hash

e2da23ee9e5cbebe7572d42ec97ef55adbfa6eff51c2b050327793a51daee77c
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.