OrionConfig
OrionConfig
This contract is responsible for configuring the Orion protocol.
underlyingAsset
contract IERC20 underlyingAsset
Underlying asset address
internalStatesOrchestrator
address internalStatesOrchestrator
Address of the internal states orchestrator
liquidityOrchestrator
address liquidityOrchestrator
Address of the liquidity orchestrator
transparentVaultFactory
address transparentVaultFactory
Address of the transparent vault factory
priceAdapterRegistry
address priceAdapterRegistry
Address of the price adapter registry
curatorIntentDecimals
uint8 curatorIntentDecimals
Decimals for curator intent
priceAdapterDecimals
uint8 priceAdapterDecimals
Decimals for price adapter
riskFreeRate
uint16 riskFreeRate
Risk-free rate in basis points. Same decimals as BASIS_POINTS_FACTOR
tokenDecimals
mapping(address => uint8) tokenDecimals
Mapping of token address to its decimals
onlyFactories
modifier onlyFactories()
constructor
constructor(address initialOwner, address underlyingAsset_) public
The constructor sets the underlying asset for the protocol
_The underlying asset is automatically added to the investment universe whitelist because:
- Curators may decide to be underleveraged in their active positions;
- removeWhitelistedAsset could trigger forced liquidations._
Parameters
| Name | Type | Description |
|---|---|---|
| initialOwner | address | The address that will own this contract |
| underlyingAsset_ | address | The address of the underlying asset contract |
setInternalStatesOrchestrator
function setInternalStatesOrchestrator(address orchestrator) external
Sets the internal states orchestrator for the protocol
Can only be called by the contract owner
Parameters
| Name | Type | Description |
|---|---|---|
| orchestrator | address | The address of the internal states orchestrator |
setLiquidityOrchestrator
function setLiquidityOrchestrator(address orchestrator) external
Sets the liquidity orchestrator for the protocol
Can only be called by the contract owner
Parameters
| Name | Type | Description |
|---|---|---|
| orchestrator | address | The address of the liquidity orchestrator |
setVaultFactory
function setVaultFactory(address transparentFactory) external
Sets the vault factory for the protocol
Can only be called by the contract owner
Parameters
| Name | Type | Description |
|---|---|---|
| transparentFactory | address | The address of the transparent vault factory |
setPriceAdapterRegistry
function setPriceAdapterRegistry(address registry) external
Sets the price adapter registry for the protocol
Can only be called by the contract owner
Parameters
| Name | Type | Description |
|---|---|---|
| registry | address | The address of the price adapter registry |
setProtocolRiskFreeRate
function setProtocolRiskFreeRate(uint16 _riskFreeRate) external
Sets the protocol risk-free rate
Can only be called by the contract owner
Parameters
| Name | Type | Description |
|---|---|---|
| _riskFreeRate | uint16 |
addWhitelistedAsset
function addWhitelistedAsset(address asset, address priceAdapter, address executionAdapter) external
Adds an asset to the whitelist
Can only be called by the contract owner
Parameters
| Name | Type | Description |
|---|---|---|
| asset | address | The address of the asset to whitelist |
| priceAdapter | address | The address of the price adapter |
| executionAdapter | address | The address of the execution adapter |
removeWhitelistedAsset
function removeWhitelistedAsset(address asset) external
Removes an asset from the whitelist
Can only be called by the contract owner
Parameters
| Name | Type | Description |
|---|---|---|
| asset | address | The address of the asset to remove from whitelist |
whitelistedAssetsLength
function whitelistedAssetsLength() external view returns (uint16)
Returns the total number of whitelisted assets
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint16 | The count of whitelisted assets |
getAllWhitelistedAssets
function getAllWhitelistedAssets() external view returns (address[] assets)
Returns all whitelisted assets
Return Values
| Name | Type | Description |
|---|---|---|
| assets | address[] | An array of whitelisted asset addresses |
isWhitelisted
function isWhitelisted(address asset) external view returns (bool)
Checks if an asset is whitelisted
Parameters
| Name | Type | Description |
|---|---|---|
| asset | address | The address of the asset to check |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | bool | True if the asset is whitelisted, false otherwise |
addWhitelistedVaultOwner
function addWhitelistedVaultOwner(address vaultOwner) external
Adds a vault owner to the whitelist
Can only be called by the contract owner
Parameters
| Name | Type | Description |
|---|---|---|
| vaultOwner | address | The address of the vault owner to whitelist |
isWhitelistedVaultOwner
function isWhitelistedVaultOwner(address vaultOwner) external view returns (bool)
Checks if a vault owner is whitelisted
Parameters
| Name | Type | Description |
|---|---|---|
| vaultOwner | address | The address of the vault owner to check |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | bool | True if the vault owner is whitelisted, false otherwise |
addOrionVault
function addOrionVault(address vault, enum EventsLib.VaultType vaultType) external
Adds a new Orion vault to the protocol registry
Only callable by the vault factories contracts
Parameters
| Name | Type | Description |
|---|---|---|
| vault | address | The address of the vault to add to the registry |
| vaultType | enum EventsLib.VaultType | Whether the vault is encrypted or transparent |
removeOrionVault
function removeOrionVault(address vault) external
Deregisters an Orion vault from the protocol's registry
Callable exclusively by the contract owner. This action does not destroy the vault itself; it merely disconnects the vault from the protocol, which causes the share price to stale and renders curator intents inactive.
Parameters
| Name | Type | Description |
|---|---|---|
| vault | address | The address of the vault to be removed from the registry |
getAllOrionVaults
function getAllOrionVaults(enum EventsLib.VaultType vaultType) external view returns (address[])
Returns all Orion vault addresses
Parameters
| Name | Type | Description |
|---|---|---|
| vaultType | enum EventsLib.VaultType | Whether to return encrypted or transparent vaults |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | address[] | An array of Orion vault addresses |
isOrionVault
function isOrionVault(address vault) external view returns (bool)
Checks if an address is a registered Orion vault
This function checks both encrypted and transparent vaults
Parameters
| Name | Type | Description |
|---|---|---|
| vault | address | The address of the vault to check |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | bool | True if the address is a registered Orion vault, false otherwise |
isDecommissioningVault
function isDecommissioningVault(address vault) external view returns (bool)
Checks if an address is a decommissioning Orion vault
Parameters
| Name | Type | Description |
|---|---|---|
| vault | address | The address of the vault to check |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | bool | True if the address is a decommissioning Orion vault, false otherwise |
isDecommissionedVault
function isDecommissionedVault(address vault) external view returns (bool)
Checks if an address is a decommissioned Orion vault
Parameters
| Name | Type | Description |
|---|---|---|
| vault | address | The address of the vault to check |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | bool | True if the address is a decommissioned Orion vault, false otherwise |
completeVaultDecommissioning
function completeVaultDecommissioning(address vault) external
Completes the decommissioning process for a vault
This function removes the vault from the active vault lists and moves it to decommissioned vaults Only callable by the liquidity orchestrator after vault liquidation is complete
Parameters
| Name | Type | Description |
|---|---|---|
| vault | address | The address of the vault to complete decommissioning for |
isSystemIdle
function isSystemIdle() public view returns (bool)
Checks if the system is idle
This function checks if both the liquidity orchestrator and the internal states orchestrator are idle
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | bool | True if the system is idle, false otherwise |
getTokenDecimals
function getTokenDecimals(address token) external view returns (uint8)
Returns the number of decimals for a given token
This function returns the stored decimals for whitelisted tokens
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The address of the token |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint8 | The number of decimals for the token |