Developers

Events, errors, and indexing

Events worth indexing

ContractEventWhy
LedgerVeNftDepositedNew liquid position minted.
LedgerExpiredVeNftRelockedExpired lock was withdrawn and replaced before custody.
LedgerVeNftWithdrawnRedemption released inventory. BTC split may emit a new id.
LedgerRebaseClaimedInventory growth minted to the sink.
AuroveId20WrappedFromReceived / UnwrappedERC-20 supply changes.
AuroveId20RewardsHarvestedUpstream units moved into the Id20Gauge.
Zap routerLiquidityAdded / LiquidityIncreasedCL 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 / ZeroReceiver
  • GrantBackedVeNft — vesting still active
  • UnsupportedVeNft / UnsupportedAsset / UnsupportedId
  • InsufficientRedeemInventory / Mezo managed-withdraw reverts
  • UnsettledCredit — unwrap/burn of credit-classified ID20
  • NotInitialized — gauge claim before activate
  • NoRewards / 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 from feeConfig() and nextFeeConfig().
  • Wrapper sink addresses are immutable after createId20. Factory getId20 is 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.
developerseventserrorsindexing