Source Code
Overview
ETH Balance
ETH Value
$0.00Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 28323409 | 1 hr ago | 0 ETH | ||||
| 28323409 | 1 hr ago | 0 ETH | ||||
| 28323409 | 1 hr ago | 0 ETH | ||||
| 28323390 | 1 hr ago | 0 ETH | ||||
| 28323390 | 1 hr ago | 0 ETH | ||||
| 28323390 | 1 hr ago | 0 ETH | ||||
| 28323373 | 1 hr ago | 0 ETH | ||||
| 28323373 | 1 hr ago | 0 ETH | ||||
| 28323373 | 1 hr ago | 0 ETH | ||||
| 28323373 | 1 hr ago | 0 ETH | ||||
| 28323373 | 1 hr ago | 0 ETH | ||||
| 28323373 | 1 hr ago | 0 ETH | ||||
| 28323354 | 1 hr ago | 0 ETH | ||||
| 28323354 | 1 hr ago | 0 ETH | ||||
| 28323354 | 1 hr ago | 0 ETH | ||||
| 28323353 | 1 hr ago | 0 ETH | ||||
| 28323353 | 1 hr ago | 0 ETH | ||||
| 28323353 | 1 hr ago | 0 ETH | ||||
| 28323335 | 1 hr ago | 0 ETH | ||||
| 28323335 | 1 hr ago | 0 ETH | ||||
| 28323335 | 1 hr ago | 0 ETH | ||||
| 28323335 | 1 hr ago | 0 ETH | ||||
| 28323335 | 1 hr ago | 0 ETH | ||||
| 28323335 | 1 hr ago | 0 ETH | ||||
| 28323317 | 1 hr ago | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
IndexPriceFeed
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../interfaces/IIndexPriceFeed.sol";
import "../interfaces/IAddressesProvider.sol";
import "../interfaces/IRoleManager.sol";
contract IndexPriceFeed is IIndexPriceFeed {
IAddressesProvider public immutable ADDRESS_PROVIDER;
uint256 public immutable PRICE_DECIMALS = 30;
mapping(address => uint256) public assetPrices;
address public executor;
constructor(
IAddressesProvider addressProvider,
address[] memory assets,
uint256[] memory prices,
address _executor
) {
ADDRESS_PROVIDER = addressProvider;
_setAssetPrices(assets, prices);
executor = _executor;
}
modifier onlyExecutorOrPoolAdmin() {
require(executor == msg.sender || IRoleManager(ADDRESS_PROVIDER.roleManager()).isPoolAdmin(msg.sender), "oep");
_;
}
modifier onlyPoolAdmin() {
require(
IRoleManager(ADDRESS_PROVIDER.roleManager()).isPoolAdmin(msg.sender),
"onlyPoolAdmin"
);
_;
}
function updateExecutorAddress(address _executor) external onlyPoolAdmin {
address oldAddress = executor;
executor = _executor;
emit UpdateExecutorAddress(msg.sender, oldAddress, _executor);
}
function decimals() public pure override returns (uint256) {
return PRICE_DECIMALS;
}
function updatePrice(
address[] calldata tokens,
uint256[] memory prices
) external override onlyExecutorOrPoolAdmin {
_setAssetPrices(tokens, prices);
}
function getPrice(address token) external view override returns (uint256) {
return assetPrices[token];
}
function getPriceSafely(address token) external view override returns (uint256) {
return assetPrices[token];
}
function _setAssetPrices(address[] memory assets, uint256[] memory prices) private {
require(assets.length == prices.length, "inconsistent params length");
for (uint256 i = 0; i < assets.length; i++) {
assetPrices[assets[i]] = prices[i];
emit PriceUpdate(assets[i], prices[i], msg.sender);
}
}
}// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.0;
interface IAddressesProvider {
event AddressSet(bytes32 indexed id, address indexed oldAddress, address indexed newAddress);
function WETH() external view returns (address);
function timelock() external view returns (address);
function priceOracle() external view returns (address);
function indexPriceOracle() external view returns (address);
function fundingRate() external view returns (address);
function executionLogic() external view returns (address);
function liquidationLogic() external view returns (address);
function roleManager() external view returns (address);
function backtracker() external view returns (address);
}// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
import "./IPriceFeed.sol";
interface IIndexPriceFeed is IPriceFeed {
event UpdateExecutorAddress(address sender, address oldAddress, address newAddress);
event PriceUpdate(address asset, uint256 price, address sender);
function updatePrice(address[] calldata tokens, uint256[] memory prices) external;
}// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
interface IPriceFeed {
event PriceAgeUpdated(uint256 oldAge, uint256 newAge);
function getPrice(address token) external view returns (uint256);
function getPriceSafely(address token) external view returns (uint256);
function decimals() external pure returns (uint256);
}// SPDX-License-Identifier: AGPL-3.0
pragma solidity ^0.8.0;
interface IRoleManager {
function setRoleAdmin(bytes32 role, bytes32 adminRole) external;
function isAdmin(address) external view returns (bool);
function isPoolAdmin(address poolAdmin) external view returns (bool);
function isOperator(address operator) external view returns (bool);
function isTreasurer(address treasurer) external view returns (bool);
function isKeeper(address) external view returns (bool);
function isBlackList(address account) external view returns (bool);
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"viaIR": true,
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract IAddressesProvider","name":"addressProvider","type":"address"},{"internalType":"address[]","name":"assets","type":"address[]"},{"internalType":"uint256[]","name":"prices","type":"uint256[]"},{"internalType":"address","name":"_executor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldAge","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newAge","type":"uint256"}],"name":"PriceAgeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"}],"name":"PriceUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"oldAddress","type":"address"},{"indexed":false,"internalType":"address","name":"newAddress","type":"address"}],"name":"UpdateExecutorAddress","type":"event"},{"inputs":[],"name":"ADDRESS_PROVIDER","outputs":[{"internalType":"contract IAddressesProvider","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICE_DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"assetPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"executor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getPriceSafely","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_executor","type":"address"}],"name":"updateExecutorAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"prices","type":"uint256[]"}],"name":"updatePrice","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
604060c0815234620002685762000a5b803803806200001e8162000288565b928339810190608081830312620002685780516001600160a01b0393909290848416840362000268576020838101516001600160401b0390818111620002685785019084601f830112156200026857815191620000856200007f84620002c4565b62000288565b92848085838152019160051b83010191878311620002685785809101915b8383106200026d575050505083860151908111620002685785019380601f8601121562000268578451620000db6200007f82620002c4565b95848088848152019260051b820101928311620002685784809101915b838310620002575750505050620001136060809601620002dc565b95601e60a0526080528051845103620002145760005b8151811015620001d1576200013f8186620002f1565b51886200014d8385620002f1565b51166000526000845284600020557fc37a77b91cc3fc2d0e4b43fd2f347ec67adda10e39215de4742836cc3e42c97a86896200018a8486620002f1565b5116620001988489620002f1565b518751918252868201523387820152a16000198114620001bb5760010162000129565b634e487b7160e01b600052601160045260246000fd5b600180546001600160a01b031916888a16179055835161073e90816200031d82396080518181816102f20152818161044f0152610598015260a051816105df0152f35b50606491519062461bcd60e51b82526004820152601a60248201527f696e636f6e73697374656e7420706172616d73206c656e6774680000000000006044820152fd5b8251815291810191859101620000f8565b600080fd5b81906200027a84620002dc565b8152019101908590620000a3565b6040519190601f01601f191682016001600160401b03811183821017620002ae57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111620002ae5760051b60200190565b51906001600160a01b03821682036200026857565b8051821015620003065760209160051b010190565b634e487b7160e01b600052603260045260246000fdfe608060408181526004908136101561001657600080fd5b600091823560e01c9384631848effa1461058457508363313ce5671461008a57836332343cec1461041657836341976e09146104115783634bb34153146104115783635e9a523c146103db57836368ae0944146100ba57508263c34c08e51461008f57505063f1a640f81461008a57600080fd5b6105c7565b346100b657816003193601126100b65760015490516001600160a01b039091168152602090f35b5080fd5b9250346100b657806003193601126100b65782359067ffffffffffffffff938483116103d757366023840112156103d75782810135948086116103d357602492838760051b8601013681116103cf5784359283116103cf57366023840112156103cf57828401359061012b8261068f565b9361013884519586610657565b828552602092878487019160051b830101913683116103cb5788859101915b8383106103bb575050505060018060a01b039060019782895416331480156102e0575b156102b8576101888b61068f565b9a61019586519c8d610657565b8b528701838b015b82821061029c57505050885184510361025a57869888995b6101bd578880f35b80518a1015610256576101d08a866106de565b51826101dc8c846106de565b51168a52898452848a20557fc37a77b91cc3fc2d0e4b43fd2f347ec67adda10e39215de4742836cc3e42c97a6060836102158d856106de565b51166102218d896106de565b518751918252868201523387820152a16000198a146102445798870198876101b5565b634e487b7160e01b8952601186528689fd5b8880f35b825162461bcd60e51b8152808601839052601a818801527f696e636f6e73697374656e7420706172616d73206c656e6774680000000000006044820152606490fd5b813584811681036102b457815290840190840161019d565b8b80fd5b845162461bcd60e51b81528088018590526003818a01526206f65760ec1b6044820152606490fd5b50845162435da560e01b8152848189817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561038457849186918d9161038e575b508751637be53ca160e01b8152338b8201529283918c918391165afa908115610384578b91610357575b5061017a565b6103779150853d871161037d575b61036f8183610657565b8101906106c6565b38610351565b503d610365565b86513d8d823e3d90fd5b6103ae9150823d84116103b4575b6103a68183610657565b8101906106a7565b38610327565b503d61039c565b8235815291810191859101610157565b8a80fd5b8680fd5b8480fd5b8380fd5b50346100b65760203660031901126100b65760209181906001600160a01b03610402610607565b16815280845220549051908152f35b61061d565b3461058057602091826003193601126103d757610431610607565b815162435da560e01b815290936001600160a01b03939091828183817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561055957859184918991610563575b506024865180948193637be53ca160e01b83523388840152165afa90811561055957879161053c575b501561050b5750917f49aef47427a17b78024aa06f13d2c150bd483250f907caf46db8d81ef2331734939160609382600154941692836bffffffffffffffffffffffff60a01b8616176001558251943386521690840152820152a180f35b915162461bcd60e51b815291820152600d60248201526c37b7363ca837b7b620b236b4b760991b6044820152606490fd5b6105539150833d851161037d5761036f8183610657565b876104ad565b84513d89823e3d90fd5b61057a9150823d84116103b4576103a68183610657565b89610484565b8280fd5b8390346100b657816003193601126100b6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346106025760003660031901126106025760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600080fd5b600435906001600160a01b038216820361060257565b34610602576020366003190112610602576001600160a01b0361063e610607565b1660005260006020526020604060002054604051908152f35b90601f8019910116810190811067ffffffffffffffff82111761067957604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116106795760051b60200190565b9081602091031261060257516001600160a01b03811681036106025790565b90816020910312610602575180151581036106025790565b80518210156106f25760209160051b010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202ae72775afa5d70a6f9f93495ddf8cf82f4c9f4d08afd6aba99fa3144ad4c03c64736f6c6343000813003300000000000000000000000034df93f37f327757684ae502b47c787c38465037000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060408181526004908136101561001657600080fd5b600091823560e01c9384631848effa1461058457508363313ce5671461008a57836332343cec1461041657836341976e09146104115783634bb34153146104115783635e9a523c146103db57836368ae0944146100ba57508263c34c08e51461008f57505063f1a640f81461008a57600080fd5b6105c7565b346100b657816003193601126100b65760015490516001600160a01b039091168152602090f35b5080fd5b9250346100b657806003193601126100b65782359067ffffffffffffffff938483116103d757366023840112156103d75782810135948086116103d357602492838760051b8601013681116103cf5784359283116103cf57366023840112156103cf57828401359061012b8261068f565b9361013884519586610657565b828552602092878487019160051b830101913683116103cb5788859101915b8383106103bb575050505060018060a01b039060019782895416331480156102e0575b156102b8576101888b61068f565b9a61019586519c8d610657565b8b528701838b015b82821061029c57505050885184510361025a57869888995b6101bd578880f35b80518a1015610256576101d08a866106de565b51826101dc8c846106de565b51168a52898452848a20557fc37a77b91cc3fc2d0e4b43fd2f347ec67adda10e39215de4742836cc3e42c97a6060836102158d856106de565b51166102218d896106de565b518751918252868201523387820152a16000198a146102445798870198876101b5565b634e487b7160e01b8952601186528689fd5b8880f35b825162461bcd60e51b8152808601839052601a818801527f696e636f6e73697374656e7420706172616d73206c656e6774680000000000006044820152606490fd5b813584811681036102b457815290840190840161019d565b8b80fd5b845162461bcd60e51b81528088018590526003818a01526206f65760ec1b6044820152606490fd5b50845162435da560e01b8152848189817f00000000000000000000000034df93f37f327757684ae502b47c787c3846503788165afa90811561038457849186918d9161038e575b508751637be53ca160e01b8152338b8201529283918c918391165afa908115610384578b91610357575b5061017a565b6103779150853d871161037d575b61036f8183610657565b8101906106c6565b38610351565b503d610365565b86513d8d823e3d90fd5b6103ae9150823d84116103b4575b6103a68183610657565b8101906106a7565b38610327565b503d61039c565b8235815291810191859101610157565b8a80fd5b8680fd5b8480fd5b8380fd5b50346100b65760203660031901126100b65760209181906001600160a01b03610402610607565b16815280845220549051908152f35b61061d565b3461058057602091826003193601126103d757610431610607565b815162435da560e01b815290936001600160a01b03939091828183817f00000000000000000000000034df93f37f327757684ae502b47c787c3846503789165afa90811561055957859184918991610563575b506024865180948193637be53ca160e01b83523388840152165afa90811561055957879161053c575b501561050b5750917f49aef47427a17b78024aa06f13d2c150bd483250f907caf46db8d81ef2331734939160609382600154941692836bffffffffffffffffffffffff60a01b8616176001558251943386521690840152820152a180f35b915162461bcd60e51b815291820152600d60248201526c37b7363ca837b7b620b236b4b760991b6044820152606490fd5b6105539150833d851161037d5761036f8183610657565b876104ad565b84513d89823e3d90fd5b61057a9150823d84116103b4576103a68183610657565b89610484565b8280fd5b8390346100b657816003193601126100b6577f00000000000000000000000034df93f37f327757684ae502b47c787c384650376001600160a01b03168152602090f35b346106025760003660031901126106025760206040517f000000000000000000000000000000000000000000000000000000000000001e8152f35b600080fd5b600435906001600160a01b038216820361060257565b34610602576020366003190112610602576001600160a01b0361063e610607565b1660005260006020526020604060002054604051908152f35b90601f8019910116810190811067ffffffffffffffff82111761067957604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116106795760051b60200190565b9081602091031261060257516001600160a01b03811681036106025790565b90816020910312610602575180151581036106025790565b80518210156106f25760209160051b010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212202ae72775afa5d70a6f9f93495ddf8cf82f4c9f4d08afd6aba99fa3144ad4c03c64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000034df93f37f327757684ae502b47c787c38465037000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : addressProvider (address): 0x34df93f37F327757684Ae502b47C787C38465037
Arg [1] : assets (address[]):
Arg [2] : prices (uint256[]):
Arg [3] : _executor (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000034df93f37f327757684ae502b47c787c38465037
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.