Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
21162814 | 73 days ago | Contract Creation | 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
[ 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.