ILiquidityOrchestrator
ILiquidityOrchestrator
Interface for the liquidity orchestrator
LiquidityUpkeepPhase
Upkeep phase enum for liquidity orchestration
enum LiquidityUpkeepPhase {
Idle,
StateCommitment,
SellingLeg,
BuyingLeg,
ProcessVaultOperations
}
VaultStateData
Struct to hold vault state data
struct VaultStateData {
uint8[] feeTypes;
uint16[] performanceFees;
uint16[] managementFees;
uint256[] highWaterMarks;
uint256[] pendingRedeems;
uint256[] pendingDeposits;
uint256[] totalSupplies;
address[][] portfolioTokens;
uint256[][] portfolioShares;
address[][] intentTokens;
uint32[][] intentWeights;
}
PublicValuesStruct
struct PublicValuesStruct {
bytes32 inputCommitment;
bytes32 outputCommitment;
}
StatesStruct
struct StatesStruct {
struct ILiquidityOrchestrator.VaultState[] vaults;
struct ILiquidityOrchestrator.SellLegOrders sellLeg;
struct ILiquidityOrchestrator.BuyLegOrders buyLeg;
uint256 bufferAmount;
uint256 epochProtocolFees;
}
VaultState
struct VaultState {
uint256 totalAssetsForRedeem;
uint256 totalAssetsForDeposit;
uint256 finalTotalAssets;
uint256 managementFee;
uint256 performanceFee;
address[] tokens;
uint256[] shares;
}
SellLegOrders
struct SellLegOrders {
address[] sellingTokens;
uint256[] sellingAmounts;
uint256[] sellingEstimatedUnderlyingAmounts;
}
BuyLegOrders
struct BuyLegOrders {
address[] buyingTokens;
uint256[] buyingAmounts;
uint256[] buyingEstimatedUnderlyingAmounts;
}
currentPhase
function currentPhase() external view returns (enum ILiquidityOrchestrator.LiquidityUpkeepPhase)
Returns the current upkeep phase
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | enum ILiquidityOrchestrator.LiquidityUpkeepPhase | The current LiquidityUpkeepPhase |
targetBufferRatio
function targetBufferRatio() external view returns (uint256)
Returns the target buffer ratio
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint256 | The target buffer ratio |
slippageTolerance
function slippageTolerance() external view returns (uint256)
Returns the slippage tolerance
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint256 | The slippage tolerance |
bufferAmount
function bufferAmount() external view returns (uint256)
Returns the current buffer amount
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint256 | The current buffer amount |
pendingProtocolFees
function pendingProtocolFees() external view returns (uint256)
Returns the pending protocol fees
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint256 | The pending protocol fees |
epochDuration
function epochDuration() external view returns (uint32)
Returns the epoch duration
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint32 | The epoch duration in seconds |
updateEpochDuration
function updateEpochDuration(uint32 newEpochDuration) external
Updates the epoch duration
Parameters
| Name | Type | Description |
|---|---|---|
| newEpochDuration | uint32 | The new epoch duration in seconds |
EpochStateView
Struct representing the full epoch state view
This struct contains all epoch state data in a returnable format
struct EpochStateView {
address[] vaultsEpoch;
uint16 activeVFeeCoefficient;
uint16 activeRsFeeCoefficient;
struct IOrionVault.FeeModel[] vaultFeeModels;
bytes32 epochStateCommitment;
}
getEpochState
function getEpochState() external view returns (struct ILiquidityOrchestrator.EpochStateView)
Returns the full epoch state
Returns all epoch state data in a single struct. Use this instead of individual getters.
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | struct ILiquidityOrchestrator.EpochStateView | The complete epoch state view |
getFailedEpochTokens
function getFailedEpochTokens() external view returns (address[])
Returns tokens that failed during the current epoch's sell/buy execution
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | address[] | List of token addresses that failed |
getAssetPrices
function getAssetPrices(address[] assets) external view returns (uint256[] assetPrices)
Gets asset prices for the epoch
Parameters
| Name | Type | Description |
|---|---|---|
| assets | address[] | Array of asset addresses |
Return Values
| Name | Type | Description |
|---|---|---|
| assetPrices | uint256[] | Array of asset prices |
updateExecutionMinibatchSize
function updateExecutionMinibatchSize(uint8 _executionMinibatchSize) external
Updates the execution minibatch size
Parameters
| Name | Type | Description |
|---|---|---|
| _executionMinibatchSize | uint8 | The new execution minibatch size |
updateMinibatchSize
function updateMinibatchSize(uint8 _minibatchSize) external
Updates the minibatch size for fulfill deposit and redeem processing
Parameters
| Name | Type | Description |
|---|---|---|
| _minibatchSize | uint8 | The new minibatch size |
updateAutomationRegistry
function updateAutomationRegistry(address newAutomationRegistry) external
Updates the Chainlink Automation Registry address
Parameters
| Name | Type | Description |
|---|---|---|
| newAutomationRegistry | address | The new automation registry address |
updateVerifier
function updateVerifier(address newVerifier) external
Updates the verifier contract address
Parameters
| Name | Type | Description |
|---|---|---|
| newVerifier | address | The address of the new verifier contract |
updateVKey
function updateVKey(bytes32 newvKey) external
Updates the internal state orchestrator verification key
Parameters
| Name | Type | Description |
|---|---|---|
| newvKey | bytes32 | The new verification key |
setTargetBufferRatio
function setTargetBufferRatio(uint256 _targetBufferRatio) external
Sets the target buffer ratio
Parameters
| Name | Type | Description |
|---|---|---|
| _targetBufferRatio | uint256 | The new target buffer ratio |
setSlippageTolerance
function setSlippageTolerance(uint256 _slippageTolerance) external
Sets the slippage tolerance
Parameters
| Name | Type | Description |
|---|---|---|
| _slippageTolerance | uint256 | The new slippage tolerance |
claimProtocolFees
function claimProtocolFees(uint256 amount) external
Claim protocol fees with specified amount
Called by the Owner to claim a specific amount of protocol fees
Parameters
| Name | Type | Description |
|---|---|---|
| amount | uint256 | The amount of protocol fees to claim |
setExecutionAdapter
function setExecutionAdapter(address asset, contract IExecutionAdapter adapter) external
Register or replace the execution adapter for an asset.
Can only be called by the Orion Config contract.
Parameters
| Name | Type | Description |
|---|---|---|
| asset | address | The address of the asset. |
| adapter | contract IExecutionAdapter | The execution adapter for the asset. |
returnDepositFunds
function returnDepositFunds(address user, uint256 amount) external
Return deposit funds to a user who cancelled their deposit request
Called by vault contracts when users cancel deposit requests
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | The user to return funds to |
| amount | uint256 | The amount to return |
transferVaultFees
function transferVaultFees(uint256 amount) external
Transfer pending fees to manager
Called by vault contracts when managers claim their fees
Parameters
| Name | Type | Description |
|---|---|---|
| amount | uint256 | The amount of fees to transfer |
transferRedemptionFunds
function transferRedemptionFunds(address user, uint256 amount) external
Transfer redemption funds to a user after shares are burned
Called by vault contracts when processing redemption requests
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | The user to transfer funds to |
| amount | uint256 | The amount of underlying assets to transfer |
depositLiquidity
function depositLiquidity(uint256 amount) external
Deposits underlying assets to the liquidity orchestrator buffer
Increases the buffer amount by the deposited amount.
Parameters
| Name | Type | Description |
|---|---|---|
| amount | uint256 | The amount of underlying assets to deposit |
withdrawLiquidity
function withdrawLiquidity(uint256 amount) external
Withdraws underlying assets from the liquidity orchestrator buffer
Can only be called by the owner. Decreases the buffer amount by the withdrawn amount. Includes safety checks to prevent predatory withdrawals that could break protocol operations.
Parameters
| Name | Type | Description |
|---|---|---|
| amount | uint256 | The amount of underlying assets to withdraw |
withdraw
function withdraw(uint256 assets, address receiver) external
Synchronous redemption for decommissioned vaults
Called by vault contracts to process synchronous redemptions for LPs with share tokens
Parameters
| Name | Type | Description |
|---|---|---|
| assets | uint256 | The amount of underlying assets to withdraw |
| receiver | address | The address to receive the underlying assets |
pause
function pause() external
Pauses protocol operations for the orchestrator
Can only be called by guardian or owner for emergency situations
unpause
function unpause() external
Unpauses protocol operations for the orchestrator
Can only be called by owner after resolving emergency (not guardian: requires owner approval to resume)
checkUpkeep
function checkUpkeep() external view returns (bool upkeepNeeded)
Checks if upkeep is needed
the API is inspired but different from the Chainlink Automation interface.
Return Values
| Name | Type | Description |
|---|---|---|
| upkeepNeeded | bool | Whether upkeep is needed |
performUpkeep
function performUpkeep(bytes _publicValues, bytes proofBytes, bytes statesBytes) external
Performs the upkeep
the API is inspired but different from the Chainlink Automation interface.
Parameters
| Name | Type | Description |
|---|---|---|
| _publicValues | bytes | Encoded PublicValuesStruct containing input and output commitments |
| proofBytes | bytes | The zk-proof bytes |
| statesBytes | bytes | Encoded StatesStruct containing vaults, buy leg, and sell leg data |