Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
FujiOracle
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-09-15 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.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 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. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Claimable is Context { address private _owner; address public pendingOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event NewPendingOwner(address indexed owner); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(_msgSender() == owner(), "Ownable: caller is not the owner"); _; } modifier onlyPendingOwner() { require(_msgSender() == pendingOwner); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(owner(), address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(pendingOwner == address(0)); pendingOwner = newOwner; emit NewPendingOwner(newOwner); } function cancelTransferOwnership() public onlyOwner { require(pendingOwner != address(0)); delete pendingOwner; emit NewPendingOwner(address(0)); } function claimOwnership() public onlyPendingOwner { emit OwnershipTransferred(owner(), pendingOwner); _owner = pendingOwner; delete pendingOwner; } } interface AggregatorV3Interface { function decimals() external view returns (uint8); function description() external view returns (string memory); function version() external view returns (uint256); // getRoundData and latestRoundData should both raise "No data present" // if they do not have data to report, instead of returning unset values // which could be misinterpreted as actual reported values. function getRoundData(uint80 _roundId) external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); function latestRoundData() external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); } interface IFujiOracle { function getPriceOf( address _collateralAsset, address _borrowAsset, uint8 _decimals ) external view returns (uint256); } /** * @title Errors library * @author Fuji * @notice Defines the error messages emitted by the different contracts of the Aave protocol * @dev Error messages prefix glossary: * - VL = Validation Logic 100 series * - MATH = Math libraries 200 series * - RF = Refinancing 300 series * - VLT = vault 400 series * - SP = Special 900 series */ library Errors { //Errors string public constant VL_INDEX_OVERFLOW = "100"; // index overflows uint128 string public constant VL_INVALID_MINT_AMOUNT = "101"; //invalid amount to mint string public constant VL_INVALID_BURN_AMOUNT = "102"; //invalid amount to burn string public constant VL_AMOUNT_ERROR = "103"; //Input value >0, and for ETH msg.value and amount shall match string public constant VL_INVALID_WITHDRAW_AMOUNT = "104"; //Withdraw amount exceeds provided collateral, or falls undercollaterized string public constant VL_INVALID_BORROW_AMOUNT = "105"; //Borrow amount does not meet collaterization string public constant VL_NO_DEBT_TO_PAYBACK = "106"; //Msg sender has no debt amount to be payback string public constant VL_MISSING_ERC20_ALLOWANCE = "107"; //Msg sender has not approved ERC20 full amount to transfer string public constant VL_USER_NOT_LIQUIDATABLE = "108"; //User debt position is not liquidatable string public constant VL_DEBT_LESS_THAN_AMOUNT = "109"; //User debt is less than amount to partial close string public constant VL_PROVIDER_ALREADY_ADDED = "110"; // Provider is already added in Provider Array string public constant VL_NOT_AUTHORIZED = "111"; //Not authorized string public constant VL_INVALID_COLLATERAL = "112"; //There is no Collateral, or Collateral is not in active in vault string public constant VL_NO_ERC20_BALANCE = "113"; //User does not have ERC20 balance string public constant VL_INPUT_ERROR = "114"; //Check inputs. For ERC1155 batch functions, array sizes should match. string public constant VL_ASSET_EXISTS = "115"; //Asset intended to be added already exists in FujiERC1155 string public constant VL_ZERO_ADDR_1155 = "116"; //ERC1155: balance/transfer for zero address string public constant VL_NOT_A_CONTRACT = "117"; //Address is not a contract. string public constant VL_INVALID_ASSETID_1155 = "118"; //ERC1155 Asset ID is invalid. string public constant VL_NO_ERC1155_BALANCE = "119"; //ERC1155: insufficient balance for transfer. string public constant VL_MISSING_ERC1155_APPROVAL = "120"; //ERC1155: transfer caller is not owner nor approved. string public constant VL_RECEIVER_REJECT_1155 = "121"; //ERC1155Receiver rejected tokens string public constant VL_RECEIVER_CONTRACT_NON_1155 = "122"; //ERC1155: transfer to non ERC1155Receiver implementer string public constant VL_OPTIMIZER_FEE_SMALL = "123"; //Fuji OptimizerFee has to be > 1 RAY (1e27) string public constant VL_UNDERCOLLATERIZED_ERROR = "124"; // Flashloan-Flashclose cannot be used when User's collateral is worth less than intended debt position to close. string public constant VL_MINIMUM_PAYBACK_ERROR = "125"; // Minimum Amount payback should be at least Fuji Optimizerfee accrued interest. string public constant VL_HARVESTING_FAILED = "126"; // Harvesting Function failed, check provided _farmProtocolNum or no claimable balance. string public constant VL_FLASHLOAN_FAILED = "127"; // Flashloan failed string public constant VL_ERC1155_NOT_TRANSFERABLE = "128"; // ERC1155: Not Transferable string public constant VL_SWAP_SLIPPAGE_LIMIT_EXCEED = "129"; // ERC1155: Not Transferable string public constant VL_ZERO_ADDR = "130"; // Zero Address string public constant MATH_DIVISION_BY_ZERO = "201"; string public constant MATH_ADDITION_OVERFLOW = "202"; string public constant MATH_MULTIPLICATION_OVERFLOW = "203"; string public constant RF_INVALID_RATIO_VALUES = "301"; // Ratio Value provided is invalid, _ratioA/_ratioB <= 1, and > 0, or activeProvider borrowBalance = 0 string public constant VLT_CALLER_MUST_BE_VAULT = "401"; // The caller of this function must be a vault string public constant ORACLE_INVALID_LENGTH = "501"; // The assets length and price feeds length doesn't match string public constant ORACLE_NONE_PRICE_FEED = "502"; // The price feed is not found } contract FujiOracle is IFujiOracle, Claimable { // mapping from asset address to its price feed oracle in USD - decimals: 8 mapping(address => address) public usdPriceFeeds; constructor(address[] memory _assets, address[] memory _priceFeeds) Claimable() { require(_assets.length == _priceFeeds.length, Errors.ORACLE_INVALID_LENGTH); for (uint256 i = 0; i < _assets.length; i++) { usdPriceFeeds[_assets[i]] = _priceFeeds[i]; } } function setPriceFeed(address _asset, address _priceFeed) public onlyOwner { usdPriceFeeds[_asset] = _priceFeed; } /// @dev Calculates the exchange rate n given decimals (_borrowAsset / _collateralAsset Exchange Rate) /// @param _collateralAsset the collateral asset, zero-address for USD /// @param _borrowAsset the borrow asset, zero-address for USD /// @param _decimals the decimals of the price output /// @return price The exchange rate of the given assets pair function getPriceOf( address _collateralAsset, address _borrowAsset, uint8 _decimals ) external view override returns (uint256 price) { price = 10**uint256(_decimals); if (_borrowAsset != address(0)) { price = price * _getUSDPrice(_borrowAsset); } else { price = price * (10**8); } if (_collateralAsset != address(0)) { price = price / _getUSDPrice(_collateralAsset); } else { price = price / (10**8); } } /// @dev Calculates the USD price of asset /// @param _asset the asset address /// @return price USD price of the give asset function _getUSDPrice(address _asset) internal view returns (uint256 price) { require(usdPriceFeeds[_asset] != address(0), Errors.ORACLE_NONE_PRICE_FEED); (, int256 latestPrice, , , ) = AggregatorV3Interface(usdPriceFeeds[_asset]).latestRoundData(); price = uint256(latestPrice); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address[]","name":"_assets","type":"address[]"},{"internalType":"address[]","name":"_priceFeeds","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"NewPendingOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelTransferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_collateralAsset","type":"address"},{"internalType":"address","name":"_borrowAsset","type":"address"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"name":"getPriceOf","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_asset","type":"address"},{"internalType":"address","name":"_priceFeed","type":"address"}],"name":"setPriceFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"usdPriceFeeds","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162000ccc38038062000ccc833981016040819052620000349162000267565b6000620000406200019c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35080518251146040518060400160405280600381526020016235303160e81b81525090620000d55760405162461bcd60e51b8152600401620000cc9190620002ce565b60405180910390fd5b5060005b825181101562000193578181815181106200010457634e487b7160e01b600052603260045260246000fd5b6020026020010151600260008584815181106200013157634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080806200018a9062000324565b915050620000d9565b50505062000362565b3390565b80516001600160a01b0381168114620001b857600080fd5b919050565b600082601f830112620001ce578081fd5b815160206001600160401b0380831115620001ed57620001ed6200034c565b818302604051838282010181811084821117156200020f576200020f6200034c565b604052848152838101925086840182880185018910156200022e578687fd5b8692505b858310156200025b576200024681620001a0565b84529284019260019290920191840162000232565b50979650505050505050565b600080604083850312156200027a578182fd5b82516001600160401b038082111562000291578384fd5b6200029f86838701620001bd565b93506020850151915080821115620002b5578283fd5b50620002c485828601620001bd565b9150509250929050565b6000602080835283518082850152825b81811015620002fc57858101830151858201604001528201620002de565b818111156200030e5783604083870101525b50601f01601f1916929092016040019392505050565b60006000198214156200034557634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b61095a80620003726000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80638da5cb5b11610076578063e30c39781161005b578063e30c397814610113578063f0e0626f1461011b578063f2fde38b1461012e576100a3565b80638da5cb5b146100f657806392fede001461010b576100a3565b80634e71e0c8146100a8578063715018a6146100b2578063721adea7146100ba57806376e11286146100e3575b600080fd5b6100b0610141565b005b6100b06101d8565b6100cd6100c836600461067c565b610271565b6040516100da91906107b2565b60405180910390f35b6100b06100f136600461064a565b6102fe565b6100fe61036b565b6040516100da9190610716565b6100b061037a565b6100fe61040b565b6100fe610129366004610630565b61041a565b6100b061013c366004610630565b610435565b6001546001600160a01b03166101556104d4565b6001600160a01b03161461016857600080fd5b6001546001600160a01b031661017c61036b565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6101e061036b565b6001600160a01b03166101f16104d4565b6001600160a01b0316146102205760405162461bcd60e51b81526004016102179061077d565b60405180910390fd5b600061022a61036b565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600080546001600160a01b0319169055565b600061028160ff8316600a610821565b90506001600160a01b038316156102ac5761029b836104d8565b6102a590826108ef565b90506102bd565b6102ba816305f5e1006108ef565b90505b6001600160a01b038416156102e6576102d5846104d8565b6102df90826107bb565b90506102f7565b6102f46305f5e100826107bb565b90505b9392505050565b61030661036b565b6001600160a01b03166103176104d4565b6001600160a01b03161461033d5760405162461bcd60e51b81526004016102179061077d565b6001600160a01b03918216600090815260026020526040902080546001600160a01b03191691909216179055565b6000546001600160a01b031690565b61038261036b565b6001600160a01b03166103936104d4565b6001600160a01b0316146103b95760405162461bcd60e51b81526004016102179061077d565b6001546001600160a01b03166103ce57600080fd5b600180546001600160a01b03191690556040516000907f69737d41162474a7ca514809b07d7becaecf72eae8c23bceb071f0e09af93ffc908290a2565b6001546001600160a01b031681565b6002602052600090815260409020546001600160a01b031681565b61043d61036b565b6001600160a01b031661044e6104d4565b6001600160a01b0316146104745760405162461bcd60e51b81526004016102179061077d565b6001546001600160a01b03161561048a57600080fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f69737d41162474a7ca514809b07d7becaecf72eae8c23bceb071f0e09af93ffc90600090a250565b3390565b6001600160a01b038181166000908152600260209081526040808320548151808301909252600382527f3530320000000000000000000000000000000000000000000000000000000000928201929092529192166105495760405162461bcd60e51b8152600401610217919061072a565b506001600160a01b038083166000908152600260205260408082205481517ffeaf968c00000000000000000000000000000000000000000000000000000000815291519293169163feaf968c9160048082019260a092909190829003018186803b1580156105b657600080fd5b505afa1580156105ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ee91906106c7565b50919695505050505050565b80356001600160a01b038116811461061157600080fd5b919050565b805169ffffffffffffffffffff8116811461061157600080fd5b600060208284031215610641578081fd5b6102f7826105fa565b6000806040838503121561065c578081fd5b610665836105fa565b9150610673602084016105fa565b90509250929050565b600080600060608486031215610690578081fd5b610699846105fa565b92506106a7602085016105fa565b9150604084013560ff811681146106bc578182fd5b809150509250925092565b600080600080600060a086880312156106de578081fd5b6106e786610616565b945060208601519350604086015192506060860151915061070a60808701610616565b90509295509295909350565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b818110156107565785810183015185820160400152820161073a565b818111156107675783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b90815260200190565b6000826107d657634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116107ed5750610818565b8187048211156107ff576107ff61090e565b8086161561080c57918102915b9490941c9380026107de565b94509492505050565b60006102f7600019848460008261083a575060016102f7565b81610847575060006102f7565b816001811461085d576002811461086757610894565b60019150506102f7565b60ff8411156108785761087861090e565b6001841b91508482111561088e5761088e61090e565b506102f7565b5060208310610133831016604e8410600b84101617156108c7575081810a838111156108c2576108c261090e565b6102f7565b6108d484848460016107db565b8086048211156108e6576108e661090e565b02949350505050565b60008160001904831182151516156109095761090961090e565b500290565b634e487b7160e01b600052601160045260246000fdfea264697066735822122043437552ec1b9d7a2baf3b2f8c5938d496e71e3b7ccf0185d69f1668249250d664736f6c634300080000330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000050000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000956f47f50a910163d8bf957cf5846d573e7f87ca0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000aed0c38402a5d19df6e4c03f4e2dced6e29c1ee90000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f60000000000000000000000003e7d1eab13ad0104d2750b8863b489d65364e32d0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b841900000000000000000000000031e0a88fecb6ec0a411dbe0e9e76391498296ee9
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80638da5cb5b11610076578063e30c39781161005b578063e30c397814610113578063f0e0626f1461011b578063f2fde38b1461012e576100a3565b80638da5cb5b146100f657806392fede001461010b576100a3565b80634e71e0c8146100a8578063715018a6146100b2578063721adea7146100ba57806376e11286146100e3575b600080fd5b6100b0610141565b005b6100b06101d8565b6100cd6100c836600461067c565b610271565b6040516100da91906107b2565b60405180910390f35b6100b06100f136600461064a565b6102fe565b6100fe61036b565b6040516100da9190610716565b6100b061037a565b6100fe61040b565b6100fe610129366004610630565b61041a565b6100b061013c366004610630565b610435565b6001546001600160a01b03166101556104d4565b6001600160a01b03161461016857600080fd5b6001546001600160a01b031661017c61036b565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6101e061036b565b6001600160a01b03166101f16104d4565b6001600160a01b0316146102205760405162461bcd60e51b81526004016102179061077d565b60405180910390fd5b600061022a61036b565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600080546001600160a01b0319169055565b600061028160ff8316600a610821565b90506001600160a01b038316156102ac5761029b836104d8565b6102a590826108ef565b90506102bd565b6102ba816305f5e1006108ef565b90505b6001600160a01b038416156102e6576102d5846104d8565b6102df90826107bb565b90506102f7565b6102f46305f5e100826107bb565b90505b9392505050565b61030661036b565b6001600160a01b03166103176104d4565b6001600160a01b03161461033d5760405162461bcd60e51b81526004016102179061077d565b6001600160a01b03918216600090815260026020526040902080546001600160a01b03191691909216179055565b6000546001600160a01b031690565b61038261036b565b6001600160a01b03166103936104d4565b6001600160a01b0316146103b95760405162461bcd60e51b81526004016102179061077d565b6001546001600160a01b03166103ce57600080fd5b600180546001600160a01b03191690556040516000907f69737d41162474a7ca514809b07d7becaecf72eae8c23bceb071f0e09af93ffc908290a2565b6001546001600160a01b031681565b6002602052600090815260409020546001600160a01b031681565b61043d61036b565b6001600160a01b031661044e6104d4565b6001600160a01b0316146104745760405162461bcd60e51b81526004016102179061077d565b6001546001600160a01b03161561048a57600080fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f69737d41162474a7ca514809b07d7becaecf72eae8c23bceb071f0e09af93ffc90600090a250565b3390565b6001600160a01b038181166000908152600260209081526040808320548151808301909252600382527f3530320000000000000000000000000000000000000000000000000000000000928201929092529192166105495760405162461bcd60e51b8152600401610217919061072a565b506001600160a01b038083166000908152600260205260408082205481517ffeaf968c00000000000000000000000000000000000000000000000000000000815291519293169163feaf968c9160048082019260a092909190829003018186803b1580156105b657600080fd5b505afa1580156105ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ee91906106c7565b50919695505050505050565b80356001600160a01b038116811461061157600080fd5b919050565b805169ffffffffffffffffffff8116811461061157600080fd5b600060208284031215610641578081fd5b6102f7826105fa565b6000806040838503121561065c578081fd5b610665836105fa565b9150610673602084016105fa565b90509250929050565b600080600060608486031215610690578081fd5b610699846105fa565b92506106a7602085016105fa565b9150604084013560ff811681146106bc578182fd5b809150509250925092565b600080600080600060a086880312156106de578081fd5b6106e786610616565b945060208601519350604086015192506060860151915061070a60808701610616565b90509295509295909350565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b818110156107565785810183015185820160400152820161073a565b818111156107675783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b90815260200190565b6000826107d657634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116107ed5750610818565b8187048211156107ff576107ff61090e565b8086161561080c57918102915b9490941c9380026107de565b94509492505050565b60006102f7600019848460008261083a575060016102f7565b81610847575060006102f7565b816001811461085d576002811461086757610894565b60019150506102f7565b60ff8411156108785761087861090e565b6001841b91508482111561088e5761088e61090e565b506102f7565b5060208310610133831016604e8410600b84101617156108c7575081810a838111156108c2576108c261090e565b6102f7565b6108d484848460016107db565b8086048211156108e6576108e661090e565b02949350505050565b60008160001904831182151516156109095761090961090e565b500290565b634e487b7160e01b600052601160045260246000fdfea264697066735822122043437552ec1b9d7a2baf3b2f8c5938d496e71e3b7ccf0185d69f1668249250d664736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000050000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000956f47f50a910163d8bf957cf5846d573e7f87ca0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000aed0c38402a5d19df6e4c03f4e2dced6e29c1ee90000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f60000000000000000000000003e7d1eab13ad0104d2750b8863b489d65364e32d0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b841900000000000000000000000031e0a88fecb6ec0a411dbe0e9e76391498296ee9
-----Decoded View---------------
Arg [0] : _assets (address[]): 0x6B175474E89094C44Da98b954EedeAC495271d0F,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0xdAC17F958D2ee523a2206206994597C13D831ec7,0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE,0x956F47F50A910163D8BF957Cf5846D573E7f87CA
Arg [1] : _priceFeeds (address[]): 0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,0x3E7d1eAB13ad0104d2750B8863b489D65364e32D,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419,0x31e0a88fecB6eC0a411DBe0e9E76391498296EE9
-----Encoded View---------------
14 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [3] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [4] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [5] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [6] : 000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Arg [7] : 000000000000000000000000956f47f50a910163d8bf957cf5846d573e7f87ca
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [9] : 000000000000000000000000aed0c38402a5d19df6e4c03f4e2dced6e29c1ee9
Arg [10] : 0000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f6
Arg [11] : 0000000000000000000000003e7d1eab13ad0104d2750b8863b489d65364e32d
Arg [12] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Arg [13] : 00000000000000000000000031e0a88fecb6ec0a411dbe0e9e76391498296ee9
Deployed Bytecode Sourcemap
7517:1903:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2005:165;;;:::i;:::-;;1498:139;;;:::i;8481:493::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7986:122;;;;;;:::i;:::-;;:::i;1203:81::-;;;:::i;:::-;;;;;;;:::i;1834:165::-;;;:::i;885:27::-;;;:::i;7647:48::-;;;;;;:::i;:::-;;:::i;1643:185::-;;;;;;:::i;:::-;;:::i;2005:165::-;1465:12;;-1:-1:-1;;;;;1465:12:0;1449;:10;:12::i;:::-;-1:-1:-1;;;;;1449:28:0;;1441:37;;;;;;2097:12:::1;::::0;-1:-1:-1;;;;;2097:12:0::1;2088:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;2067:43:0::1;;;;;;;;;;;2126:12;::::0;;::::1;2117:21:::0;;-1:-1:-1;;;;;;2117:21:0;;::::1;-1:-1:-1::0;;;;;2126:12:0;::::1;2117:21;::::0;;;2145:19:::1;::::0;;2005:165::o;1498:139::-;1342:7;:5;:7::i;:::-;-1:-1:-1;;;;;1326:23:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1326:23:0;;1318:68;;;;-1:-1:-1;;;1318:68:0;;;;;;;:::i;:::-;;;;;;;;;1602:1:::1;1585:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;1564:41:0::1;;;;;;;;;;;1629:1;1612:19:::0;;-1:-1:-1;;;;;;1612:19:0::1;::::0;;1498:139::o;8481:493::-;8618:13;8648:22;8652:18;;;8648:2;:22;:::i;:::-;8640:30;-1:-1:-1;;;;;;8683:26:0;;;8679:137;;8736:26;8749:12;8736;:26::i;:::-;8728:34;;:5;:34;:::i;:::-;8720:42;;8679:137;;;8793:15;:5;8802;8793:15;:::i;:::-;8785:23;;8679:137;-1:-1:-1;;;;;8828:30:0;;;8824:145;;8885:30;8898:16;8885:12;:30::i;:::-;8877:38;;:5;:38;:::i;:::-;8869:46;;8824:145;;;8946:15;8955:5;8946;:15;:::i;:::-;8938:23;;8824:145;8481:493;;;;;:::o;7986:122::-;1342:7;:5;:7::i;:::-;-1:-1:-1;;;;;1326:23:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1326:23:0;;1318:68;;;;-1:-1:-1;;;1318:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8068:21:0;;::::1;;::::0;;;:13:::1;:21;::::0;;;;:34;;-1:-1:-1;;;;;;8068:34:0::1;::::0;;;::::1;;::::0;;7986:122::o;1203:81::-;1249:7;1272:6;-1:-1:-1;;;;;1272:6:0;1203:81;:::o;1834:165::-;1342:7;:5;:7::i;:::-;-1:-1:-1;;;;;1326:23:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1326:23:0;;1318:68;;;;-1:-1:-1;;;1318:68:0;;;;;;;:::i;:::-;1901:12:::1;::::0;-1:-1:-1;;;;;1901:12:0::1;1893:35;;;::::0;::::1;;1942:12;1935:19:::0;;-1:-1:-1;;;;;;1935:19:0::1;::::0;;1966:27:::1;::::0;1942:12:::1;::::0;1966:27:::1;::::0;1942:12;;1966:27:::1;1834:165::o:0;885:27::-;;;-1:-1:-1;;;;;885:27:0;;:::o;7647:48::-;;;;;;;;;;;;-1:-1:-1;;;;;7647:48:0;;:::o;1643:185::-;1342:7;:5;:7::i;:::-;-1:-1:-1;;;;;1326:23:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;1326:23:0;;1318:68;;;;-1:-1:-1;;;1318:68:0;;;;;;;:::i;:::-;1728:12:::1;::::0;-1:-1:-1;;;;;1728:12:0::1;:26:::0;1720:35:::1;;;::::0;::::1;;1762:12;:23:::0;;-1:-1:-1;;;;;;1762:23:0::1;-1:-1:-1::0;;;;;1762:23:0;::::1;::::0;;::::1;::::0;;;1797:25:::1;::::0;::::1;::::0;-1:-1:-1;;1797:25:0::1;1643:185:::0;:::o;600:98::-;680:10;600:98;:::o;9114:303::-;-1:-1:-1;;;;;9205:21:0;;;9175:13;9205:21;;;:13;:21;;;;;;;;;9242:29;;;;;;;;;;;;;;;;;;;9175:13;;9205:21;9197:75;;;;-1:-1:-1;;;9197:75:0;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;9334:21:0;;;9284:18;9334:21;;;:13;:21;;;;;;;9312:62;;;;;;;9284:18;;9334:21;;9312:60;;:62;;;;;;;;;;;;;;;9334:21;9312:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9281:93:0;;9114:303;-1:-1:-1;;;;;;9114:303:0:o;14:198:1:-;84:20;;-1:-1:-1;;;;;133:54:1;;123:65;;113:2;;202:1;199;192:12;113:2;65:147;;;:::o;217:181::-;297:13;;350:22;339:34;;329:45;;319:2;;388:1;385;378:12;403:198;;515:2;503:9;494:7;490:23;486:32;483:2;;;536:6;528;521:22;483:2;564:31;585:9;564:31;:::i;606:274::-;;;735:2;723:9;714:7;710:23;706:32;703:2;;;756:6;748;741:22;703:2;784:31;805:9;784:31;:::i;:::-;774:41;;834:40;870:2;859:9;855:18;834:40;:::i;:::-;824:50;;693:187;;;;;:::o;885:441::-;;;;1029:2;1017:9;1008:7;1004:23;1000:32;997:2;;;1050:6;1042;1035:22;997:2;1078:31;1099:9;1078:31;:::i;:::-;1068:41;;1128:40;1164:2;1153:9;1149:18;1128:40;:::i;:::-;1118:50;;1218:2;1207:9;1203:18;1190:32;1262:4;1255:5;1251:16;1244:5;1241:27;1231:2;;1287:6;1279;1272:22;1231:2;1315:5;1305:15;;;987:339;;;;;:::o;1331:487::-;;;;;;1519:3;1507:9;1498:7;1494:23;1490:33;1487:2;;;1541:6;1533;1526:22;1487:2;1569:41;1600:9;1569:41;:::i;:::-;1559:51;;1650:2;1639:9;1635:18;1629:25;1619:35;;1694:2;1683:9;1679:18;1673:25;1663:35;;1738:2;1727:9;1723:18;1717:25;1707:35;;1761:51;1807:3;1796:9;1792:19;1761:51;:::i;:::-;1751:61;;1477:341;;;;;;;;:::o;1823:226::-;-1:-1:-1;;;;;1987:55:1;;;;1969:74;;1957:2;1942:18;;1924:125::o;2054:603::-;;2195:2;2224;2213:9;2206:21;2256:6;2250:13;2299:6;2294:2;2283:9;2279:18;2272:34;2324:4;2337:140;2351:6;2348:1;2345:13;2337:140;;;2446:14;;;2442:23;;2436:30;2412:17;;;2431:2;2408:26;2401:66;2366:10;;2337:140;;;2495:6;2492:1;2489:13;2486:2;;;2565:4;2560:2;2551:6;2540:9;2536:22;2532:31;2525:45;2486:2;-1:-1:-1;2641:2:1;2620:15;-1:-1:-1;;2616:29:1;2601:45;;;;2648:2;2597:54;;2175:482;-1:-1:-1;;;2175:482:1:o;2662:356::-;2864:2;2846:21;;;2883:18;;;2876:30;2942:34;2937:2;2922:18;;2915:62;3009:2;2994:18;;2836:182::o;3023:177::-;3169:25;;;3157:2;3142:18;;3124:76::o;3205:274::-;;3271:1;3261:2;;-1:-1:-1;;;3303:1:1;3296:88;3407:4;3404:1;3397:15;3435:4;3432:1;3425:15;3261:2;-1:-1:-1;3464:9:1;;3251:228::o;3484:453::-;3580:6;3603:5;3617:314;3666:1;3703:2;3693:8;3690:16;3680:2;;3710:5;;;3680:2;3751:4;3746:3;3742:14;3736:4;3733:24;3730:2;;;3760:18;;:::i;:::-;3810:2;3800:8;3796:17;3793:2;;;3825:16;;;;3793:2;3904:17;;;;;3864:15;;3617:314;;;3561:376;;;;;;;:::o;3942:139::-;;4031:44;-1:-1:-1;;4058:8:1;4052:4;4086:922;4170:8;4160:2;;-1:-1:-1;4211:1:1;4225:5;;4160:2;4259:4;4249:2;;-1:-1:-1;4296:1:1;4310:5;;4249:2;4341:4;4359:1;4354:59;;;;4427:1;4422:183;;;;4334:271;;4354:59;4384:1;4375:10;;4398:5;;;4422:183;4459:3;4449:8;4446:17;4443:2;;;4466:18;;:::i;:::-;4522:1;4512:8;4508:16;4499:25;;4550:3;4543:5;4540:14;4537:2;;;4557:18;;:::i;:::-;4590:5;;;4334:271;;4689:2;4679:8;4676:16;4670:3;4664:4;4661:13;4657:36;4651:2;4641:8;4638:16;4633:2;4627:4;4624:12;4620:35;4617:77;4614:2;;;-1:-1:-1;4726:19:1;;;4761:14;;;4758:2;;;4778:18;;:::i;:::-;4811:5;;4614:2;4858:42;4896:3;4886:8;4880:4;4877:1;4858:42;:::i;:::-;4933:6;4928:3;4924:16;4915:7;4912:29;4909:2;;;4944:18;;:::i;:::-;4982:20;;4150:858;-1:-1:-1;;;;4150:858:1:o;5013:168::-;;5119:1;5115;5111:6;5107:14;5104:1;5101:21;5096:1;5089:9;5082:17;5078:45;5075:2;;;5126:18;;:::i;:::-;-1:-1:-1;5166:9:1;;5065:116::o;5186:184::-;-1:-1:-1;;;5235:1:1;5228:88;5335:4;5332:1;5325:15;5359:4;5356:1;5349:15
Swarm Source
ipfs://43437552ec1b9d7a2baf3b2f8c5938d496e71e3b7ccf0185d69f1668249250d6
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.