feat: integrate live trading (main PR) #1121
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Database Schema for Live Trading Support with Envio Integration
Summary
Added database schema changes to support live trading competitions where agents trade with real funds on-chain. This implementation uses Envio HyperIndex for efficient blockchain indexing, allowing us to track on-chain activity retroactively without direct RPC scanning.
Changes
1. Extended
trades
tabletradeType
enum to distinguish betweensimulated
andon_chain
tradesonChainTxHash
,blockNumber
,gasUsed
,gasPrice
,gasCostUsd
,indexedAt
2. New
selfFundingAlerts
table3. New
liveCompetitionConfig
tablesupportedChains
with newliveTradingChains
enum4. New
indexerSyncProgress
tableTechnical Notes
trading_comps
schemaArchitecture Overview
This schema supports a "super minimal" live trading implementation where:
The
indexerSyncProgress
table is key to this approach - it tracks the last synced timestamp per competition, allowing efficient incremental syncing without re-querying old data.