Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
||||
---|---|---|---|---|---|---|---|
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692125 | 1 hr ago | 0 ETH | |||||
21692105 | 1 hr ago | 0 ETH | |||||
21692105 | 1 hr ago | 0 ETH | |||||
21692105 | 1 hr ago | 0 ETH | |||||
21692105 | 1 hr ago | 0 ETH | |||||
21692105 | 1 hr ago | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
PriceFeedOracle
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-only pragma solidity ^0.8.18; import "../../interfaces/IPriceFeedOracle.sol"; contract PriceFeedOracle is IPriceFeedOracle { mapping(address => AssetInfo) public assetsMap; address public constant ETH = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; address public immutable safeTracker; constructor( address[] memory _assetAddresses, address[] memory _assetAggregators, AggregatorType[] memory _aggregatorTypes, uint8[] memory _assetDecimals, address _safeTracker ) { if (_assetAddresses.length == 0) { revert EmptyAssetAddresses(); } if ( _assetAddresses.length != _assetAggregators.length || _assetAggregators.length != _aggregatorTypes.length || _aggregatorTypes.length != _assetDecimals.length ) { revert ArgumentLengthMismatch( _assetAddresses.length, _assetAggregators.length, _aggregatorTypes.length, _assetDecimals.length ); } if (_safeTracker == address(0)) { revert ZeroAddress("safeTracker"); } safeTracker = _safeTracker; assetsMap[_safeTracker] = AssetInfo(Aggregator(_safeTracker), AggregatorType.ETH, 18); for (uint i = 0; i < _assetAddresses.length; i++) { if (_assetAddresses[i] == address(0)) { revert ZeroAddress("assetAddress"); } if (_assetAggregators[i] == address(0)) { revert ZeroAddress("aggregator"); } if (_assetDecimals[i] == 0) { revert ZeroDecimals(_assetAddresses[i]); } Aggregator aggregator = Aggregator(_assetAggregators[i]); uint8 aggregatorDecimals = aggregator.decimals(); if (_aggregatorTypes[i] == AggregatorType.ETH && aggregatorDecimals != 18) { revert IncompatibleAggregatorDecimals(_assetAggregators[i], aggregatorDecimals, 18); } if (_aggregatorTypes[i] == AggregatorType.USD && aggregatorDecimals != 8) { revert IncompatibleAggregatorDecimals(_assetAggregators[i], aggregatorDecimals, 8); } assetsMap[_assetAddresses[i]] = AssetInfo(aggregator, _aggregatorTypes[i], _assetDecimals[i]); } // Require ETH-USD asset AssetInfo memory ethAsset = assetsMap[ETH]; if (address(ethAsset.aggregator) == address(0)) { revert EthUsdAggregatorNotSet(); } if (ethAsset.aggregatorType != AggregatorType.USD) { revert InvalidEthAggregatorType(ethAsset.aggregatorType, AggregatorType.USD); } } /// @notice Returns the amount of ether in wei that are equivalent to 1 unit (10 ** decimals) of asset /// @param assetAddress address of asset /// @return price in ether function getAssetToEthRate(address assetAddress) public view returns (uint) { if (assetAddress == ETH || assetAddress == safeTracker) { return 1 ether; } AssetInfo memory asset = assetsMap[assetAddress]; return _getAssetToEthRate(asset.aggregator, asset.aggregatorType); } /// @notice Returns the amount of currency that is equivalent to ethIn amount of ether. /// @param assetAddress address of asset /// @param ethIn amount of ether to be converted to the asset /// @return asset amount function getAssetForEth(address assetAddress, uint ethIn) external view returns (uint) { if (assetAddress == ETH || assetAddress == safeTracker) { return ethIn; } AssetInfo memory asset = assetsMap[assetAddress]; uint price = _getAssetToEthRate(asset.aggregator, asset.aggregatorType); return ethIn * (10 ** uint(asset.decimals)) / price; } /// @notice Returns the amount of eth that is equivalent to a given asset and amount /// @param assetAddress address of asset /// @param amount amount of asset /// @return amount of ether function getEthForAsset(address assetAddress, uint amount) external view returns (uint) { if (assetAddress == ETH || assetAddress == safeTracker) { return amount; } AssetInfo memory asset = assetsMap[assetAddress]; uint price = _getAssetToEthRate(asset.aggregator, asset.aggregatorType); return amount * (price) / 10 ** uint(asset.decimals); } /// @notice Returns the amount of ether in wei that are equivalent to 1 unit (10 ** decimals) of asset /// @param aggregator The asset aggregator /// @param aggregatorType The asset aggregator type (i.e ETH, USD) /// @return price in ether function _getAssetToEthRate(Aggregator aggregator, AggregatorType aggregatorType) internal view returns (uint) { // NOTE: Current implementation relies on off-chain staleness checks, consider adding on-chain staleness check? int rate = aggregator.latestAnswer(); if (rate <= 0) { revert NonPositiveRate(address(aggregator), rate); } if (aggregatorType == AggregatorType.ETH) { return uint(rate); } // AggregatorType.USD - convert the USD rate to its equivalent ETH rate using the ETH-USD exchange rate AssetInfo memory ethAsset = assetsMap[ETH]; int ethUsdRate = ethAsset.aggregator.latestAnswer(); if (ethUsdRate <= 0) { revert NonPositiveRate(ETH, ethUsdRate); } return (uint(rate) * 1e18) / uint(ethUsdRate); } /// @notice Retrieves the aggregator and decimals for a specific asset /// @param assetAddress address of the asset /// @return Aggregator instance and decimals of the asset function assets(address assetAddress) external view returns (Aggregator, uint8) { AssetInfo memory asset = assetsMap[assetAddress]; return (asset.aggregator, asset.decimals); } }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity >=0.5.0; interface Aggregator { function decimals() external view returns (uint8); function latestAnswer() external view returns (int); } interface IPriceFeedOracle { enum AggregatorType { ETH, USD } struct AssetInfo { Aggregator aggregator; AggregatorType aggregatorType; uint8 decimals; } function ETH() external view returns (address); function assets(address) external view returns (Aggregator, uint8); function assetsMap(address) external view returns (Aggregator, AggregatorType, uint8); function getAssetToEthRate(address asset) external view returns (uint); function getAssetForEth(address asset, uint ethIn) external view returns (uint); function getEthForAsset(address asset, uint amount) external view returns (uint); /* ========== ERRORS ========== */ error EmptyAssetAddresses(); error ArgumentLengthMismatch(uint assetAddressesLength, uint aggregatorsLength, uint typesLength, uint decimalsLength); error ZeroAddress(string parameter); error ZeroDecimals(address asset); error IncompatibleAggregatorDecimals(address aggregator, uint8 aggregatorDecimals, uint8 expectedDecimals); error UnknownAggregatorType(uint8 aggregatorType); error EthUsdAggregatorNotSet(); error InvalidEthAggregatorType(AggregatorType actual, AggregatorType expected); error UnknownAsset(address asset); error NonPositiveRate(address aggregator, int rate); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address[]","name":"_assetAddresses","type":"address[]"},{"internalType":"address[]","name":"_assetAggregators","type":"address[]"},{"internalType":"enum IPriceFeedOracle.AggregatorType[]","name":"_aggregatorTypes","type":"uint8[]"},{"internalType":"uint8[]","name":"_assetDecimals","type":"uint8[]"},{"internalType":"address","name":"_safeTracker","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"assetAddressesLength","type":"uint256"},{"internalType":"uint256","name":"aggregatorsLength","type":"uint256"},{"internalType":"uint256","name":"typesLength","type":"uint256"},{"internalType":"uint256","name":"decimalsLength","type":"uint256"}],"name":"ArgumentLengthMismatch","type":"error"},{"inputs":[],"name":"EmptyAssetAddresses","type":"error"},{"inputs":[],"name":"EthUsdAggregatorNotSet","type":"error"},{"inputs":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"uint8","name":"aggregatorDecimals","type":"uint8"},{"internalType":"uint8","name":"expectedDecimals","type":"uint8"}],"name":"IncompatibleAggregatorDecimals","type":"error"},{"inputs":[{"internalType":"enum IPriceFeedOracle.AggregatorType","name":"actual","type":"uint8"},{"internalType":"enum IPriceFeedOracle.AggregatorType","name":"expected","type":"uint8"}],"name":"InvalidEthAggregatorType","type":"error"},{"inputs":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"int256","name":"rate","type":"int256"}],"name":"NonPositiveRate","type":"error"},{"inputs":[{"internalType":"uint8","name":"aggregatorType","type":"uint8"}],"name":"UnknownAggregatorType","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"UnknownAsset","type":"error"},{"inputs":[{"internalType":"string","name":"parameter","type":"string"}],"name":"ZeroAddress","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"ZeroDecimals","type":"error"},{"inputs":[],"name":"ETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"assetAddress","type":"address"}],"name":"assets","outputs":[{"internalType":"contract Aggregator","name":"","type":"address"},{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"assetsMap","outputs":[{"internalType":"contract Aggregator","name":"aggregator","type":"address"},{"internalType":"enum IPriceFeedOracle.AggregatorType","name":"aggregatorType","type":"uint8"},{"internalType":"uint8","name":"decimals","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"assetAddress","type":"address"},{"internalType":"uint256","name":"ethIn","type":"uint256"}],"name":"getAssetForEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"assetAddress","type":"address"}],"name":"getAssetToEthRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"assetAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getEthForAsset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safeTracker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60a06040523480156200001157600080fd5b50604051620014ab380380620014ab8339810160408190526200003491620008a4565b845160000362000057576040516329f8606f60e01b815260040160405180910390fd5b835185511415806200006b57508251845114155b806200007957508151835114155b15620000bb578451845184518451604051635b53d79160e01b815260048101949094526024840192909252604483015260648201526084015b60405180910390fd5b6001600160a01b038116620001025760405163eac0d38960e01b815260206004820152600b60248201526a39b0b332aa3930b1b5b2b960a91b6044820152606401620000b2565b6001600160a01b0381811660808190526040805160608101825282815260006020808301828152601284860152948252819052919091208151815494166001600160a01b031985168117825592519193909283916001600160a81b03191617600160a01b8360018111156200017b576200017b620009d8565b021790555060409190910151815460ff909116600160a81b0260ff60a81b1990911617905560005b8551811015620005fa5760006001600160a01b0316868281518110620001cd57620001cd620009ee565b60200260200101516001600160a01b0316036200021d5760405163eac0d38960e01b815260206004820152600c60248201526b61737365744164647265737360a01b6044820152606401620000b2565b60006001600160a01b03168582815181106200023d576200023d620009ee565b60200260200101516001600160a01b0316036200028b5760405163eac0d38960e01b815260206004820152600a60248201526930b3b3b932b3b0ba37b960b11b6044820152606401620000b2565b828181518110620002a057620002a0620009ee565b602002602001015160ff16600003620002fa57858181518110620002c857620002c8620009ee565b6020026020010151604051639c91f73d60e01b8152600401620000b291906001600160a01b0391909116815260200190565b6000858281518110620003115762000311620009ee565b602002602001015190506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200035c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000382919062000a04565b905060008684815181106200039b576200039b620009ee565b60200260200101516001811115620003b757620003b7620009d8565b148015620003c957508060ff16601214155b156200042557868381518110620003e457620003e4620009ee565b60209081029190910101516040516302d4418160e11b81526001600160a01b03909116600482015260ff8216602482015260126044820152606401620000b2565b60018684815181106200043c576200043c620009ee565b60200260200101516001811115620004585762000458620009d8565b1480156200046a57508060ff16600814155b15620004c657868381518110620004855762000485620009ee565b60209081029190910101516040516302d4418160e11b81526001600160a01b03909116600482015260ff8216602482015260086044820152606401620000b2565b6040518060600160405280836001600160a01b03168152602001878581518110620004f557620004f5620009ee565b60200260200101516001811115620005115762000511620009d8565b81526020018685815181106200052b576200052b620009ee565b602002602001015160ff168152506000808a8681518110620005515762000551620009ee565b6020908102919091018101516001600160a01b0390811683528282019390935260409091016000208351815493166001600160a01b0319841681178255918401519092909183916001600160a81b03191617600160a01b836001811115620005bd57620005bd620009d8565b021790555060409190910151815460ff909116600160a81b0260ff60a81b1990911617905550819050620005f18162000a29565b915050620001a3565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6000908152602081815260408051606081019091527fd0d045a07f9a74a2c48a464add9b06f25f501dbdf5bd4dd5a7489f86f449adda80546001600160a01b03811683529192909190830190600160a01b900460ff1660018111156200067a576200067a620009d8565b60018111156200068e576200068e620009d8565b81529054600160a81b900460ff1660209091015280519091506001600160a01b0316620006ce5760405163505bec9360e01b815260040160405180910390fd5b600181602001516001811115620006e957620006e9620009d8565b1462000713578060200151600160405163a0cf05df60e01b8152600401620000b292919062000a74565b50505050505062000a93565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200076057620007606200071f565b604052919050565b60006001600160401b038211156200078457620007846200071f565b5060051b60200190565b80516001600160a01b0381168114620007a657600080fd5b919050565b600082601f830112620007bd57600080fd5b81516020620007d6620007d08362000768565b62000735565b82815260059290921b84018101918181019086841115620007f657600080fd5b8286015b848110156200081c576200080e816200078e565b8352918301918301620007fa565b509695505050505050565b805160ff81168114620007a657600080fd5b600082601f8301126200084b57600080fd5b815160206200085e620007d08362000768565b82815260059290921b840181019181810190868411156200087e57600080fd5b8286015b848110156200081c57620008968162000827565b835291830191830162000882565b600080600080600060a08688031215620008bd57600080fd5b85516001600160401b0380821115620008d557600080fd5b620008e389838a01620007ab565b9650602091508188015181811115620008fb57600080fd5b620009098a828b01620007ab565b9650506040880151818111156200091f57600080fd5b8801601f81018a136200093157600080fd5b805162000942620007d08262000768565b81815260059190911b8201840190848101908c8311156200096257600080fd5b928501925b828410156200099157835160028110620009815760008081fd5b8252928501929085019062000967565b60608c0151909850945050505080821115620009ac57600080fd5b50620009bb8882890162000839565b925050620009cc608087016200078e565b90509295509295909350565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121562000a1757600080fd5b62000a228262000827565b9392505050565b60006001820162000a4a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6002811062000a7057634e487b7160e01b600052602160045260246000fd5b9052565b6040810162000a84828562000a51565b62000a22602083018462000a51565b6080516109e862000ac36000396000818160ad015281816101d4015281816102fc01526103f901526109e86000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638322fff21161005b5780638322fff2146100fa578063a341f1b114610115578063bbff4e5a14610163578063f11b81881461017657600080fd5b806355c40e66146100825780635d8471e4146100a8578063696ae5e3146100e7575b600080fd5b6100956100903660046107ba565b6101aa565b6040519081526020015b60405180910390f35b6100cf7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161009f565b6100956100f53660046107e4565b6102d2565b6100cf73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6101546101233660046107e4565b6000602081905290815260409020546001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b60405161009f93929190610815565b6100956101713660046107ba565b6103cf565b6101896101843660046107e4565b6104e1565b604080516001600160a01b03909316835260ff90911660208301520161009f565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148061020857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316145b156102145750806102cc565b6001600160a01b03838116600090815260208181526040808320815160608101909252805494851682529293909291830190600160a01b900460ff166001811115610261576102616107ff565b6001811115610272576102726107ff565b81529054600160a81b900460ff1660209182015281519082015191925060009161029c919061056a565b905080826040015160ff16600a6102b39190610954565b6102bd9086610960565b6102c79190610977565b925050505b92915050565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148061033057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b156103445750670de0b6b3a7640000919050565b6001600160a01b03828116600090815260208181526040808320815160608101909252805494851682529293909291830190600160a01b900460ff166001811115610391576103916107ff565b60018111156103a2576103a26107ff565b81529054600160a81b900460ff166020918201528151908201519192506103c89161056a565b9392505050565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148061042d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316145b156104395750806102cc565b6001600160a01b03838116600090815260208181526040808320815160608101909252805494851682529293909291830190600160a01b900460ff166001811115610486576104866107ff565b6001811115610497576104976107ff565b81529054600160a81b900460ff166020918201528151908201519192506000916104c1919061056a565b9050816040015160ff16600a6104d79190610954565b6102bd8286610960565b6001600160a01b0381811660009081526020818152604080832081516060810190925280549485168252929384938493909190830190600160a01b900460ff166001811115610532576105326107ff565b6001811115610543576105436107ff565b81529054600160a81b900460ff166020909101528051604090910151909590945092505050565b600080836001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cf9190610999565b90506000811361060957604051635190c3cb60e01b81526001600160a01b0385166004820152602481018290526044015b60405180910390fd5b600083600181111561061d5761061d6107ff565b036106295790506102cc565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6000908152602081815260408051606081019091527fd0d045a07f9a74a2c48a464add9b06f25f501dbdf5bd4dd5a7489f86f449adda80546001600160a01b03811683529192909190830190600160a01b900460ff1660018111156106a5576106a56107ff565b60018111156106b6576106b66107ff565b81529054600160a81b900460ff166020918201528151604080516350d25bcd60e01b815290519394506000936001600160a01b03909216926350d25bcd926004808401938290030181865afa158015610713573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107379190610999565b90506000811361077757604051635190c3cb60e01b815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee600482015260248101829052604401610600565b8061078a84670de0b6b3a7640000610960565b6107949190610977565b9695505050505050565b80356001600160a01b03811681146107b557600080fd5b919050565b600080604083850312156107cd57600080fd5b6107d68361079e565b946020939093013593505050565b6000602082840312156107f657600080fd5b6103c88261079e565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0384168152606081016002841061084357634e487b7160e01b600052602160045260246000fd5b83602083015260ff83166040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156108ab5781600019048211156108915761089161085a565b8085161561089e57918102915b93841c9390800290610875565b509250929050565b6000826108c2575060016102cc565b816108cf575060006102cc565b81600181146108e557600281146108ef5761090b565b60019150506102cc565b60ff8411156109005761090061085a565b50506001821b6102cc565b5060208310610133831016604e8410600b841016171561092e575081810a6102cc565b6109388383610870565b806000190482111561094c5761094c61085a565b029392505050565b60006103c883836108b3565b80820281158282048414176102cc576102cc61085a565b60008261099457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156109ab57600080fd5b505191905056fea2646970667358221220f25f4c9074380c53294a3169ad57bf4b48b189b30da2580b3d3534a777730e7664736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000cafeab8b01c74c2239ea9b2b0f6ab2dd409c6c1300000000000000000000000000000000000000000000000000000000000000070000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe8400000000000000000000000027f23c710dd3d878fe9393d93465fed1302f2ebd000000000000000000000000ae78736cd615f374d3085123a210448e74fc6393000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000cbb7c0000ab88b473b1f5afd9ef808440eed33bf000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000007000000000000000000000000773616e4d11a78f511299002da57a0a94577f1f400000000000000000000000086392dc19c0b719886221c78ab11eb8cf5c52812000000000000000000000000cc72039a141c6e34a779ef93aef5eb4c82a893c7000000000000000000000000536218f9e9eb48863970252233c8f271f554c2d0000000000000000000000000986b5e1e1755e3c2440e960477f25201b0a8bbd40000000000000000000000002665701293fcbeb223d11a08d826563edcce423a0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b84190000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638322fff21161005b5780638322fff2146100fa578063a341f1b114610115578063bbff4e5a14610163578063f11b81881461017657600080fd5b806355c40e66146100825780635d8471e4146100a8578063696ae5e3146100e7575b600080fd5b6100956100903660046107ba565b6101aa565b6040519081526020015b60405180910390f35b6100cf7f000000000000000000000000cafeab8b01c74c2239ea9b2b0f6ab2dd409c6c1381565b6040516001600160a01b03909116815260200161009f565b6100956100f53660046107e4565b6102d2565b6100cf73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6101546101233660046107e4565b6000602081905290815260409020546001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b60405161009f93929190610815565b6100956101713660046107ba565b6103cf565b6101896101843660046107e4565b6104e1565b604080516001600160a01b03909316835260ff90911660208301520161009f565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148061020857507f000000000000000000000000cafeab8b01c74c2239ea9b2b0f6ab2dd409c6c136001600160a01b0316836001600160a01b0316145b156102145750806102cc565b6001600160a01b03838116600090815260208181526040808320815160608101909252805494851682529293909291830190600160a01b900460ff166001811115610261576102616107ff565b6001811115610272576102726107ff565b81529054600160a81b900460ff1660209182015281519082015191925060009161029c919061056a565b905080826040015160ff16600a6102b39190610954565b6102bd9086610960565b6102c79190610977565b925050505b92915050565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148061033057507f000000000000000000000000cafeab8b01c74c2239ea9b2b0f6ab2dd409c6c136001600160a01b0316826001600160a01b0316145b156103445750670de0b6b3a7640000919050565b6001600160a01b03828116600090815260208181526040808320815160608101909252805494851682529293909291830190600160a01b900460ff166001811115610391576103916107ff565b60018111156103a2576103a26107ff565b81529054600160a81b900460ff166020918201528151908201519192506103c89161056a565b9392505050565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148061042d57507f000000000000000000000000cafeab8b01c74c2239ea9b2b0f6ab2dd409c6c136001600160a01b0316836001600160a01b0316145b156104395750806102cc565b6001600160a01b03838116600090815260208181526040808320815160608101909252805494851682529293909291830190600160a01b900460ff166001811115610486576104866107ff565b6001811115610497576104976107ff565b81529054600160a81b900460ff166020918201528151908201519192506000916104c1919061056a565b9050816040015160ff16600a6104d79190610954565b6102bd8286610960565b6001600160a01b0381811660009081526020818152604080832081516060810190925280549485168252929384938493909190830190600160a01b900460ff166001811115610532576105326107ff565b6001811115610543576105436107ff565b81529054600160a81b900460ff166020909101528051604090910151909590945092505050565b600080836001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cf9190610999565b90506000811361060957604051635190c3cb60e01b81526001600160a01b0385166004820152602481018290526044015b60405180910390fd5b600083600181111561061d5761061d6107ff565b036106295790506102cc565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6000908152602081815260408051606081019091527fd0d045a07f9a74a2c48a464add9b06f25f501dbdf5bd4dd5a7489f86f449adda80546001600160a01b03811683529192909190830190600160a01b900460ff1660018111156106a5576106a56107ff565b60018111156106b6576106b66107ff565b81529054600160a81b900460ff166020918201528151604080516350d25bcd60e01b815290519394506000936001600160a01b03909216926350d25bcd926004808401938290030181865afa158015610713573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107379190610999565b90506000811361077757604051635190c3cb60e01b815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee600482015260248101829052604401610600565b8061078a84670de0b6b3a7640000610960565b6107949190610977565b9695505050505050565b80356001600160a01b03811681146107b557600080fd5b919050565b600080604083850312156107cd57600080fd5b6107d68361079e565b946020939093013593505050565b6000602082840312156107f657600080fd5b6103c88261079e565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0384168152606081016002841061084357634e487b7160e01b600052602160045260246000fd5b83602083015260ff83166040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156108ab5781600019048211156108915761089161085a565b8085161561089e57918102915b93841c9390800290610875565b509250929050565b6000826108c2575060016102cc565b816108cf575060006102cc565b81600181146108e557600281146108ef5761090b565b60019150506102cc565b60ff8411156109005761090061085a565b50506001821b6102cc565b5060208310610133831016604e8410600b841016171561092e575081810a6102cc565b6109388383610870565b806000190482111561094c5761094c61085a565b029392505050565b60006103c883836108b3565b80820281158282048414176102cc576102cc61085a565b60008261099457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156109ab57600080fd5b505191905056fea2646970667358221220f25f4c9074380c53294a3169ad57bf4b48b189b30da2580b3d3534a777730e7664736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000cafeab8b01c74c2239ea9b2b0f6ab2dd409c6c1300000000000000000000000000000000000000000000000000000000000000070000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe8400000000000000000000000027f23c710dd3d878fe9393d93465fed1302f2ebd000000000000000000000000ae78736cd615f374d3085123a210448e74fc6393000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000cbb7c0000ab88b473b1f5afd9ef808440eed33bf000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000007000000000000000000000000773616e4d11a78f511299002da57a0a94577f1f400000000000000000000000086392dc19c0b719886221c78ab11eb8cf5c52812000000000000000000000000cc72039a141c6e34a779ef93aef5eb4c82a893c7000000000000000000000000536218f9e9eb48863970252233c8f271f554c2d0000000000000000000000000986b5e1e1755e3c2440e960477f25201b0a8bbd40000000000000000000000002665701293fcbeb223d11a08d826563edcce423a0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b84190000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012
-----Decoded View---------------
Arg [0] : _assetAddresses (address[]): 0x6B175474E89094C44Da98b954EedeAC495271d0F,0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84,0x27F23c710dD3d878FE9393d93465FeD1302f2EbD,0xae78736Cd615f374D3085123A210448E74Fc6393,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf,0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
Arg [1] : _assetAggregators (address[]): 0x773616E4d11A78F511299002da57A0a94577F1f4,0x86392dC19c0b719886221c78AB11eb8Cf5c52812,0xCc72039A141c6e34a779eF93AEF5eB4C82A893c7,0x536218f9E9Eb48863970252233c8F271f554C2d0,0x986b5E1e1755e3C2440e960477f25201B0a8bbD4,0x2665701293fCbEB223D11A08D826563EDcCE423A,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
Arg [2] : _aggregatorTypes (uint8[]): 0,0,0,0,0,1,1
Arg [3] : _assetDecimals (uint8[]): 18,18,18,18,6,8,18
Arg [4] : _safeTracker (address): 0xcafeaB8B01C74c2239eA9b2B0F6aB2dD409c6c13
-----Encoded View---------------
37 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000002a0
Arg [3] : 00000000000000000000000000000000000000000000000000000000000003a0
Arg [4] : 000000000000000000000000cafeab8b01c74c2239ea9b2b0f6ab2dd409c6c13
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [6] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [7] : 000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe84
Arg [8] : 00000000000000000000000027f23c710dd3d878fe9393d93465fed1302f2ebd
Arg [9] : 000000000000000000000000ae78736cd615f374d3085123a210448e74fc6393
Arg [10] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [11] : 000000000000000000000000cbb7c0000ab88b473b1f5afd9ef808440eed33bf
Arg [12] : 000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [14] : 000000000000000000000000773616e4d11a78f511299002da57a0a94577f1f4
Arg [15] : 00000000000000000000000086392dc19c0b719886221c78ab11eb8cf5c52812
Arg [16] : 000000000000000000000000cc72039a141c6e34a779ef93aef5eb4c82a893c7
Arg [17] : 000000000000000000000000536218f9e9eb48863970252233c8f271f554c2d0
Arg [18] : 000000000000000000000000986b5e1e1755e3c2440e960477f25201b0a8bbd4
Arg [19] : 0000000000000000000000002665701293fcbeb223d11a08d826563edcce423a
Arg [20] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Arg [21] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [23] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [24] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [25] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [26] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [27] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [28] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [29] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [30] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [31] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [32] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [33] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [34] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [35] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [36] : 0000000000000000000000000000000000000000000000000000000000000012
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.