Skip to main content

Solidity API

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 made by a user.

Parameters

NameTypeDescription
senderaddressThe address of the user making the deposit request.
assetsuint256The amount of assets being deposited.

DepositRequestCancelled

event DepositRequestCancelled(address user, uint256 amount)

A deposit request has been cancelled.

Parameters

NameTypeDescription
useraddressThe address of the user whose deposit request was cancelled.
amountuint256The 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

NameTypeDescription
senderaddressThe address of the user making the redemption request.
sharesuint256The number of shares being redeemed.

RedeemRequestCancelled

event RedeemRequestCancelled(address user, uint256 shares)

A redemption request has been cancelled.

Parameters

NameTypeDescription
useraddressThe address of the user whose redemption request was cancelled.
sharesuint256The number of shares that were requested for redemption.

CuratorUpdated

event CuratorUpdated(address newCurator)

The curator has been updated.

Parameters

NameTypeDescription
newCuratoraddressThe new curator address.

FeeModelUpdated

event FeeModelUpdated(uint8 mode, uint16 performanceFee, uint16 managementFee)

The fee model has been updated.

Parameters

NameTypeDescription
modeuint8The new calculation mode.
performanceFeeuint16The new performance fee in basis points.
managementFeeuint16The new management fee in basis points.

Deposit

event Deposit(address user, uint256 amount, uint256 shares)

A deposit request has been processed and completed.

Parameters

NameTypeDescription
useraddressThe address of the user whose deposit was processed.
amountuint256The amount of assets that were deposited.
sharesuint256The number of shares that were minted.

Withdraw

event Withdraw(address user, uint256 assets, uint256 shares)

A redemption request has been processed and completed.

Parameters

NameTypeDescription
useraddressThe address of the user whose redemption was processed.
assetsuint256The amount of assets that were withdrawn.
sharesuint256The number of shares that were redeemed.

CuratorFeesAccrued

event CuratorFeesAccrued(uint256 epoch, uint256 feeAmount, uint256 pendingCuratorFees)

Curator fees have been accrued for a specific epoch.

Parameters

NameTypeDescription
epochuint256The epoch for which fees were accrued.
feeAmountuint256The amount of fees accrued in underlying asset units.
pendingCuratorFeesuint256The total pending curator fees in underlying asset units.

config

function config() external view returns (contract IOrionConfig)

Orion config getter

Return Values

NameTypeDescription
[0]contract IOrionConfigThe Orion config contract address

vaultOwner

function vaultOwner() external view returns (address)

Vault owner getter

Return Values

NameTypeDescription
[0]addressThe vault owner address

curator

function curator() external view returns (address)

Curator getter

Return Values

NameTypeDescription
[0]addressThe curator address

pendingCuratorFees

function pendingCuratorFees() external view returns (uint256)

Pending curator fees getter

Return Values

NameTypeDescription
[0]uint256Pending curator fees amount

convertToAssetsWithPITTotalAssets

function convertToAssetsWithPITTotalAssets(uint256 shares, uint256 pointInTimeTotalAssets, enum Math.Rounding rounding) external view returns (uint256)

Convert shares to assets with point in time total assets.

Parameters

NameTypeDescription
sharesuint256The amount of shares to convert.
pointInTimeTotalAssetsuint256The point in time total assets.
roundingenum Math.RoundingThe rounding mode.

Return Values

NameTypeDescription
[0]uint256The amount of assets.

convertToSharesWithPITTotalAssets

function convertToSharesWithPITTotalAssets(uint256 assets, uint256 pointInTimeTotalAssets, enum Math.Rounding rounding) external view returns (uint256)

Convert assets to shares with point in time total assets.

Parameters

NameTypeDescription
assetsuint256The amount of assets to convert.
pointInTimeTotalAssetsuint256The point in time total assets.
roundingenum Math.RoundingThe rounding mode.

Return Values

NameTypeDescription
[0]uint256The amount of shares.

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

NameTypeDescription
assetsuint256The amount of the underlying asset 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

NameTypeDescription
amountuint256The 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

NameTypeDescription
sharesuint256The 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

NameTypeDescription
sharesuint256The amount of share tokens to recover.

updateCurator

function updateCurator(address newCurator) external

Update the vault curator address

The curator is responsible for setting allocation strategy for the vault's assets. This function enables vault owners to change allocation strategies by updating the curator. This is particularly important when curators are smart contracts, not just addresses.

Parameters

NameTypeDescription
newCuratoraddressThe new curator address. Must be non-zero.

updateVaultWhitelist

function updateVaultWhitelist(address[] assets) external

Update the vault whitelist

Parameters

NameTypeDescription
assetsaddress[]The new whitelist of assets.

vaultWhitelist

function vaultWhitelist() external view returns (address[])

Get the vault whitelist

Return Values

NameTypeDescription
[0]address[]The array of whitelisted asset addresses for this vault.

updateFeeModel

function updateFeeModel(uint8 mode, uint16 performanceFee, uint16 managementFee) external

Update the fee model parameters

Parameters

NameTypeDescription
modeuint8The calculation mode for fees
performanceFeeuint16The performance fee
managementFeeuint16The management fee

claimCuratorFees

function claimCuratorFees(uint256 amount) external

Claim accrued curator fees

Parameters

NameTypeDescription
amountuint256The amount of curator fees to claim

pendingDeposit

function pendingDeposit() external view returns (uint256)

Get total pending deposit amount across all users

This returns asset amounts, not share amounts

Return Values

NameTypeDescription
[0]uint256Total pending deposits denominated in underlying asset units (e.g., USDC, ETH)

pendingRedeem

function pendingRedeem() external view returns (uint256)

Get total pending redemption shares across all users

This returns share amounts, not underlying asset amounts

Return Values

NameTypeDescription
[0]uint256Total pending redemptions denominated in vault share units

curatorFee

function curatorFee(uint256 totalAssets) external view returns (uint256)

Calculate the curator's fee based on total assets

Warning: Calling this function mid-epoch may return inaccurate results since fees are calculated based on the full epoch duration

Parameters

NameTypeDescription
totalAssetsuint256The total assets under management

Return Values

NameTypeDescription
[0]uint256The curator fee amount in underlying asset units

fulfillDeposit

function fulfillDeposit(uint256 depositTotalAssets) external

Process all pending deposit requests and mint shares to depositors

Parameters

NameTypeDescription
depositTotalAssetsuint256The total assets associated with the deposit requests

fulfillRedeem

function fulfillRedeem(uint256 redeemTotalAssets) external

Process all pending redemption requests and burn shares from redeemers

Parameters

NameTypeDescription
redeemTotalAssetsuint256The total assets associated with the redemption requests

accrueCuratorFees

function accrueCuratorFees(uint256 epoch, uint256 feeAmount) external

Accrue curator fees for a specific epoch

Parameters

NameTypeDescription
epochuint256The epoch for which to accrue fees
feeAmountuint256The amount of curator fees to accrue in underlying asset units