IOrionVault
IOrionVault
Interface for Orion vaults
SynchronousCallDisabled
error SynchronousCallDisabled()
External synchronous calls are disabled in the current context.
DepositRequest
event DepositRequest(address sender, uint256 assets)
A deposit request has been queued for a beneficiary.
Parameters
| Name | Type | Description |
|---|---|---|
| sender | address | The address credited in the deposit queue and on fulfill. |
| assets | uint256 | The amount of assets being deposited. |
DepositRequestCancelled
event DepositRequestCancelled(address user, uint256 amount)
A deposit request has been cancelled.
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | The address of the user whose deposit request was cancelled. |
| amount | uint256 | The amount of assets that were requested for deposit. |
RedeemRequest
event RedeemRequest(address sender, uint256 shares)
A redemption request has been made by a user.
Parameters
| Name | Type | Description |
|---|---|---|
| sender | address | The address of the user making the redemption request. |
| shares | uint256 | The number of shares being redeemed. |
RedeemRequestCancelled
event RedeemRequestCancelled(address user, uint256 shares)
A redemption request has been cancelled.
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | The address of the user whose redemption request was cancelled. |
| shares | uint256 | The number of shares that were requested for redemption. |
StrategistUpdated
event StrategistUpdated(address newStrategist)
The strategist has been updated.
Parameters
| Name | Type | Description |
|---|---|---|
| newStrategist | address | The new strategist address. |
Redeem
event Redeem(address user, uint256 redeemAmount, uint256 sharesBurned)
A redemption request has been fulfilled.
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | The address of the user whose redemption was fulfilled. |
| redeemAmount | uint256 | The amount of assets redeemed by the user. |
| sharesBurned | uint256 | The number of shares burned for the user. |
RedemptionFailed
event RedemptionFailed(address user, uint256 amount, uint256 shares)
Transfer to the redeemer failed; funds are held in escrow until claimed.
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | The address of the recipient whose transfer failed. |
| amount | uint256 | The underlying amount that could not be transferred. |
| shares | uint256 | The number of shares that could not be paid out. |
RedemptionClaimed
event RedemptionClaimed(address user, uint256 amount)
A previously failed redemption transfer has been claimed.
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | The address of the claimer. |
| amount | uint256 | The underlying amount claimed. |
VaultFeesAccrued
event VaultFeesAccrued(uint256 managementFee, uint256 performanceFee)
Fees have been accrued.
Parameters
| Name | Type | Description |
|---|---|---|
| managementFee | uint256 | The amount of management fees accrued. |
| performanceFee | uint256 | The amount of performance fees accrued. |
VaultFeesClaimed
event VaultFeesClaimed(address manager, uint256 feeAmount)
Fees have been claimed.
Parameters
| Name | Type | Description |
|---|---|---|
| manager | address | The address of the manager who claimed the fees. |
| feeAmount | uint256 | The amount of fees claimed. |
DepositAccessControlUpdated
event DepositAccessControlUpdated(address newDepositAccessControl)
The deposit access control contract has been updated.
Parameters
| Name | Type | Description |
|---|---|---|
| newDepositAccessControl | address | The new controller (address(0) = permissionless). |
HolderAccessControlUpdated
event HolderAccessControlUpdated(address newHolderAccessControl)
The holder access control contract has been updated.
Parameters
| Name | Type | Description |
|---|---|---|
| newHolderAccessControl | address | The new controller (address(0) = permissionless). |
TransferAccessControlUpdated
event TransferAccessControlUpdated(address newTransferAccessControl)
The transfer access control contract has been updated.
Parameters
| Name | Type | Description |
|---|---|---|
| newTransferAccessControl | address | The new controller (address(0) = permissionless). |
DepositFulfillmentFailed
event DepositFulfillmentFailed(address user, uint256 amount)
Deposit fulfillment skipped because the user may not hold shares; underlying escrowed.
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | The address whose deposit could not be fulfilled into shares. |
| amount | uint256 | The underlying amount escrowed for later claim. |
FeeType
Fee type
enum FeeType {
ABSOLUTE,
SOFT_HURDLE,
HARD_HURDLE,
HIGH_WATER_MARK,
HURDLE_HWM
}
FeeModel
Fee model
This struct is used to define the fee model for the vault
struct FeeModel {
enum IOrionVault.FeeType feeType;
uint16 performanceFee;
uint16 managementFee;
uint256 highWaterMark;
}
config
function config() external view returns (contract IOrionConfig)
Orion config getter
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | contract IOrionConfig | The Orion config contract address |
manager
function manager() external view returns (address)
Manager getter
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | address | The manager address |
strategist
function strategist() external view returns (address)
Strategist getter
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | address | The strategist address |
pendingVaultFees
function pendingVaultFees() external view returns (uint256)
Pending vault fees getter
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint256 | Pending vault fees amount |
activeFeeModel
function activeFeeModel() external view returns (struct IOrionVault.FeeModel)
Returns the active fee model (old during cooldown, new after)
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | struct IOrionVault.FeeModel | The currently active fee model |
overrideIntentForDecommissioning
function overrideIntentForDecommissioning() external
Override intent to 100% underlying asset for decommissioning
Can only be called by the OrionConfig contract
requestDeposit
function requestDeposit(uint256 assets) external
Submit an asynchronous deposit request.
No share tokens are minted immediately. The specified amount of underlying tokens is transferred to the liquidity orchestrator for centralized liquidity management.
Parameters
| Name | Type | Description |
|---|---|---|
| assets | uint256 | The amount of the underlying asset to deposit. |
requestDepositFor
function requestDepositFor(address beneficiary, uint256 assets) external
Submit an async deposit request on behalf of beneficiary.
Parameters
| Name | Type | Description |
|---|---|---|
| beneficiary | address | The LP whose pending deposit balance and eventual shares are credited. |
| assets | uint256 | The amount of underlying to deposit. |
cancelDepositRequest
function cancelDepositRequest(uint256 amount) external
Cancel a previously submitted deposit request.
Allows LPs to withdraw their funds before any share tokens are minted. The request must still have enough balance remaining to cover the cancellation. Funds are returned from the liquidity orchestrator to the LP.
Parameters
| Name | Type | Description |
|---|---|---|
| amount | uint256 | The amount of funds to withdraw. |
requestRedeem
function requestRedeem(uint256 shares) external
Submit a redemption request.
No share tokens are burned immediately. The specified amount of share tokens is transferred to the vault.
Parameters
| Name | Type | Description |
|---|---|---|
| shares | uint256 | The amount of the share tokens to withdraw. |
cancelRedeemRequest
function cancelRedeemRequest(uint256 shares) external
Cancel a previously submitted redemption request.
Allows LPs to recover their share tokens before any burning occurs. The request must still have enough shares remaining to cover the cancellation. Share tokens are returned from the vault.
Parameters
| Name | Type | Description |
|---|---|---|
| shares | uint256 | The amount of share tokens to recover. |
claimUnderlying
function claimUnderlying() external
Claim underlying funds from a previously failed redemption transfer or a deposit fulfillment that could not mint shares.
Called by the user after the transfer blocker / eligibility issue has been resolved.
updateStrategist
function updateStrategist(address newStrategist) external
Update the strategist address
The strategist is responsible for setting allocation logic for the vault's assets. This function enables managers to update the strategist. Strategist can be a smart contract or an address. It is the FULL responsibility of the manager to ensure the strategist is capable of performing its duties.
Parameters
| Name | Type | Description |
|---|---|---|
| newStrategist | address | The new strategist address. |
updateFeeModel
function updateFeeModel(uint8 mode, uint16 performanceFee, uint16 managementFee) external
Update the fee model parameters
Parameters
| Name | Type | Description |
|---|---|---|
| mode | uint8 | The calculation mode for fees |
| performanceFee | uint16 | The performance fee |
| managementFee | uint16 | The management fee |
claimVaultFees
function claimVaultFees(uint256 amount) external
Claim accrued vault fees
Parameters
| Name | Type | Description |
|---|---|---|
| amount | uint256 | The amount of vault fees to claim |
setDepositAccessControl
function setDepositAccessControl(address newDepositAccessControl) external
Set deposit access control contract
Only callable by vault manager. Non-zero addresses must ERC-165 as IOrionDepositAccessControl.
Parameters
| Name | Type | Description |
|---|---|---|
| newDepositAccessControl | address | Address of the new access control contract (address(0) = permissionless) |
setHolderAccessControl
function setHolderAccessControl(address newHolderAccessControl) external
Set holder access control contract
Only callable by vault manager. Non-zero addresses must ERC-165 as IOrionHolderAccessControl.
Parameters
| Name | Type | Description |
|---|---|---|
| newHolderAccessControl | address | Address of the new access control contract (address(0) = permissionless) |
setTransferAccessControl
function setTransferAccessControl(address newTransferAccessControl) external
Set transfer access control contract
Only callable by vault manager. Non-zero addresses must ERC-165 as IOrionTransferAccessControl.
Parameters
| Name | Type | Description |
|---|---|---|
| newTransferAccessControl | address | Address of the new access control contract (address(0) = permissionless) |
pendingDeposit
function pendingDeposit(uint256 fulfillBatchSize) external view returns (uint256)
Get total pending deposit amount across all users
This returns asset amounts, not share amounts
Parameters
| Name | Type | Description |
|---|---|---|
| fulfillBatchSize | uint256 | The maximum number of requests to process per fulfill call |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint256 | Total pending deposits denominated in underlying asset units (e.g., USDC, ETH) |
pendingRedeem
function pendingRedeem(uint256 fulfillBatchSize) external view returns (uint256)
Get total pending redemption shares across all users
This returns share amounts, not underlying asset amounts
Parameters
| Name | Type | Description |
|---|---|---|
| fulfillBatchSize | uint256 | The maximum number of requests to process per fulfill call |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint256 | Total pending redemptions denominated in vault share units |
pendingDepositCount
function pendingDepositCount() external view returns (uint256)
Get the number of pending deposit queue entries.
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint256 | The number of unique users with non-zero pending deposit requests. |
pendingRedeemCount
function pendingRedeemCount() external view returns (uint256)
Get the number of pending redeem queue entries.
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | uint256 | The number of unique users with non-zero pending redeem requests. |
pendingRedeemBatch
function pendingRedeemBatch(uint256 fulfillBatchSize) external view returns (address[] users, uint256[] shares)
Get the list of pending redeem entries (users and shares) for the next fulfill batch
This function enables per-request conversion, ensuring exact rounding behaviour for state transition.
Parameters
| Name | Type | Description |
|---|---|---|
| fulfillBatchSize | uint256 | The maximum number of requests to consider |
Return Values
| Name | Type | Description |
|---|---|---|
| users | address[] | Addresses with pending redeem requests in batch order |
| shares | uint256[] | Share amounts per user (same index as users) |
totalPendingUnderlyingClaims
function totalPendingUnderlyingClaims() external view returns (uint256 total)
Total underlying assets owed to users whose redemption transfer failed
Return Values
| Name | Type | Description |
|---|---|---|
| total | uint256 | Sum of all pending underlying claims across all users |
pendingUnderlyingClaim
function pendingUnderlyingClaim(address account) external view returns (uint256 amount)
Underlying escrowed for account from a failed redemption payout or deposit fulfillment.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address | The address to query. |
Return Values
| Name | Type | Description |
|---|---|---|
| amount | uint256 | Underlying asset units held in vault escrow for this account. |
fulfillDeposit
function fulfillDeposit(uint256 depositTotalAssets) external
Process all pending deposit requests and mint shares to depositors
Parameters
| Name | Type | Description |
|---|---|---|
| depositTotalAssets | uint256 | The total assets associated with the deposit requests |
fulfillRedeem
function fulfillRedeem(uint256 redeemTotalAssets) external
Process all pending redemption requests and burn shares from redeemers
Parameters
| Name | Type | Description |
|---|---|---|
| redeemTotalAssets | uint256 | The total assets associated with the redemption requests |
accrueVaultFees
function accrueVaultFees(uint256 managementFee, uint256 performanceFee) external
Accrue vault fees for a specific epoch
Parameters
| Name | Type | Description |
|---|---|---|
| managementFee | uint256 | The amount of management fees to accrue in underlying asset units |
| performanceFee | uint256 | The amount of performance fees to accrue in underlying asset units |