Overview
ETH Balance
0 ETH
ETH Value
$0.00
Cross-Chain Transactions
Loading...
Loading
Contract Name:
CommonHealthCheck
Compiler Version
v0.6.12+commit.27d51765
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
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.