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 Source Code Verified (Exact Match)
Contract Name:
AaveOracle
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-17 */ // SPDX-License-Identifier: agpl-3.0 pragma solidity 0.6.12; /* * @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. */ abstract contract Context { function _msgSender() internal virtual view returns (address payable) { return msg.sender; } function _msgData() internal virtual view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @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. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * 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 { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @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(_owner == _msgSender(), 'Ownable: caller is not the 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 virtual 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 virtual onlyOwner { require(newOwner != address(0), 'Ownable: new owner is the zero address'); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IPriceOracleGetter { function getAssetPrice(address asset) external view returns (uint256); } interface IChainlinkAggregator { function latestAnswer() external view returns (int256); } /// @title AaveOracle /// @author Aave /// @notice Proxy smart contract to get the price of an asset from a price source, with Chainlink Aggregator /// smart contracts as primary option /// - If the returned price by a Chainlink aggregator is <= 0, the call is forwarded to a fallbackOracle /// - Owned by the Aave governance system, allowed to add sources for assets, replace them /// and change the fallbackOracle contract AaveOracle is IPriceOracleGetter, Ownable { event WethSet(address indexed weth); event AssetSourceUpdated(address indexed asset, address indexed source); event FallbackOracleUpdated(address indexed fallbackOracle); mapping(address => IChainlinkAggregator) private assetsSources; IPriceOracleGetter private _fallbackOracle; address public immutable WETH; /// @notice Constructor /// @param assets The addresses of the assets /// @param sources The address of the source of each asset /// @param fallbackOracle The address of the fallback oracle to use if the data of an /// aggregator is not consistent constructor( address[] memory assets, address[] memory sources, address fallbackOracle, address weth ) public { _setFallbackOracle(fallbackOracle); _setAssetsSources(assets, sources); WETH = weth; emit WethSet(weth); } /// @notice External function called by the Aave governance to set or replace sources of assets /// @param assets The addresses of the assets /// @param sources The address of the source of each asset function setAssetSources(address[] calldata assets, address[] calldata sources) external onlyOwner { _setAssetsSources(assets, sources); } /// @notice Sets the fallbackOracle /// - Callable only by the Aave governance /// @param fallbackOracle The address of the fallbackOracle function setFallbackOracle(address fallbackOracle) external onlyOwner { _setFallbackOracle(fallbackOracle); } /// @notice Internal function to set the sources for each asset /// @param assets The addresses of the assets /// @param sources The address of the source of each asset function _setAssetsSources(address[] memory assets, address[] memory sources) internal { require(assets.length == sources.length, 'INCONSISTENT_PARAMS_LENGTH'); for (uint256 i = 0; i < assets.length; i++) { assetsSources[assets[i]] = IChainlinkAggregator(sources[i]); emit AssetSourceUpdated(assets[i], sources[i]); } } /// @notice Internal function to set the fallbackOracle /// @param fallbackOracle The address of the fallbackOracle function _setFallbackOracle(address fallbackOracle) internal { _fallbackOracle = IPriceOracleGetter(fallbackOracle); emit FallbackOracleUpdated(fallbackOracle); } /// @notice Gets an asset price by address /// @param asset The asset address function getAssetPrice(address asset) public override view returns (uint256) { IChainlinkAggregator source = assetsSources[asset]; if (asset == WETH) { return 1 ether; } else if (address(source) == address(0)) { return _fallbackOracle.getAssetPrice(asset); } else { int256 price = IChainlinkAggregator(source).latestAnswer(); if (price > 0) { return uint256(price); } else { return _fallbackOracle.getAssetPrice(asset); } } } /// @notice Gets a list of prices from a list of assets addresses /// @param assets The list of assets addresses function getAssetsPrices(address[] calldata assets) external view returns (uint256[] memory) { uint256[] memory prices = new uint256[](assets.length); for (uint256 i = 0; i < assets.length; i++) { prices[i] = getAssetPrice(assets[i]); } return prices; } /// @notice Gets the address of the source for an asset address /// @param asset The address of the asset /// @return address The address of the source function getSourceOfAsset(address asset) external view returns (address) { return address(assetsSources[asset]); } /// @notice Gets the address of the fallback oracle /// @return address The addres of the fallback oracle function getFallbackOracle() external view returns (address) { return address(_fallbackOracle); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"address[]","name":"sources","type":"address[]"},{"internalType":"address","name":"fallbackOracle","type":"address"},{"internalType":"address","name":"weth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"address","name":"source","type":"address"}],"name":"AssetSourceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"fallbackOracle","type":"address"}],"name":"FallbackOracleUpdated","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"weth","type":"address"}],"name":"WethSet","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getAssetPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"}],"name":"getAssetsPrices","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFallbackOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getSourceOfAsset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"address[]","name":"sources","type":"address[]"}],"name":"setAssetSources","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"fallbackOracle","type":"address"}],"name":"setFallbackOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a06040523480156200001157600080fd5b5060405162000ead38038062000ead833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82518660208202830111640100000000821117156200008c57600080fd5b82525081516020918201928201910280838360005b83811015620000bb578181015183820152602001620000a1565b5050505090500160405260200180516040519392919084640100000000821115620000e557600080fd5b908301906020820185811115620000fb57600080fd5b82518660208202830111640100000000821117156200011957600080fd5b82525081516020918201928201910280838360005b83811015620001485781810151838201526020016200012e565b505050509190910160409081526020830151920151919350909150600090506200017162000222565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001c68262000226565b620001d2848462000270565b6001600160601b0319606082901b166080526040516001600160a01b038216907f13a533084dcbb1cfe0dbea708ea977223c27c44d94f2fa3867a167c9cd340bf990600090a250505050620003bc565b3390565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fce7a780d33665b1ea097af5f155e3821b809ecbaa839d3b33aa83ba28168cefb90600090a250565b8051825114620002c7576040805162461bcd60e51b815260206004820152601a60248201527f494e434f4e53495354454e545f504152414d535f4c454e475448000000000000604482015290519081900360640190fd5b60005b8251811015620003b757818181518110620002e157fe5b602002602001015160016000858481518110620002fa57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508181815181106200035357fe5b60200260200101516001600160a01b03168382815181106200037157fe5b60200260200101516001600160a01b03167f22c5b7b2d8561d39f7f210b6b326a1aa69f15311163082308ac4877db6339dc160405160405180910390a3600101620002ca565b505050565b60805160601c610ace620003df600039806105bc52806106005250610ace6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80639d23d9f2116100665780639d23d9f214610125578063abfd5310146101e5578063ad5c4648146102a7578063b3596f07146102af578063f2fde38b146102e75761009e565b8063170aee73146100a35780636210308c146100cb578063715018a6146100ef5780638da5cb5b146100f757806392bf2be0146100ff575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b031661030d565b005b6100d3610371565b604080516001600160a01b039092168252519081900360200190f35b6100c9610380565b6100d3610422565b6100d36004803603602081101561011557600080fd5b50356001600160a01b0316610431565b6101956004803603602081101561013b57600080fd5b81019060208101813564010000000081111561015657600080fd5b82018360208201111561016857600080fd5b8035906020019184602083028401116401000000008311171561018a57600080fd5b509092509050610452565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101d15781810151838201526020016101b9565b505050509050019250505060405180910390f35b6100c9600480360360408110156101fb57600080fd5b81019060208101813564010000000081111561021657600080fd5b82018360208201111561022857600080fd5b8035906020019184602083028401116401000000008311171561024a57600080fd5b91939092909160208101903564010000000081111561026857600080fd5b82018360208201111561027a57600080fd5b8035906020019184602083028401116401000000008311171561029c57600080fd5b5090925090506104ef565b6100d36105ba565b6102d5600480360360208110156102c557600080fd5b50356001600160a01b03166105de565b60408051918252519081900360200190f35b6100c9600480360360208110156102fd57600080fd5b50356001600160a01b03166107c7565b6103156108bf565b6000546001600160a01b03908116911614610365576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b61036e816108c3565b50565b6002546001600160a01b031690565b6103886108bf565b6000546001600160a01b039081169116146103d8576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6001600160a01b03808216600090815260016020526040902054165b919050565b6060808267ffffffffffffffff8111801561046c57600080fd5b50604051908082528060200260200182016040528015610496578160200160208202803683370190505b50905060005b838110156104e7576104c88585838181106104b357fe5b905060200201356001600160a01b03166105de565b8282815181106104d457fe5b602090810291909101015260010161049c565b509392505050565b6104f76108bf565b6000546001600160a01b03908116911614610547576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b6105b48484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080880282810182019093528782529093508792508691829185019084908082843760009201919091525061090d92505050565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b038082166000818152600160205260408120549092908116917f0000000000000000000000000000000000000000000000000000000000000000909116141561063957670de0b6b3a764000091505061044d565b6001600160a01b0381166106c9576002546040805163b3596f0760e01b81526001600160a01b0386811660048301529151919092169163b3596f07916024808301926020929190829003018186803b15801561069457600080fd5b505afa1580156106a8573d6000803e3d6000fd5b505050506040513d60208110156106be57600080fd5b5051915061044d9050565b6000816001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561070457600080fd5b505afa158015610718573d6000803e3d6000fd5b505050506040513d602081101561072e57600080fd5b50519050600081131561074457915061044d9050565b6002546040805163b3596f0760e01b81526001600160a01b0387811660048301529151919092169163b3596f07916024808301926020929190829003018186803b15801561079157600080fd5b505afa1580156107a5573d6000803e3d6000fd5b505050506040513d60208110156107bb57600080fd5b5051925061044d915050565b6107cf6108bf565b6000546001600160a01b0390811691161461081f576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b6001600160a01b0381166108645760405162461bcd60e51b8152600401808060200182810382526026815260200180610a536026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fce7a780d33665b1ea097af5f155e3821b809ecbaa839d3b33aa83ba28168cefb90600090a250565b8051825114610963576040805162461bcd60e51b815260206004820152601a60248201527f494e434f4e53495354454e545f504152414d535f4c454e475448000000000000604482015290519081900360640190fd5b60005b8251811015610a4d5781818151811061097b57fe5b60200260200101516001600085848151811061099357fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508181815181106109eb57fe5b60200260200101516001600160a01b0316838281518110610a0857fe5b60200260200101516001600160a01b03167f22c5b7b2d8561d39f7f210b6b326a1aa69f15311163082308ac4877db6339dc160405160405180910390a3600101610966565b50505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220e361b4072d4d8f7c5538b98948d76f20dcfa76c2e5b381ca3c114464bc2d71e864736f6c634300060c0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000140000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae90000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef0000000000000000000000004fabb145d64652a948d72533023f6e7a623c7c530000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000f629cbd94d3791c9250152bd8dfbdf380e2a3b9c000000000000000000000000dd974d5c2e2928dea5f71b9825b8b646686bd200000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc9420000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2000000000000000000000000408e41876cccdc0f92210600ef50372656052a38000000000000000000000000c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f00000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f510000000000000000000000000000000000085d4780b73119b644ae5ecd22b3760000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f984000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000bc529c00c6401aef6d220be8c6ea1667f6ad93e000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f49800000000000000000000000010f7fc1f91ba351f9c629c5947ad69bd03c05b9600000000000000000000000000000000000000000000000000000000000000140000000000000000000000006df09e975c830ecae5bd4ed9d90f3a95a4f880120000000000000000000000000d16d4528239e9ee52fa531af613acdb23d88c94000000000000000000000000614715d2af89e6ec99a233818275142ce88d1cfd000000000000000000000000773616e4d11a78f511299002da57a0a94577f1f400000000000000000000000024d9ab51950f3d62e9144fdc2f3135daa6ce8d1b000000000000000000000000656c0544ef4c98a6a98491833a89204abb045d6b000000000000000000000000dc530d9457755926550b59e8eccdae762418155700000000000000000000000082a44d92d6c329826dc557c5e1be6ebec5d5feb900000000000000000000000024551a8fb2a7211a25a17b1481f043a8a8adc7f20000000000000000000000003147d7203354dc06d9fd350c7a2437bca92387a400000000000000000000000079291a9d692df95334b1a0b3b4ae6bc606782f8c0000000000000000000000008e0b7e6062272b5ef4524250bfff8e5bd34977570000000000000000000000003886ba987236181d98f2401c507fb8bea7871df2000000000000000000000000d6aa3d25116d8da79ea0246c4826eb951872e02e000000000000000000000000986b5e1e1755e3c2440e960477f25201b0a8bbd4000000000000000000000000ee9f2375b4bdf6387aa8265dd4fb8f16512a1d46000000000000000000000000deb288f737066589598e9214e782fa5a8ed689e80000000000000000000000007c5d4f8345e66f68099581db340cd65b078c41f40000000000000000000000002da4983a622a8498bb1a21fae9d8f6c6649399620000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80639d23d9f2116100665780639d23d9f214610125578063abfd5310146101e5578063ad5c4648146102a7578063b3596f07146102af578063f2fde38b146102e75761009e565b8063170aee73146100a35780636210308c146100cb578063715018a6146100ef5780638da5cb5b146100f757806392bf2be0146100ff575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b031661030d565b005b6100d3610371565b604080516001600160a01b039092168252519081900360200190f35b6100c9610380565b6100d3610422565b6100d36004803603602081101561011557600080fd5b50356001600160a01b0316610431565b6101956004803603602081101561013b57600080fd5b81019060208101813564010000000081111561015657600080fd5b82018360208201111561016857600080fd5b8035906020019184602083028401116401000000008311171561018a57600080fd5b509092509050610452565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101d15781810151838201526020016101b9565b505050509050019250505060405180910390f35b6100c9600480360360408110156101fb57600080fd5b81019060208101813564010000000081111561021657600080fd5b82018360208201111561022857600080fd5b8035906020019184602083028401116401000000008311171561024a57600080fd5b91939092909160208101903564010000000081111561026857600080fd5b82018360208201111561027a57600080fd5b8035906020019184602083028401116401000000008311171561029c57600080fd5b5090925090506104ef565b6100d36105ba565b6102d5600480360360208110156102c557600080fd5b50356001600160a01b03166105de565b60408051918252519081900360200190f35b6100c9600480360360208110156102fd57600080fd5b50356001600160a01b03166107c7565b6103156108bf565b6000546001600160a01b03908116911614610365576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b61036e816108c3565b50565b6002546001600160a01b031690565b6103886108bf565b6000546001600160a01b039081169116146103d8576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6001600160a01b03808216600090815260016020526040902054165b919050565b6060808267ffffffffffffffff8111801561046c57600080fd5b50604051908082528060200260200182016040528015610496578160200160208202803683370190505b50905060005b838110156104e7576104c88585838181106104b357fe5b905060200201356001600160a01b03166105de565b8282815181106104d457fe5b602090810291909101015260010161049c565b509392505050565b6104f76108bf565b6000546001600160a01b03908116911614610547576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b6105b48484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080880282810182019093528782529093508792508691829185019084908082843760009201919091525061090d92505050565b50505050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6001600160a01b038082166000818152600160205260408120549092908116917f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2909116141561063957670de0b6b3a764000091505061044d565b6001600160a01b0381166106c9576002546040805163b3596f0760e01b81526001600160a01b0386811660048301529151919092169163b3596f07916024808301926020929190829003018186803b15801561069457600080fd5b505afa1580156106a8573d6000803e3d6000fd5b505050506040513d60208110156106be57600080fd5b5051915061044d9050565b6000816001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561070457600080fd5b505afa158015610718573d6000803e3d6000fd5b505050506040513d602081101561072e57600080fd5b50519050600081131561074457915061044d9050565b6002546040805163b3596f0760e01b81526001600160a01b0387811660048301529151919092169163b3596f07916024808301926020929190829003018186803b15801561079157600080fd5b505afa1580156107a5573d6000803e3d6000fd5b505050506040513d60208110156107bb57600080fd5b5051925061044d915050565b6107cf6108bf565b6000546001600160a01b0390811691161461081f576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b6001600160a01b0381166108645760405162461bcd60e51b8152600401808060200182810382526026815260200180610a536026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fce7a780d33665b1ea097af5f155e3821b809ecbaa839d3b33aa83ba28168cefb90600090a250565b8051825114610963576040805162461bcd60e51b815260206004820152601a60248201527f494e434f4e53495354454e545f504152414d535f4c454e475448000000000000604482015290519081900360640190fd5b60005b8251811015610a4d5781818151811061097b57fe5b60200260200101516001600085848151811061099357fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508181815181106109eb57fe5b60200260200101516001600160a01b0316838281518110610a0857fe5b60200260200101516001600160a01b03167f22c5b7b2d8561d39f7f210b6b326a1aa69f15311163082308ac4877db6339dc160405160405180910390a3600101610966565b50505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220e361b4072d4d8f7c5538b98948d76f20dcfa76c2e5b381ca3c114464bc2d71e864736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000140000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae90000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef0000000000000000000000004fabb145d64652a948d72533023f6e7a623c7c530000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000f629cbd94d3791c9250152bd8dfbdf380e2a3b9c000000000000000000000000dd974d5c2e2928dea5f71b9825b8b646686bd200000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc9420000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2000000000000000000000000408e41876cccdc0f92210600ef50372656052a38000000000000000000000000c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f00000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f510000000000000000000000000000000000085d4780b73119b644ae5ecd22b3760000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f984000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000bc529c00c6401aef6d220be8c6ea1667f6ad93e000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f49800000000000000000000000010f7fc1f91ba351f9c629c5947ad69bd03c05b9600000000000000000000000000000000000000000000000000000000000000140000000000000000000000006df09e975c830ecae5bd4ed9d90f3a95a4f880120000000000000000000000000d16d4528239e9ee52fa531af613acdb23d88c94000000000000000000000000614715d2af89e6ec99a233818275142ce88d1cfd000000000000000000000000773616e4d11a78f511299002da57a0a94577f1f400000000000000000000000024d9ab51950f3d62e9144fdc2f3135daa6ce8d1b000000000000000000000000656c0544ef4c98a6a98491833a89204abb045d6b000000000000000000000000dc530d9457755926550b59e8eccdae762418155700000000000000000000000082a44d92d6c329826dc557c5e1be6ebec5d5feb900000000000000000000000024551a8fb2a7211a25a17b1481f043a8a8adc7f20000000000000000000000003147d7203354dc06d9fd350c7a2437bca92387a400000000000000000000000079291a9d692df95334b1a0b3b4ae6bc606782f8c0000000000000000000000008e0b7e6062272b5ef4524250bfff8e5bd34977570000000000000000000000003886ba987236181d98f2401c507fb8bea7871df2000000000000000000000000d6aa3d25116d8da79ea0246c4826eb951872e02e000000000000000000000000986b5e1e1755e3c2440e960477f25201b0a8bbd4000000000000000000000000ee9f2375b4bdf6387aa8265dd4fb8f16512a1d46000000000000000000000000deb288f737066589598e9214e782fa5a8ed689e80000000000000000000000007c5d4f8345e66f68099581db340cd65b078c41f40000000000000000000000002da4983a622a8498bb1a21fae9d8f6c6649399620000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
-----Decoded View---------------
Arg [0] : assets (address[]): 0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9,0x0D8775F648430679A709E98d2b0Cb6250d2887EF,0x4Fabb145d64652a948d72533023f6E7A623C7C53,0x6B175474E89094C44Da98b954EedeAC495271d0F,0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c,0xdd974D5C2e2928deA5F71b9825b8b646686BD200,0x514910771AF9Ca656af840dff83E8264EcF986CA,0x0F5D2fB29fb7d3CFeE444a200298f468908cC942,0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2,0x408e41876cCCDC0F92210600ef50372656052a38,0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F,0x57Ab1ec28D129707052df4dF418D58a2D46d5f51,0x0000000000085d4780B73119b644AE5ecd22b376,0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0xdAC17F958D2ee523a2206206994597C13D831ec7,0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599,0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e,0xE41d2489571d322189246DaFA5ebDe1F4699F498,0x10F7Fc1F91Ba351f9C629c5947AD69bD03C05b96
Arg [1] : sources (address[]): 0x6Df09E975c830ECae5bd4eD9d90f3A95a4f88012,0x0d16d4528239e9ee52fa531af613AcdB23D88c94,0x614715d2Af89E6EC99A233818275142cE88d1Cfd,0x773616E4d11A78F511299002da57A0a94577F1f4,0x24D9aB51950F3d62E9144fdC2f3135DAA6Ce8D1B,0x656c0544eF4C98A6a98491833A89204Abb045d6b,0xDC530D9457755926550b59e8ECcdaE7624181557,0x82A44D92D6c329826dc557c5E1Be6ebeC5D5FeB9,0x24551a8Fb2A7211A25a17B1481f043A8a8adC7f2,0x3147D7203354Dc06D9fd350c7a2437bcA92387a4,0x79291A9d692Df95334B1a0B3B4AE6bC606782f8c,0x8e0b7e6062272B5eF4524250bFFF8e5Bd3497757,0x3886BA987236181D98F2401c507Fb8BeA7871dF2,0xD6aA3D25116d8dA79Ea0246c4826EB951872e02e,0x986b5E1e1755e3C2440e960477f25201B0a8bbD4,0xEe9F2375b4bdF6387aa8265dD4FB8F16512A1d46,0xdeb288F737066589598e9214E782fa5A8eD689e8,0x7c5d4F8345e66f68099581Db340cd65B078C41f4,0x2Da4983a622a8498bb1a21FaE9D8F6C664939962,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
Arg [2] : fallbackOracle (address): 0x0000000000000000000000000000000000000000
Arg [3] : weth (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
-----Encoded View---------------
46 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000320
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [5] : 0000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9
Arg [6] : 0000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef
Arg [7] : 0000000000000000000000004fabb145d64652a948d72533023f6e7a623c7c53
Arg [8] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [9] : 000000000000000000000000f629cbd94d3791c9250152bd8dfbdf380e2a3b9c
Arg [10] : 000000000000000000000000dd974d5c2e2928dea5f71b9825b8b646686bd200
Arg [11] : 000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca
Arg [12] : 0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942
Arg [13] : 0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2
Arg [14] : 000000000000000000000000408e41876cccdc0f92210600ef50372656052a38
Arg [15] : 000000000000000000000000c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f
Arg [16] : 00000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f51
Arg [17] : 0000000000000000000000000000000000085d4780b73119b644ae5ecd22b376
Arg [18] : 0000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f984
Arg [19] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [20] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [21] : 0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599
Arg [22] : 0000000000000000000000000bc529c00c6401aef6d220be8c6ea1667f6ad93e
Arg [23] : 000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f498
Arg [24] : 00000000000000000000000010f7fc1f91ba351f9c629c5947ad69bd03c05b96
Arg [25] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [26] : 0000000000000000000000006df09e975c830ecae5bd4ed9d90f3a95a4f88012
Arg [27] : 0000000000000000000000000d16d4528239e9ee52fa531af613acdb23d88c94
Arg [28] : 000000000000000000000000614715d2af89e6ec99a233818275142ce88d1cfd
Arg [29] : 000000000000000000000000773616e4d11a78f511299002da57a0a94577f1f4
Arg [30] : 00000000000000000000000024d9ab51950f3d62e9144fdc2f3135daa6ce8d1b
Arg [31] : 000000000000000000000000656c0544ef4c98a6a98491833a89204abb045d6b
Arg [32] : 000000000000000000000000dc530d9457755926550b59e8eccdae7624181557
Arg [33] : 00000000000000000000000082a44d92d6c329826dc557c5e1be6ebec5d5feb9
Arg [34] : 00000000000000000000000024551a8fb2a7211a25a17b1481f043a8a8adc7f2
Arg [35] : 0000000000000000000000003147d7203354dc06d9fd350c7a2437bca92387a4
Arg [36] : 00000000000000000000000079291a9d692df95334b1a0b3b4ae6bc606782f8c
Arg [37] : 0000000000000000000000008e0b7e6062272b5ef4524250bfff8e5bd3497757
Arg [38] : 0000000000000000000000003886ba987236181d98f2401c507fb8bea7871df2
Arg [39] : 000000000000000000000000d6aa3d25116d8da79ea0246c4826eb951872e02e
Arg [40] : 000000000000000000000000986b5e1e1755e3c2440e960477f25201b0a8bbd4
Arg [41] : 000000000000000000000000ee9f2375b4bdf6387aa8265dd4fb8f16512a1d46
Arg [42] : 000000000000000000000000deb288f737066589598e9214e782fa5a8ed689e8
Arg [43] : 0000000000000000000000007c5d4f8345e66f68099581db340cd65b078c41f4
Arg [44] : 0000000000000000000000002da4983a622a8498bb1a21fae9d8f6c664939962
Arg [45] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Deployed Bytecode Sourcemap
3679:3934:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5130:117;;;;;;;;;;;;;;;;-1:-1:-1;5130:117:0;-1:-1:-1;;;;;5130:117:0;;:::i;:::-;;7505:105;;;:::i;:::-;;;;-1:-1:-1;;;;;7505:105:0;;;;;;;;;;;;;;2517:138;;;:::i;1915:73::-;;;:::i;7265:122::-;;;;;;;;;;;;;;;;-1:-1:-1;7265:122:0;-1:-1:-1;;;;;7265:122:0;;:::i;6815:283::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6815:283:0;;-1:-1:-1;6815:283:0;-1:-1:-1;6815:283:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4817:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4817:159:0;;-1:-1:-1;4817:159:0;-1:-1:-1;4817:159:0;:::i;4031:29::-;;;:::i;6175:515::-;;;;;;;;;;;;;;;;-1:-1:-1;6175:515:0;-1:-1:-1;;;;;6175:515:0;;:::i;:::-;;;;;;;;;;;;;;;;2800:230;;;;;;;;;;;;;;;;-1:-1:-1;2800:230:0;-1:-1:-1;;;;;2800:230:0;;:::i;5130:117::-;2119:12;:10;:12::i;:::-;2109:6;;-1:-1:-1;;;;;2109:6:0;;;:22;;;2101:67;;;;;-1:-1:-1;;;2101:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2101:67:0;;;;;;;;;;;;;;;5207:34:::1;5226:14;5207:18;:34::i;:::-;5130:117:::0;:::o;7505:105::-;7588:15;;-1:-1:-1;;;;;7588:15:0;7505:105;:::o;2517:138::-;2119:12;:10;:12::i;:::-;2109:6;;-1:-1:-1;;;;;2109:6:0;;;:22;;;2101:67;;;;;-1:-1:-1;;;2101:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2101:67:0;;;;;;;;;;;;;;;2620:1:::1;2604:6:::0;;2583:40:::1;::::0;-1:-1:-1;;;;;2604:6:0;;::::1;::::0;2583:40:::1;::::0;2620:1;;2583:40:::1;2647:1;2630:19:::0;;-1:-1:-1;;;;;;2630:19:0::1;::::0;;2517:138::o;1915:73::-;1953:7;1976:6;-1:-1:-1;;;;;1976:6:0;1915:73;:::o;7265:122::-;-1:-1:-1;;;;;7360:20:0;;;7329:7;7360:20;;;:13;:20;;;;;;;7265:122;;;;:::o;6815:283::-;6890:16;;6955:6;6941:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6941:28:0;;6915:54;;6981:9;6976:97;6996:17;;;6976:97;;;7041:24;7055:6;;7062:1;7055:9;;;;;;;;;;;;;-1:-1:-1;;;;;7055:9:0;7041:13;:24::i;:::-;7029:6;7036:1;7029:9;;;;;;;;;;;;;;;;;:36;7015:3;;6976:97;;;-1:-1:-1;7086:6:0;6815:283;-1:-1:-1;;;6815:283:0:o;4817:159::-;2119:12;:10;:12::i;:::-;2109:6;;-1:-1:-1;;;;;2109:6:0;;;:22;;;2101:67;;;;;-1:-1:-1;;;2101:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2101:67:0;;;;;;;;;;;;;;;4936:34:::1;4954:6;;4936:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;4936:34:0::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;-1:-1:-1;4962:7:0;;-1:-1:-1;4962:7:0;;;;4936:34;::::1;::::0;4962:7;;4936:34;4962:7;4936:34;::::1;;::::0;::::1;::::0;;;;-1:-1:-1;4936:17:0::1;::::0;-1:-1:-1;;;4936:34:0:i:1;:::-;4817:159:::0;;;;:::o;4031:29::-;;;:::o;6175:515::-;-1:-1:-1;;;;;6289:20:0;;;6243:7;6289:20;;;:13;:20;;;;;;6243:7;;6289:20;;;;6331:4;6322:13;;;;6318:367;;;6353:7;6346:14;;;;;6318:367;-1:-1:-1;;;;;6378:29:0;;6374:311;;6425:15;;:36;;;-1:-1:-1;;;6425:36:0;;-1:-1:-1;;;;;6425:36:0;;;;;;;;;:15;;;;;:29;;:36;;;;;;;;;;;;;;:15;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6425:36:0;;-1:-1:-1;6418:43:0;;-1:-1:-1;6418:43:0;6374:311;6484:12;6520:6;-1:-1:-1;;;;;6499:41:0;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6499:43:0;;-1:-1:-1;6563:1:0;6555:9;;6551:127;;;6592:5;-1:-1:-1;6577:21:0;;-1:-1:-1;6577:21:0;6551:127;6632:15;;:36;;;-1:-1:-1;;;6632:36:0;;-1:-1:-1;;;;;6632:36:0;;;;;;;;;:15;;;;;:29;;:36;;;;;;;;;;;;;;:15;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6632:36:0;;-1:-1:-1;6625:43:0;;-1:-1:-1;;6625:43:0;2800:230;2119:12;:10;:12::i;:::-;2109:6;;-1:-1:-1;;;;;2109:6:0;;;:22;;;2101:67;;;;;-1:-1:-1;;;2101:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2101:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2885:22:0;::::1;2877:73;;;;-1:-1:-1::0;;;2877:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:6;::::0;;2962:38:::1;::::0;-1:-1:-1;;;;;2962:38:0;;::::1;::::0;2983:6;::::1;::::0;2962:38:::1;::::0;::::1;3007:6;:17:::0;;-1:-1:-1;;;;;;3007:17:0::1;-1:-1:-1::0;;;;;3007:17:0;;;::::1;::::0;;;::::1;::::0;;2800:230::o;606:100::-;690:10;606:100;:::o;5910:175::-;5978:15;:52;;-1:-1:-1;;;;;;5978:52:0;-1:-1:-1;;;;;5978:52:0;;;;;;;;6042:37;;;;-1:-1:-1;;6042:37:0;5910:175;:::o;5431:351::-;5550:7;:14;5533:6;:13;:31;5525:70;;;;;-1:-1:-1;;;5525:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5607:9;5602:175;5626:6;:13;5622:1;:17;5602:175;;;5703:7;5711:1;5703:10;;;;;;;;;;;;;;5655:13;:24;5669:6;5676:1;5669:9;;;;;;;;;;;;;;-1:-1:-1;;;;;5655:24:0;-1:-1:-1;;;;;5655:24:0;;;;;;;;;;;;;:59;;;;;-1:-1:-1;;;;;5655:59:0;;;;;-1:-1:-1;;;;;5655:59:0;;;;;;5758:7;5766:1;5758:10;;;;;;;;;;;;;;-1:-1:-1;;;;;5728:41:0;5747:6;5754:1;5747:9;;;;;;;;;;;;;;-1:-1:-1;;;;;5728:41:0;;;;;;;;;;;5641:3;;5602:175;;;;5431:351;;:::o
Swarm Source
ipfs://e361b4072d4d8f7c5538b98948d76f20dcfa76c2e5b381ca3c114464bc2d71e8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.