PriceAdapterRegistry
PriceAdapterRegistry
Price Adapter Registry using UUPS upgradeable pattern
This contract allows the configuration of price adapters for various assets in the investment universe.
configAddress
address configAddress
Orion Config contract address
priceAdapterDecimals
uint8 priceAdapterDecimals
Price Adapter Precision
adapterOf
mapping(address => contract IPriceAdapter) adapterOf
Mapping of asset addresses to their corresponding price adapters
onlyConfig
modifier onlyConfig()
constructor
constructor() public
Constructor that disables initializers for the implementation contract
initialize
function initialize(address initialOwner_, address configAddress_) public
Initializer function (replaces constructor)
Parameters
| Name | Type | Description |
|---|---|---|
| initialOwner_ | address | The address of the initial owner |
| configAddress_ | address | The address of the OrionConfig contract |
setPriceAdapter
function setPriceAdapter(address asset, contract IPriceAdapter adapter) external
Register or replace the price adapter for an asset.
Parameters
| Name | Type | Description |
|---|---|---|
| asset | address | The address of the asset. |
| adapter | contract IPriceAdapter | The price adapter for the asset. |
getPrice
function getPrice(address asset) external view returns (uint256)
Returns the price of the given asset via its assigned price adapter.
The asset shall be whitelisted in the OrionConfig contract,
therefore assigned an adapter in adapterOf.
Returned value is always expected to have priceAdapterDecimals decimals.
Parameters
| Name | Type | Description |
|---|---|---|
| asset | address | The address of the asset. |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint256 | The price of the asset, normalized to priceAdapterDecimals decimals. |
_authorizeUpgrade
function _authorizeUpgrade(address newImplementation) internal
Authorizes an upgrade to a new implementation
This function is required by UUPS and can only be called by the owner
Parameters
| Name | Type | Description |
|---|---|---|
| newImplementation | address | The address of the new implementation contract |