Contract 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd41a793cc9bcb4c06482a18f89faef9ddd82191353a09903b3a62e078b3ac870Set Governance54055472022-02-04 3:41:52419 days 13 hrs ago0xd20eb2390e675b000adb8511f62b28404115a1a4 IN  0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH0.00059232554 ETH1.284937916
0x24f2d19b46945631ca06ec942e770af3503eca03ad3434548919c18b0b3719d90x6080604054055102022-02-04 3:39:09419 days 13 hrs ago0xd20eb2390e675b000adb8511f62b28404115a1a4 IN  Create: CommonHealthCheck0 ETH0.013509923341 ETH1.284937916
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x36164f364bed027cc3b8ee7a96e3f596a39466be698ae2c13143894ca58aaf5b719042752023-03-20 21:36:529 days 19 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x5f3f84d71f37e3368974f2570adbf4a8e54e7eff5588aac174999906c700a428715673032023-03-19 22:09:3910 days 19 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x5d6e723a1afbf26d1c1851f8e23656b5464bebbf4f87b49558abebe03a903c93714459962023-03-19 13:44:4611 days 3 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x0e69ea067d86db01344bd437d4da8543ad9e6c051abadcb634ab2ed6a5f4f6c8712183852023-03-18 21:36:4611 days 19 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xed97fa89d22a0acb40a037f5df5e2cd7c033d458c7d03e52fd47e457f8c8215c708829682023-03-17 22:09:2812 days 19 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x02a30b076f2f90333a35527eb90fcafe38f05f68b3e604fe6a15d992d7d69aad707627862023-03-17 13:44:4013 days 3 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x47b02196f2c9fed902db973d2dd52b591b54364f07e26a633a8b2fc784f4fe81705343212023-03-16 21:36:3113 days 19 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x9dc055b5f51da0d43eeb75f145ccf23c63e893810096df090587e7831d91da87702025582023-03-15 22:09:2014 days 19 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xc8cfd1edbbf7b46e0e935f784e7ff7ecd784f573b3d14b55edbe70abfcca3fd7700887612023-03-15 13:44:3115 days 3 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x17b6912578a31c7f81948fff7274bbbe05e8adb332e3765c81973cb5f17538c2699807692023-03-15 6:00:0715 days 11 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x729520889120dce0aaa74913aba2e8e4f92e5fa0fddfd88399a61b974922acda698973312023-03-15 0:00:0715 days 17 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x0abec37a9427b5d08095f778a66ff245389710af7293ad4dca46c3c24522f565698656842023-03-14 21:36:2315 days 19 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x1b87d966bedce40e03fbe2126c47f95a5791ff614d26ba360413705d992f2480698175662023-03-14 18:00:0715 days 23 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x8484566bf327cb684bfcba70b3b1fd23cdfa74e4bb606020a5ccea382a814aa8697345472023-03-14 12:00:0816 days 5 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x427006d3cd3b69741b5b5021c3f294085d669c59347721ac284065ce959a72c1696523592023-03-14 6:00:0616 days 11 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xd0edfa2970d5b9f9a24dbab6de6d42a249eb457cdafd61da5cd6eb026c3a01d7695792022023-03-14 0:00:0816 days 17 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x4f3e642d980ae745f13208e1d55780d13b09bd2209d53fcaabddba48634a96fa695577212023-03-13 22:09:1016 days 19 hrs ago 0xf1c3047c6310806de1d25535bc50748815066a7b 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x8d6cf121ba9be44309bbad6a4e3e6cdf70f52b64d30e7c12fe4a922451a70133695091532023-03-13 18:00:0716 days 23 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xf1d9436ad22ae42b1381415113193fdc1994973397da11437f423ebba9ae70d7694519042023-03-13 13:44:2017 days 3 hrs ago 0xf992fcef771df908f9b09bb2619092f70ab21957 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xeecc4db05cb618c0bc423dd8a02b2721af42e84407e520ded401705970d90a52694293192023-03-13 12:00:0717 days 5 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x075bdcf241e70b774943f90f36fbbc166c6b7c00b857030d0500ac1d809b20d7693513892023-03-13 6:00:0817 days 11 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xd97ba9d9b0a8020a20ec10e493696e151d24732f2dea84f0bcf65b9ab2d67779692769922023-03-13 0:00:0817 days 17 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x483ef410af5a089e90a87a98d643a9ab99efa4c5a1155d108ec89c90a09eed91692473492023-03-12 21:36:1417 days 19 hrs ago 0xcdd989d84f9b63d2f0b1906a2d9b22355316de31 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0x6673fe5a380f5bb8dd798223b4c48df860fcebc137f2cb8cb660624d366cec18692044832023-03-12 18:00:0717 days 23 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 0x32059cce723b4dd15dd5cb2a5187f814e6c470bc0 ETH
0xa83aff1b8beb8d50c916fdb1b06f74fadf7cd38459cd401013dc4c6152aced01691283432023-03-12 12:00:0718 days 5 hrs ago 0xc4d80c55dc12ff0f2b8680ec31a6adc4cbc8dfca 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.