Events, errors, and indexing
Events worth indexing
| Contract | Event | Why |
|---|---|---|
| Ledger | VeNftDeposited | New liquid position minted. |
| Ledger | ExpiredVeNftRelocked | Expired lock was withdrawn and replaced before custody. |
| Ledger | VeNftWithdrawn | Redemption released inventory. BTC split may emit a new id. |
| Ledger | RebaseClaimed | Inventory growth minted to the sink. |
| AuroveId20 | WrappedFromReceived / Unwrapped | ERC-20 supply changes. |
| AuroveId20 | RewardsHarvested | Upstream units moved into the Id20Gauge. |
| Zap router | LiquidityAdded / LiquidityIncreased | CL position minted or increased through the zap. |
Also index ERC-1155 TransferSingle on the Ledger and ERC-20 Transfer on each ID20. Reward eligibility is not fully described by transfers; read gauge accountState for activation, credit, and claimable amounts.
Important revert conditions
ZeroAmount/ZeroAddress/ZeroReceiverGrantBackedVeNft— vesting still activeUnsupportedVeNft/UnsupportedAsset/UnsupportedIdInsufficientRedeemInventory/ Mezo managed-withdraw revertsUnsettledCredit— unwrap/burn of credit-classified ID20NotInitialized— gauge claim before activateNoRewards/NoRewardsClaimed/RewardAmountMismatch- Zap:
DeadlineExpired,InvalidRoute,UnsupportedPool,InsufficientOutput
Cache and indexing notes
- Do not cache
mTokenId, fee config, or pool gauges as constants. Read fee state fromfeeConfig()andnextFeeConfig(). - Wrapper sink addresses are immutable after
createId20. FactorygetId20is the discovery path. - Never treat
claimRebases(uint256[])as a working harvest. It is a no-op. - There is no public Aurove REST API for protocol state. Academy HTTP routes require a signed session and are not a settlement interface.
