Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Set_new_CHAI | 9361509 | 2145 days ago | IN | 0 ETH | 0.0002285 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
UniswapAPR
Compiler Version
v0.5.12+commit.7709ece9
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-01-27
*/
// File: @openzeppelin\contracts\token\ERC20\IERC20.sol
pragma solidity ^0.5.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP. Does not include
* the optional functions; to access them see {ERC20Detailed}.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
// File: @openzeppelin\contracts\GSN\Context.sol
pragma solidity ^0.5.0;
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with GSN meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
contract Context {
// Empty internal constructor, to prevent people from mistakenly deploying
// an instance of this contract, which should be used via inheritance.
constructor () internal { }
// solhint-disable-previous-line no-empty-blocks
function _msgSender() internal view returns (address payable) {
return msg.sender;
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
// File: @openzeppelin\contracts\ownership\Ownable.sol
pragma solidity ^0.5.0;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () internal {
_owner = _msgSender();
emit OwnershipTransferred(address(0), _owner);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(isOwner(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Returns true if the caller is the current owner.
*/
function isOwner() public view returns (bool) {
return _msgSender() == _owner;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
*/
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
// File: @openzeppelin\contracts\math\SafeMath.sol
pragma solidity ^0.5.0;
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*
* _Available since v2.4.0._
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*
* _Available since v2.4.0._
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*
* _Available since v2.4.0._
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
// File: @openzeppelin\contracts\utils\Address.sol
pragma solidity ^0.5.5;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* This test is non-exhaustive, and there may be false-negatives: during the
* execution of a contract's constructor, its address will be reported as
* not containing a contract.
*
* IMPORTANT: It is unsafe to assume that an address for which this
* function returns false is an externally-owned account (EOA) and not a
* contract.
*/
function isContract(address account) internal view returns (bool) {
// This method relies in extcodesize, which returns 0 for contracts in
// construction, since the code is only stored at the end of the
// constructor execution.
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != 0x0 && codehash != accountHash);
}
/**
* @dev Converts an `address` into `address payable`. Note that this is
* simply a type cast: the actual underlying value is not changed.
*
* _Available since v2.4.0._
*/
function toPayable(address account) internal pure returns (address payable) {
return address(uint160(account));
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*
* _Available since v2.4.0._
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-call-value
(bool success, ) = recipient.call.value(amount)("");
require(success, "Address: unable to send value, recipient may have reverted");
}
}
interface IUniswapROI {
function getCDAIUniROI() external view returns (uint256, uint256);
function getCBATUniROI() external view returns (uint256, uint256);
function getCETHUniROI() external view returns (uint256, uint256);
function getCREPUniROI() external view returns (uint256, uint256);
function getCSAIUniROI() external view returns (uint256, uint256);
function getCUSDCUniROI() external view returns (uint256, uint256);
function getCWBTCUniROI() external view returns (uint256, uint256);
function getCZRXUniROI() external view returns (uint256, uint256);
function getIZRXUniROI() external view returns (uint256, uint256);
function getIREPUniROI() external view returns (uint256, uint256);
function getIKNCUniROI() external view returns (uint256, uint256);
function getIWBTCUniROI() external view returns (uint256, uint256);
function getIUSDCUniROI() external view returns (uint256, uint256);
function getIETHUniROI() external view returns (uint256, uint256);
function getISAIUniROI() external view returns (uint256, uint256);
function getIDAIUniROI() external view returns (uint256, uint256);
function getILINKUniROI() external view returns (uint256, uint256);
function getISUSDUniROI() external view returns (uint256, uint256);
function getADAIUniROI() external view returns (uint256, uint256);
function getATUSDUniROI() external view returns (uint256, uint256);
function getAUSDCUniROI() external view returns (uint256, uint256);
function getAUSDTUniROI() external view returns (uint256, uint256);
function getASUSDUniROI() external view returns (uint256, uint256);
function getALENDUniROI() external view returns (uint256, uint256);
function getABATUniROI() external view returns (uint256, uint256);
function getAETHUniROI() external view returns (uint256, uint256);
function getALINKUniROI() external view returns (uint256, uint256);
function getAKNCUniROI() external view returns (uint256, uint256);
function getAREPUniROI() external view returns (uint256, uint256);
function getAMKRUniROI() external view returns (uint256, uint256);
function getAMANAUniROI() external view returns (uint256, uint256);
function getAZRXUniROI() external view returns (uint256, uint256);
function getASNXUniROI() external view returns (uint256, uint256);
function getAWBTCUniROI() external view returns (uint256, uint256);
function getDAIUniROI() external view returns (uint256, uint256);
function getTUSDUniROI() external view returns (uint256, uint256);
function getUSDCUniROI() external view returns (uint256, uint256);
function getUSDTUniROI() external view returns (uint256, uint256);
function getSUSDUniROI() external view returns (uint256, uint256);
function getLENDUniROI() external view returns (uint256, uint256);
function getBATUniROI() external view returns (uint256, uint256);
function getETHUniROI() external view returns (uint256, uint256);
function getLINKUniROI() external view returns (uint256, uint256);
function getKNCUniROI() external view returns (uint256, uint256);
function getREPUniROI() external view returns (uint256, uint256);
function getMKRUniROI() external view returns (uint256, uint256);
function getMANAUniROI() external view returns (uint256, uint256);
function getZRXUniROI() external view returns (uint256, uint256);
function getSNXUniROI() external view returns (uint256, uint256);
function getWBTCUniROI() external view returns (uint256, uint256);
function calcUniswapROI(address token) external view returns (uint256, uint256);
}
contract UniswapAPR is Ownable {
using SafeMath for uint;
using Address for address;
uint256 public ADAICreateAt;
uint256 public CDAICreateAt;
uint256 public CETHCreateAt;
uint256 public CSAICreateAt;
uint256 public CUSDCCreateAt;
uint256 public DAICreateAt;
uint256 public IDAICreateAt;
uint256 public ISAICreateAt;
uint256 public SUSDCreateAt;
uint256 public TUSDCreateAt;
uint256 public USDCCreateAt;
uint256 public CHAICreateAt;
address public UNIROI;
address public CHAI;
uint256 public blocksPerYear;
constructor() public {
ADAICreateAt = 9248529;
CDAICreateAt = 9000629;
CETHCreateAt = 7716382;
CSAICreateAt = 7723867;
CUSDCCreateAt = 7869920;
DAICreateAt = 8939330;
IDAICreateAt = 8975121;
ISAICreateAt = 8362506;
SUSDCreateAt = 8623684;
TUSDCreateAt = 7794100;
USDCCreateAt = 6783192;
CHAICreateAt = 9028682;
UNIROI = address(0xD04cA0Ae1cd8085438FDd8c22A76246F315c2687);
CHAI = address(0x6C3942B383bc3d0efd3F36eFa1CBE7C8E12C8A2B);
blocksPerYear = 2102400;
}
function set_new_UNIROI(address _new_UNIROI) public onlyOwner {
UNIROI = _new_UNIROI;
}
function set_new_CHAI(address _new_CHAI) public onlyOwner {
CHAI = _new_CHAI;
}
function set_new_blocksPerYear(uint256 _new_blocksPerYear) public onlyOwner {
blocksPerYear = _new_blocksPerYear;
}
function getBlocksPerYear() public view returns (uint256) {
return blocksPerYear;
}
function calcUniswapAPRADAI() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).getADAIUniROI();
return (calcUniswapAPRFromROI(roi, ADAICreateAt), liquidity);
}
function calcUniswapAPRCDAI() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).getCDAIUniROI();
return (calcUniswapAPRFromROI(roi, CDAICreateAt), liquidity);
}
function calcUniswapAPRCETH() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).getCETHUniROI();
return (calcUniswapAPRFromROI(roi, CETHCreateAt), liquidity);
}
function calcUniswapAPRCSAI() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).getCSAIUniROI();
return (calcUniswapAPRFromROI(roi, CSAICreateAt), liquidity);
}
function calcUniswapAPRCUSDC() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).getCUSDCUniROI();
return (calcUniswapAPRFromROI(roi, CUSDCCreateAt), liquidity);
}
function calcUniswapAPRDAI() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).getDAIUniROI();
return (calcUniswapAPRFromROI(roi, DAICreateAt), liquidity);
}
function calcUniswapAPRIDAI() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).getIDAIUniROI();
return (calcUniswapAPRFromROI(roi, IDAICreateAt), liquidity);
}
function calcUniswapAPRISAI() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).getISAIUniROI();
return (calcUniswapAPRFromROI(roi, ISAICreateAt), liquidity);
}
function calcUniswapAPRSUSD() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).getSUSDUniROI();
return (calcUniswapAPRFromROI(roi, SUSDCreateAt), liquidity);
}
function calcUniswapAPRTUSD() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).getTUSDUniROI();
return (calcUniswapAPRFromROI(roi, TUSDCreateAt), liquidity);
}
function calcUniswapAPRUSDC() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).getUSDCUniROI();
return (calcUniswapAPRFromROI(roi, USDCCreateAt), liquidity);
}
function calcUniswapAPRCHAI() public view returns (uint256, uint256) {
(uint256 roi,uint256 liquidity) = IUniswapROI(UNIROI).calcUniswapROI(CHAI);
return (calcUniswapAPRFromROI(roi, CHAICreateAt), liquidity);
}
function calcUniswapAPRFromROI(uint256 roi, uint256 createdAt) public view returns (uint256) {
require(createdAt < block.number, "invalid createAt block");
uint256 roiFrom = block.number.sub(createdAt);
uint256 baseAPR = roi.mul(1e15).mul(blocksPerYear).div(roiFrom);
uint256 adjusted = blocksPerYear.mul(1e18).div(roiFrom);
return baseAPR.add(1e18).sub(adjusted);
}
function calcUniswapAPR(address token, uint256 createdAt) public view returns (uint256) {
require(createdAt < block.number, "invalid createAt block");
// ROI returned as shifted 1e4
(uint256 roi,) = IUniswapROI(UNIROI).calcUniswapROI(token);
uint256 roiFrom = block.number.sub(createdAt);
uint256 baseAPR = roi.mul(1e15).mul(blocksPerYear).div(roiFrom);
uint256 adjusted = blocksPerYear.mul(1e18).div(roiFrom);
return baseAPR.add(1e18).sub(adjusted);
}
// incase of half-way error
function inCaseTokenGetsStuck(IERC20 _TokenAddress) onlyOwner public {
uint qty = _TokenAddress.balanceOf(address(this));
_TokenAddress.transfer(msg.sender, qty);
}
// incase of half-way error
function inCaseETHGetsStuck() onlyOwner public{
(bool result, ) = msg.sender.call.value(address(this).balance)("");
require(result, "transfer of ETH failed");
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"ADAICreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CDAICreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CETHCreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CHAI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CHAICreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CSAICreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CUSDCCreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DAICreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IDAICreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ISAICreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SUSDCreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TUSDCreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNIROI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"USDCCreateAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blocksPerYear","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"name":"calcUniswapAPR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRADAI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRCDAI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRCETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRCHAI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRCSAI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRCUSDC","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRDAI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"roi","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"name":"calcUniswapAPRFromROI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRIDAI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRISAI","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRSUSD","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRTUSD","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcUniswapAPRUSDC","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBlocksPerYear","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"inCaseETHGetsStuck","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_TokenAddress","type":"address"}],"name":"inCaseTokenGetsStuck","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_CHAI","type":"address"}],"name":"set_new_CHAI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_UNIROI","type":"address"}],"name":"set_new_UNIROI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_new_blocksPerYear","type":"uint256"}],"name":"set_new_blocksPerYear","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b5061001f61020b60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3628d1f11600181905550628956b56002819055506275be1e6003819055506275db5b600481905550627815e0600581905550628867426006819055506288f311600781905550627f9a0a600881905550628396446009819055506276edb4600a81905550626780d8600b819055506289c44a600c8190555073d04ca0ae1cd8085438fdd8c22a76246f315c2687600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736c3942b383bc3d0efd3f36efa1cbe7c8e12c8a2b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062201480600f81905550610213565b600033905090565b612341806102226000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c80638da5cb5b1161013b578063bfccfd25116100b8578063f2fde38b1161007c578063f2fde38b146107e3578063f60a15ed14610827578063f61aab4614610831578063f78c98c214610856578063fd856965146108845761023d565b8063bfccfd25146106f3578063c4b5627314610711578063caa905dd1461075b578063cb649b6014610779578063e828a341146107975761023d565b80639884793b116100ff5780639884793b14610604578063a385fb9614610622578063a7a8a2e414610640578063a9b946e914610665578063b6dbf9ce146106a95761023d565b80638da5cb5b1461053e5780638f32d59b1461058857806394949591146105aa57806394b0cfdb146105c857806395efa6fe146105e65761023d565b806368fc13be116101c957806379234b961161018d57806379234b961461044f57806379fd4c0d1461046d5780638148b446146104925780638509ef45146104b75780638bd917eb146104dc5761023d565b806368fc13be146103995780636984ef7e146103be5780636f3a08e9146103e3578063715018a614610427578063741de148146104315761023d565b8063409733d211610210578063409733d2146102ee5780634281e8cc1461030c5780634b106a5e1461032a5780635eab41281461034f578063661c5552146103745761023d565b80630ef57fa9146102425780630f15d482146102675780632e8d6e181461028c5780632ea67f98146102d0575b600080fd5b61024a6108a2565b604051808381526020018281526020019250505060405180910390f35b61026f61096f565b604051808381526020018281526020019250505060405180910390f35b6102ce600480360360208110156102a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a3c565b005b6102d8610c39565b6040518082815260200191505060405180910390f35b6102f6610c3f565b6040518082815260200191505060405180910390f35b610314610c45565b6040518082815260200191505060405180910390f35b610332610c4b565b604051808381526020018281526020019250505060405180910390f35b610357610d18565b604051808381526020018281526020019250505060405180910390f35b61037c610de5565b604051808381526020018281526020019250505060405180910390f35b6103a1610eb2565b604051808381526020018281526020019250505060405180910390f35b6103c6610f7f565b604051808381526020018281526020019250505060405180910390f35b610425600480360360208110156103f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a5565b005b61042f611163565b005b61043961129c565b6040518082815260200191505060405180910390f35b6104576112a6565b6040518082815260200191505060405180910390f35b6104756112ac565b604051808381526020018281526020019250505060405180910390f35b61049a611379565b604051808381526020018281526020019250505060405180910390f35b6104bf611446565b604051808381526020018281526020019250505060405180910390f35b610528600480360360408110156104f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611513565b6040518082815260200191505060405180910390f35b610546611739565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610590611762565b604051808215151515815260200191505060405180910390f35b6105b26117c0565b6040518082815260200191505060405180910390f35b6105d06117c6565b6040518082815260200191505060405180910390f35b6105ee6117cc565b6040518082815260200191505060405180910390f35b61060c6117d2565b6040518082815260200191505060405180910390f35b61062a6117d8565b6040518082815260200191505060405180910390f35b6106486117de565b604051808381526020018281526020019250505060405180910390f35b6106a76004803603602081101561067b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ab565b005b6106b1611969565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106fb61198f565b6040518082815260200191505060405180910390f35b610719611995565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107636119bb565b6040518082815260200191505060405180910390f35b6107816119c1565b6040518082815260200191505060405180910390f35b6107cd600480360360408110156107ad57600080fd5b8101908080359060200190929190803590602001909291905050506119c7565b6040518082815260200191505060405180910390f35b610825600480360360208110156107f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b04565b005b61082f611b8a565b005b610839611cfa565b604051808381526020018281526020019250505060405180910390f35b6108826004803603602081101561086c57600080fd5b8101908080359060200190929190505050611dc7565b005b61088c611e4b565b6040518082815260200191505060405180910390f35b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663137a43db6040518163ffffffff1660e01b8152600401604080518083038186803b15801561090f57600080fd5b505afa158015610923573d6000803e3d6000fd5b505050506040513d604081101561093957600080fd5b81019080805190602001909291908051906020019092919050505091509150610964826007546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631aae09596040518163ffffffff1660e01b8152600401604080518083038186803b1580156109dc57600080fd5b505afa1580156109f0573d6000803e3d6000fd5b505050506040513d6040811015610a0657600080fd5b81019080805190602001909291908051906020019092919050505091509150610a31826005546119c7565b819350935050509091565b610a44611762565b610ab6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610b3557600080fd5b505afa158015610b49573d6000803e3d6000fd5b505050506040513d6020811015610b5f57600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610bf957600080fd5b505af1158015610c0d573d6000803e3d6000fd5b505050506040513d6020811015610c2357600080fd5b8101908080519060200190929190505050505050565b60025481565b60075481565b600a5481565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce3a2ffe6040518163ffffffff1660e01b8152600401604080518083038186803b158015610cb857600080fd5b505afa158015610ccc573d6000803e3d6000fd5b505050506040513d6040811015610ce257600080fd5b81019080805190602001909291908051906020019092919050505091509150610d0d826001546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663841552b26040518163ffffffff1660e01b8152600401604080518083038186803b158015610d8557600080fd5b505afa158015610d99573d6000803e3d6000fd5b505050506040513d6040811015610daf57600080fd5b81019080805190602001909291908051906020019092919050505091509150610dda826009546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b315de786040518163ffffffff1660e01b8152600401604080518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d6040811015610e7c57600080fd5b81019080805190602001909291908051906020019092919050505091509150610ea782600a546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639af798d16040518163ffffffff1660e01b8152600401604080518083038186803b158015610f1f57600080fd5b505afa158015610f33573d6000803e3d6000fd5b505050506040513d6040811015610f4957600080fd5b81019080805190602001909291908051906020019092919050505091509150610f7482600b546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166357c7b099600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d604081101561106f57600080fd5b8101908080519060200190929190805190602001909291905050509150915061109a82600c546119c7565b819350935050509091565b6110ad611762565b61111f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61116b611762565b6111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600f54905090565b60015481565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373ace9e36040518163ffffffff1660e01b8152600401604080518083038186803b15801561131957600080fd5b505afa15801561132d573d6000803e3d6000fd5b505050506040513d604081101561134357600080fd5b8101908080519060200190929190805190602001909291905050509150915061136e826006546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633801a6496040518163ffffffff1660e01b8152600401604080518083038186803b1580156113e657600080fd5b505afa1580156113fa573d6000803e3d6000fd5b505050506040513d604081101561141057600080fd5b8101908080519060200190929190805190602001909291905050509150915061143b826008546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663710393046040518163ffffffff1660e01b8152600401604080518083038186803b1580156114b357600080fd5b505afa1580156114c7573d6000803e3d6000fd5b505050506040513d60408110156114dd57600080fd5b81019080805190602001909291908051906020019092919050505091509150611508826004546119c7565b819350935050509091565b600043821061158a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f696e76616c696420637265617465417420626c6f636b0000000000000000000081525060200191505060405180910390fd5b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166357c7b099856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b15801561162a57600080fd5b505afa15801561163e573d6000803e3d6000fd5b505050506040513d604081101561165457600080fd5b81019080805190602001909291908051906020019092919050505050905060006116878443611e5190919063ffffffff16565b905060006116cb826116bd600f546116af66038d7ea4c6800088611e9b90919063ffffffff16565b611e9b90919063ffffffff16565b611f2190919063ffffffff16565b905060006116fe836116f0670de0b6b3a7640000600f54611e9b90919063ffffffff16565b611f2190919063ffffffff16565b905061172d8161171f670de0b6b3a764000085611f6b90919063ffffffff16565b611e5190919063ffffffff16565b94505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117a4611ff3565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60045481565b60055481565b60085481565b60035481565b600f5481565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663024a75626040518163ffffffff1660e01b8152600401604080518083038186803b15801561184b57600080fd5b505afa15801561185f573d6000803e3d6000fd5b505050506040513d604081101561187557600080fd5b810190808051906020019092919080519060200190929190505050915091506118a0826002546119c7565b819350935050509091565b6118b3611762565b611925576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b60065481565b6000438210611a3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f696e76616c696420637265617465417420626c6f636b0000000000000000000081525060200191505060405180910390fd5b6000611a538343611e5190919063ffffffff16565b90506000611a9782611a89600f54611a7b66038d7ea4c680008a611e9b90919063ffffffff16565b611e9b90919063ffffffff16565b611f2190919063ffffffff16565b90506000611aca83611abc670de0b6b3a7640000600f54611e9b90919063ffffffff16565b611f2190919063ffffffff16565b9050611af981611aeb670de0b6b3a764000085611f6b90919063ffffffff16565b611e5190919063ffffffff16565b935050505092915050565b611b0c611762565b611b7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611b8781611ffb565b50565b611b92611762565b611c04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163160405180600001905060006040518083038185875af1925050503d8060008114611c7b576040519150601f19603f3d011682016040523d82523d6000602084013e611c80565b606091505b5050905080611cf7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f7472616e73666572206f6620455448206661696c65640000000000000000000081525060200191505060405180910390fd5b50565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166336cc9e7f6040518163ffffffff1660e01b8152600401604080518083038186803b158015611d6757600080fd5b505afa158015611d7b573d6000803e3d6000fd5b505050506040513d6040811015611d9157600080fd5b81019080805190602001909291908051906020019092919050505091509150611dbc826003546119c7565b819350935050509091565b611dcf611762565b611e41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600f8190555050565b600b5481565b6000611e9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061213f565b905092915050565b600080831415611eae5760009050611f1b565b6000828402905082848281611ebf57fe5b0414611f16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806122ec6021913960400191505060405180910390fd5b809150505b92915050565b6000611f6383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121ff565b905092915050565b600080828401905083811015611fe9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806122c66026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008383111582906121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121b1578082015181840152602081019050612196565b50505050905090810190601f1680156121de5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080831182906122ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612270578082015181840152602081019050612255565b50505050905090810190601f16801561229d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816122b757fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820e333cce56a1578ea142fa9b96180ab480b0ac2f9b7341919fb554a2511a82a5664736f6c634300050c0032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061023d5760003560e01c80638da5cb5b1161013b578063bfccfd25116100b8578063f2fde38b1161007c578063f2fde38b146107e3578063f60a15ed14610827578063f61aab4614610831578063f78c98c214610856578063fd856965146108845761023d565b8063bfccfd25146106f3578063c4b5627314610711578063caa905dd1461075b578063cb649b6014610779578063e828a341146107975761023d565b80639884793b116100ff5780639884793b14610604578063a385fb9614610622578063a7a8a2e414610640578063a9b946e914610665578063b6dbf9ce146106a95761023d565b80638da5cb5b1461053e5780638f32d59b1461058857806394949591146105aa57806394b0cfdb146105c857806395efa6fe146105e65761023d565b806368fc13be116101c957806379234b961161018d57806379234b961461044f57806379fd4c0d1461046d5780638148b446146104925780638509ef45146104b75780638bd917eb146104dc5761023d565b806368fc13be146103995780636984ef7e146103be5780636f3a08e9146103e3578063715018a614610427578063741de148146104315761023d565b8063409733d211610210578063409733d2146102ee5780634281e8cc1461030c5780634b106a5e1461032a5780635eab41281461034f578063661c5552146103745761023d565b80630ef57fa9146102425780630f15d482146102675780632e8d6e181461028c5780632ea67f98146102d0575b600080fd5b61024a6108a2565b604051808381526020018281526020019250505060405180910390f35b61026f61096f565b604051808381526020018281526020019250505060405180910390f35b6102ce600480360360208110156102a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a3c565b005b6102d8610c39565b6040518082815260200191505060405180910390f35b6102f6610c3f565b6040518082815260200191505060405180910390f35b610314610c45565b6040518082815260200191505060405180910390f35b610332610c4b565b604051808381526020018281526020019250505060405180910390f35b610357610d18565b604051808381526020018281526020019250505060405180910390f35b61037c610de5565b604051808381526020018281526020019250505060405180910390f35b6103a1610eb2565b604051808381526020018281526020019250505060405180910390f35b6103c6610f7f565b604051808381526020018281526020019250505060405180910390f35b610425600480360360208110156103f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a5565b005b61042f611163565b005b61043961129c565b6040518082815260200191505060405180910390f35b6104576112a6565b6040518082815260200191505060405180910390f35b6104756112ac565b604051808381526020018281526020019250505060405180910390f35b61049a611379565b604051808381526020018281526020019250505060405180910390f35b6104bf611446565b604051808381526020018281526020019250505060405180910390f35b610528600480360360408110156104f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611513565b6040518082815260200191505060405180910390f35b610546611739565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610590611762565b604051808215151515815260200191505060405180910390f35b6105b26117c0565b6040518082815260200191505060405180910390f35b6105d06117c6565b6040518082815260200191505060405180910390f35b6105ee6117cc565b6040518082815260200191505060405180910390f35b61060c6117d2565b6040518082815260200191505060405180910390f35b61062a6117d8565b6040518082815260200191505060405180910390f35b6106486117de565b604051808381526020018281526020019250505060405180910390f35b6106a76004803603602081101561067b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ab565b005b6106b1611969565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106fb61198f565b6040518082815260200191505060405180910390f35b610719611995565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107636119bb565b6040518082815260200191505060405180910390f35b6107816119c1565b6040518082815260200191505060405180910390f35b6107cd600480360360408110156107ad57600080fd5b8101908080359060200190929190803590602001909291905050506119c7565b6040518082815260200191505060405180910390f35b610825600480360360208110156107f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b04565b005b61082f611b8a565b005b610839611cfa565b604051808381526020018281526020019250505060405180910390f35b6108826004803603602081101561086c57600080fd5b8101908080359060200190929190505050611dc7565b005b61088c611e4b565b6040518082815260200191505060405180910390f35b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663137a43db6040518163ffffffff1660e01b8152600401604080518083038186803b15801561090f57600080fd5b505afa158015610923573d6000803e3d6000fd5b505050506040513d604081101561093957600080fd5b81019080805190602001909291908051906020019092919050505091509150610964826007546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631aae09596040518163ffffffff1660e01b8152600401604080518083038186803b1580156109dc57600080fd5b505afa1580156109f0573d6000803e3d6000fd5b505050506040513d6040811015610a0657600080fd5b81019080805190602001909291908051906020019092919050505091509150610a31826005546119c7565b819350935050509091565b610a44611762565b610ab6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610b3557600080fd5b505afa158015610b49573d6000803e3d6000fd5b505050506040513d6020811015610b5f57600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610bf957600080fd5b505af1158015610c0d573d6000803e3d6000fd5b505050506040513d6020811015610c2357600080fd5b8101908080519060200190929190505050505050565b60025481565b60075481565b600a5481565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce3a2ffe6040518163ffffffff1660e01b8152600401604080518083038186803b158015610cb857600080fd5b505afa158015610ccc573d6000803e3d6000fd5b505050506040513d6040811015610ce257600080fd5b81019080805190602001909291908051906020019092919050505091509150610d0d826001546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663841552b26040518163ffffffff1660e01b8152600401604080518083038186803b158015610d8557600080fd5b505afa158015610d99573d6000803e3d6000fd5b505050506040513d6040811015610daf57600080fd5b81019080805190602001909291908051906020019092919050505091509150610dda826009546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b315de786040518163ffffffff1660e01b8152600401604080518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d6040811015610e7c57600080fd5b81019080805190602001909291908051906020019092919050505091509150610ea782600a546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639af798d16040518163ffffffff1660e01b8152600401604080518083038186803b158015610f1f57600080fd5b505afa158015610f33573d6000803e3d6000fd5b505050506040513d6040811015610f4957600080fd5b81019080805190602001909291908051906020019092919050505091509150610f7482600b546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166357c7b099600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d604081101561106f57600080fd5b8101908080519060200190929190805190602001909291905050509150915061109a82600c546119c7565b819350935050509091565b6110ad611762565b61111f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61116b611762565b6111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600f54905090565b60015481565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373ace9e36040518163ffffffff1660e01b8152600401604080518083038186803b15801561131957600080fd5b505afa15801561132d573d6000803e3d6000fd5b505050506040513d604081101561134357600080fd5b8101908080519060200190929190805190602001909291905050509150915061136e826006546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633801a6496040518163ffffffff1660e01b8152600401604080518083038186803b1580156113e657600080fd5b505afa1580156113fa573d6000803e3d6000fd5b505050506040513d604081101561141057600080fd5b8101908080519060200190929190805190602001909291905050509150915061143b826008546119c7565b819350935050509091565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663710393046040518163ffffffff1660e01b8152600401604080518083038186803b1580156114b357600080fd5b505afa1580156114c7573d6000803e3d6000fd5b505050506040513d60408110156114dd57600080fd5b81019080805190602001909291908051906020019092919050505091509150611508826004546119c7565b819350935050509091565b600043821061158a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f696e76616c696420637265617465417420626c6f636b0000000000000000000081525060200191505060405180910390fd5b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166357c7b099856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b15801561162a57600080fd5b505afa15801561163e573d6000803e3d6000fd5b505050506040513d604081101561165457600080fd5b81019080805190602001909291908051906020019092919050505050905060006116878443611e5190919063ffffffff16565b905060006116cb826116bd600f546116af66038d7ea4c6800088611e9b90919063ffffffff16565b611e9b90919063ffffffff16565b611f2190919063ffffffff16565b905060006116fe836116f0670de0b6b3a7640000600f54611e9b90919063ffffffff16565b611f2190919063ffffffff16565b905061172d8161171f670de0b6b3a764000085611f6b90919063ffffffff16565b611e5190919063ffffffff16565b94505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117a4611ff3565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60045481565b60055481565b60085481565b60035481565b600f5481565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663024a75626040518163ffffffff1660e01b8152600401604080518083038186803b15801561184b57600080fd5b505afa15801561185f573d6000803e3d6000fd5b505050506040513d604081101561187557600080fd5b810190808051906020019092919080519060200190929190505050915091506118a0826002546119c7565b819350935050509091565b6118b3611762565b611925576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b60065481565b6000438210611a3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f696e76616c696420637265617465417420626c6f636b0000000000000000000081525060200191505060405180910390fd5b6000611a538343611e5190919063ffffffff16565b90506000611a9782611a89600f54611a7b66038d7ea4c680008a611e9b90919063ffffffff16565b611e9b90919063ffffffff16565b611f2190919063ffffffff16565b90506000611aca83611abc670de0b6b3a7640000600f54611e9b90919063ffffffff16565b611f2190919063ffffffff16565b9050611af981611aeb670de0b6b3a764000085611f6b90919063ffffffff16565b611e5190919063ffffffff16565b935050505092915050565b611b0c611762565b611b7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611b8781611ffb565b50565b611b92611762565b611c04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163160405180600001905060006040518083038185875af1925050503d8060008114611c7b576040519150601f19603f3d011682016040523d82523d6000602084013e611c80565b606091505b5050905080611cf7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f7472616e73666572206f6620455448206661696c65640000000000000000000081525060200191505060405180910390fd5b50565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166336cc9e7f6040518163ffffffff1660e01b8152600401604080518083038186803b158015611d6757600080fd5b505afa158015611d7b573d6000803e3d6000fd5b505050506040513d6040811015611d9157600080fd5b81019080805190602001909291908051906020019092919050505091509150611dbc826003546119c7565b819350935050509091565b611dcf611762565b611e41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600f8190555050565b600b5481565b6000611e9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061213f565b905092915050565b600080831415611eae5760009050611f1b565b6000828402905082848281611ebf57fe5b0414611f16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806122ec6021913960400191505060405180910390fd5b809150505b92915050565b6000611f6383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121ff565b905092915050565b600080828401905083811015611fe9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806122c66026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008383111582906121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121b1578082015181840152602081019050612196565b50505050905090810190601f1680156121de5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080831182906122ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612270578082015181840152602081019050612255565b50505050905090810190601f16801561229d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816122b757fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820e333cce56a1578ea142fa9b96180ab480b0ac2f9b7341919fb554a2511a82a5664736f6c634300050c0032
Deployed Bytecode Sourcemap
18929:5774:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18929:5774:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21943:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;21483:227;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;24291:187;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;24291:187:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;19065:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19235;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19337;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20563:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22403;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22633;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22863;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;23093:229;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;20222:93;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20222:93:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5800:140;;;:::i;:::-;;20460:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19031:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21716:221;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22173:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;21253;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;23744:506;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23744:506:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4989:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5355:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19133:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19167:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19269:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19099;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19497:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20793:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;20115:101;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20115:101:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;19469:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19303:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19441:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19405:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19202:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23330:406;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23330:406:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6095:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6095:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;24517:183;;;:::i;:::-;;21023:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;20323:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20323:129:0;;;;;;;;;;;;;;;;;:::i;:::-;;19371:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21943:224;21994:7;22003;22022:11;22034:17;22067:6;;;;;;;;;;;22055:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22055:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22055:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22055:35:0;;;;;;;;;;;;;;;;;;;;;;;;;22021:69;;;;22107:40;22129:3;22134:12;;22107:21;:40::i;:::-;22149:9;22099:60;;;;;;21943:224;;:::o;21483:227::-;21535:7;21544;21563:11;21575:17;21608:6;;;;;;;;;;;21596:34;;;:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21596:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21596:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21596:36:0;;;;;;;;;;;;;;;;;;;;;;;;;21562:70;;;;21649:41;21671:3;21676:13;;21649:21;:41::i;:::-;21692:9;21641:61;;;;;;21483:227;;:::o;24291:187::-;5201:9;:7;:9::i;:::-;5193:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24371:8;24382:13;:23;;;24414:4;24382:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24382:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24382:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;24382:38:0;;;;;;;;;;;;;;;;24371:49;;24431:13;:22;;;24454:10;24466:3;24431:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24431:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24431:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;24431:39:0;;;;;;;;;;;;;;;;;5258:1;24291:187;:::o;19065:27::-;;;;:::o;19235:::-;;;;:::o;19337:::-;;;;:::o;20563:224::-;20614:7;20623;20642:11;20654:17;20687:6;;;;;;;;;;;20675:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20675:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20675:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20675:35:0;;;;;;;;;;;;;;;;;;;;;;;;;20641:69;;;;20727:40;20749:3;20754:12;;20727:21;:40::i;:::-;20769:9;20719:60;;;;;;20563:224;;:::o;22403:::-;22454:7;22463;22482:11;22494:17;22527:6;;;;;;;;;;;22515:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22515:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22515:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22515:35:0;;;;;;;;;;;;;;;;;;;;;;;;;22481:69;;;;22567:40;22589:3;22594:12;;22567:21;:40::i;:::-;22609:9;22559:60;;;;;;22403:224;;:::o;22633:::-;22684:7;22693;22712:11;22724:17;22757:6;;;;;;;;;;;22745:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22745:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22745:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22745:35:0;;;;;;;;;;;;;;;;;;;;;;;;;22711:69;;;;22797:40;22819:3;22824:12;;22797:21;:40::i;:::-;22839:9;22789:60;;;;;;22633:224;;:::o;22863:::-;22914:7;22923;22942:11;22954:17;22987:6;;;;;;;;;;;22975:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22975:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22975:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22975:35:0;;;;;;;;;;;;;;;;;;;;;;;;;22941:69;;;;23027:40;23049:3;23054:12;;23027:21;:40::i;:::-;23069:9;23019:60;;;;;;22863:224;;:::o;23093:229::-;23144:7;23153;23172:11;23184:17;23217:6;;;;;;;;;;;23205:34;;;23240:4;;;;;;;;;;;23205:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23205:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23205:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23205:40:0;;;;;;;;;;;;;;;;;;;;;;;;;23171:74;;;;23262:40;23284:3;23289:12;;23262:21;:40::i;:::-;23304:9;23254:60;;;;;;23093:229;;:::o;20222:93::-;5201:9;:7;:9::i;:::-;5193:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20298:9;20291:4;;:16;;;;;;;;;;;;;;;;;;20222:93;:::o;5800:140::-;5201:9;:7;:9::i;:::-;5193:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5899:1;5862:40;;5883:6;;;;;;;;;;;5862:40;;;;;;;;;;;;5930:1;5913:6;;:19;;;;;;;;;;;;;;;;;;5800:140::o;20460:95::-;20509:7;20534:13;;20527:20;;20460:95;:::o;19031:27::-;;;;:::o;21716:221::-;21766:7;21775;21794:11;21806:17;21839:6;;;;;;;;;;;21827:32;;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21827:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21827:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21827:34:0;;;;;;;;;;;;;;;;;;;;;;;;;21793:68;;;;21878:39;21900:3;21905:11;;21878:21;:39::i;:::-;21919:9;21870:59;;;;;;21716:221;;:::o;22173:224::-;22224:7;22233;22252:11;22264:17;22297:6;;;;;;;;;;;22285:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22285:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22285:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22285:35:0;;;;;;;;;;;;;;;;;;;;;;;;;22251:69;;;;22337:40;22359:3;22364:12;;22337:21;:40::i;:::-;22379:9;22329:60;;;;;;22173:224;;:::o;21253:::-;21304:7;21313;21332:11;21344:17;21377:6;;;;;;;;;;;21365:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21365:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21365:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21365:35:0;;;;;;;;;;;;;;;;;;;;;;;;;21331:69;;;;21417:40;21439:3;21444:12;;21417:21;:40::i;:::-;21459:9;21409:60;;;;;;21253:224;;:::o;23744:506::-;23823:7;23861:12;23849:9;:24;23841:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23948:11;23976:6;;;;;;;;;;;23964:34;;;23999:5;23964:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23964:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23964:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23964:41:0;;;;;;;;;;;;;;;;;;;;;;;;;23947:58;;;24014:15;24032:27;24049:9;24032:12;:16;;:27;;;;:::i;:::-;24014:45;;24068:15;24086:45;24123:7;24086:32;24104:13;;24086;24094:4;24086:3;:7;;:13;;;;:::i;:::-;:17;;:32;;;;:::i;:::-;:36;;:45;;;;:::i;:::-;24068:63;;24140:16;24159:36;24187:7;24159:23;24177:4;24159:13;;:17;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;24140:55;;24211:31;24233:8;24211:17;24223:4;24211:7;:11;;:17;;;;:::i;:::-;:21;;:31;;;;:::i;:::-;24204:38;;;;;;23744:506;;;;:::o;4989:79::-;5027:7;5054:6;;;;;;;;;;;5047:13;;4989:79;:::o;5355:94::-;5395:4;5435:6;;;;;;;;;;;5419:22;;:12;:10;:12::i;:::-;:22;;;5412:29;;5355:94;:::o;19133:27::-;;;;:::o;19167:28::-;;;;:::o;19269:27::-;;;;:::o;19099:::-;;;;:::o;19497:28::-;;;;:::o;20793:224::-;20844:7;20853;20872:11;20884:17;20917:6;;;;;;;;;;;20905:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20905:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20905:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20905:35:0;;;;;;;;;;;;;;;;;;;;;;;;;20871:69;;;;20957:40;20979:3;20984:12;;20957:21;:40::i;:::-;20999:9;20949:60;;;;;;20793:224;;:::o;20115:101::-;5201:9;:7;:9::i;:::-;5193:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20197:11;20188:6;;:20;;;;;;;;;;;;;;;;;;20115:101;:::o;19469:19::-;;;;;;;;;;;;;:::o;19303:27::-;;;;:::o;19441:21::-;;;;;;;;;;;;;:::o;19405:27::-;;;;:::o;19202:26::-;;;;:::o;23330:406::-;23414:7;23452:12;23440:9;:24;23432:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23500:15;23518:27;23535:9;23518:12;:16;;:27;;;;:::i;:::-;23500:45;;23554:15;23572:45;23609:7;23572:32;23590:13;;23572;23580:4;23572:3;:7;;:13;;;;:::i;:::-;:17;;:32;;;;:::i;:::-;:36;;:45;;;;:::i;:::-;23554:63;;23626:16;23645:36;23673:7;23645:23;23663:4;23645:13;;:17;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;23626:55;;23697:31;23719:8;23697:17;23709:4;23697:7;:11;;:17;;;;:::i;:::-;:21;;:31;;;;:::i;:::-;23690:38;;;;;23330:406;;;;:::o;6095:109::-;5201:9;:7;:9::i;:::-;5193:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6168:28;6187:8;6168:18;:28::i;:::-;6095:109;:::o;24517:183::-;5201:9;:7;:9::i;:::-;5193:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24575:11;24592:10;:15;;24622:4;24614:21;;;24592:48;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;24574:66:0;;;24659:6;24651:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5258:1;24517:183::o;21023:224::-;21074:7;21083;21102:11;21114:17;21147:6;;;;;;;;;;;21135:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21135:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21135:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21135:35:0;;;;;;;;;;;;;;;;;;;;;;;;;21101:69;;;;21187:40;21209:3;21214:12;;21187:21;:40::i;:::-;21229:9;21179:60;;;;;;21023:224;;:::o;20323:129::-;5201:9;:7;:9::i;:::-;5193:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20426:18;20410:13;:34;;;;20323:129;:::o;19371:27::-;;;;:::o;7915:136::-;7973:7;8000:43;8004:1;8007;8000:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;7993:50;;7915:136;;;;:::o;8831:471::-;8889:7;9139:1;9134;:6;9130:47;;;9164:1;9157:8;;;;9130:47;9189:9;9205:1;9201;:5;9189:17;;9234:1;9229;9225;:5;;;;;;:10;9217:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9293:1;9286:8;;;8831:471;;;;;:::o;9770:132::-;9828:7;9855:39;9859:1;9862;9855:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;9848:46;;9770:132;;;;:::o;7459:181::-;7517:7;7537:9;7553:1;7549;:5;7537:17;;7578:1;7573;:6;;7565:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7631:1;7624:8;;;7459:181;;;;:::o;3738:98::-;3783:15;3818:10;3811:17;;3738:98;:::o;6310:229::-;6404:1;6384:22;;:8;:22;;;;6376:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6494:8;6465:38;;6486:6;;;;;;;;;;;6465:38;;;;;;;;;;;;6523:8;6514:6;;:17;;;;;;;;;;;;;;;;;;6310:229;:::o;8388:192::-;8474:7;8507:1;8502;:6;;8510:12;8494:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8494:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8534:9;8550:1;8546;:5;8534:17;;8571:1;8564:8;;;8388:192;;;;;:::o;10432:345::-;10518:7;10617:1;10613;:5;10620:12;10605:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10605:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10644:9;10660:1;10656;:5;;;;;;10644:17;;10768:1;10761:8;;;10432:345;;;;;:::o
Swarm Source
bzzr://e333cce56a1578ea142fa9b96180ab480b0ac2f9b7341919fb554a2511a82a56
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.