Indexer v3.0.0 Release Notes
API
- Deprecate basePositionNotional in Indexer APIs (#971)
- Block subscribing to subaccounts from restricted regions for read-only mode. (#896)
- Update api documentation (#781)
- Add new TradeType field (#789) (#788) (#779)
- Websockets: Send final message per order id for order fills, with aggregated fills from the entire block (#658)
- Remove unused socks fields and add candle resolutions for websockets (#633)
Ender SQL Optimizations
- Organize Ender SQL scripts (#860)
- Use a single SQL function to process a block. (#827)
- Fix line numbers in SQL function stack traces (#821)
- Remove market cache. (#818)
- Delete price cache in ender. (#815)
- Remove non-SQL implementation of creating initial rows (#816)
- Update handlers to use SQL function only removing the Knex option (#811)
- Refactor out looking up clob pair into SQL function. (#784)
- Improve comments, remove SQL function that wasn't being used, fix some stylistic choices in case statements. (#780)
- Update all stateful order handlers to use a SQL function to perform reads & updates. (#774)
- Update ender funding to execute updates via a SQL function. (#770)
- Update ender transfer handler to execute updates via a SQL function. (#763)
- Update ender liquidity tier upsert to execute updates via a SQL function. (#761)
- Update ender perpetual market create to execute updates via a SQL function. (#760)
- Update ender update perpetual handler to execute updates via a SQL function. (#755)
- Update ender
update clob pair
handler to execute via a SQL function. (#752) - Update asset create handler to use SQL function. (#748)
- Update
ender
market price update handler to execute updates via a SQL function. (#746) - Push ender market modify logic to use a single SQL function (#745)
- Push ender market create logic to use a single sql function (#737)
- Add support for liquidation handler to use a single SQL function. Also fix fill and order models since clientMetadata is a nullable field. (#734)
Bug Fixes
- Handle invalid TimeInForce emitted from protocol (#948)
- Prevent IOC/FOK orders from changing order book levels / sending updates. (#898)
- Remove adjusted margin fraction calculation (#903)
- Fix unsettled funding sign (#854)
- Update order side when replacing. Fix liquidations side bug. (#807)
- Don't send cancel messages if orders are fully filled in state. (#754)
- Prevent orders transitioning from canceled to best effort canceled (#753)
- Do not send subaccount websocket message for unplaced and unreplaced BEST_EFFORT_OPENED orders (#716)
- Have vulcan re-queue cached order updates instead of ender. (#688)
- Prevent blocks from being skipped by ender (#639)
- Fix order handler to return correct updatedAt/updatedAtHeight (#733)
Final Settlement and Deleveraging
- Add FINAL_SETTLEMENT to perpetual markets status constraint (#943)
- Allow FINAL_SETTLEMENT and cancel open stateful orders (#829)
- Update MatchPerpetualDeleveraging and DeleveragingEventV1 to have final settlement flag (#833)
- Add protos for final settlement clob pair status and removal reason (#828)
- Handle deleveraging events (#730)
- Process deleveraging events emitted from protocol (#736)
Trading Rewards
- Fix Trading reward event processing (#916)
- Add TradingRewardsHandler (#902)
- Add TradingRewardEventV1 (#837)
- Create trading_rewards postgres table (#822)
- Create trading_reward_aggregations postgres table (#825)
- Update wallets postgres table with totalTradingRewards field (#819)
Stateful Orders
- Cache and send order updates for stateful orders. (#683)
- Add cache for order updates for stateful orders. (#682)
Other
- Upgrade Indexer cosmos dependency versions (#888)
- Add more Indexer stats around funding indices (#861)
- Add more pnl stats (#826)
- Add fees to fills Athena DDL table. (#824)
- Track lag for block time to ingestion time (#820)
- Remove unused lastPrice from perpetual_markets table (#813)
- Query for PerpetualPositions by openEventId (#777)
- Default athena snapshots to be off (#775)
- Send timing fields for orders when possible (#768)