Error reference
Every error the fund program returns, in declaration order, with its message from error.rs.
| Name | Message |
|---|---|
InvalidParams | A parameter is above its hard ceiling or otherwise out of range |
DuplicateMint | Two assets use the same mint |
InvalidAssetIndex | Asset index out of range |
MixedTokenPrograms | All assets must use the same token program |
RouteNotWhitelisted | Route program is invalid or not whitelisted |
InvalidShareMint | Share mint must be a fresh Token-2022 mint with only the confidential transfer extension |
InvalidConfidentialConfig | Confidential transfer config must auto-approve, have no auditor and no authority |
InvalidFeeAccount | Fee share account must hold the fund's share mint |
VaultMismatch | Vault account does not match the fund's vault for this asset |
FundNotReady | Not every vault has been created yet |
Paused | Fund is paused |
Unauthorized | Signer is not the fund authority |
NotPendingAuthority | Signer is not the proposed authority |
OracleMismatch | Price account does not match the configured feed |
OracleUnverified | Price update is not fully verified |
OracleStale | Price update is older than the allowed age |
OracleUncertain | Price confidence interval is too wide |
OracleNonPositive | Price is zero or negative |
MathOverflow | Arithmetic overflow |
ZeroAmount | Amount must be greater than zero |
SharesBelowMinimum | Deposit would mint fewer shares than the minimum asked for |
OutputBelowMinimum | Redemption would pay less than the minimum asked for |
InvalidDestination | Destination account is not owned by the redeemer |
PoolTooSmall | Pool value is below the minimum needed to ask the manager |
DecisionCooldown | Last decision is too recent |
RulesNotSet | No rule set is active yet |
StaleCallback | Callback does not belong to the latest request |
NoPendingRules | No sealed rule set is waiting |
RulesDelayNotElapsed | The rule set change delay has not passed |
AbortedComputation | The computation was aborted by the cluster |
NoActionableOrder | There is no order to execute |
OrderExpired | The order has expired |
TradeExceedsOrder | Trade is larger than the order allows |
TurnoverCapExceeded | Trade would exceed this epoch's turnover cap |
NothingSold | The route did not sell anything from the sell vault |
SoldTooMuch | The route sold more than the amount in |
NothingBought | The route did not deliver anything to the buy vault |
UnexpectedVaultDecrease | A vault other than the sell vault lost tokens |
VaultTampered | A vault's owner, delegate or close authority was changed |
SlippageExceeded | Output is worth less than the slippage band allows |
TradeTooSmall | Trade uses less than half of what the order allows |
What to do
SharesBelowMinimum,OutputBelowMinimum: prices moved; quote again.OracleStale,OracleUncertain: one of the prices is older than 120 s, or a Pyth price is too uncertain; Pyth's and Kamino's updaters usually fix it within a minute. cbBTC is priced with the BTC/USD feed because the CBBTC/USD push feed updates only every few minutes.DecisionCooldown,PoolTooSmall: wait, or deposit first.OrderExpired,NoActionableOrder: ask for a new decision.TurnoverCapExceeded: wait for the next UTC day.Paused: deposits, decisions and trades are paused; redemption still works.