@axis-markets/json-storage
v0.2.0
Published
Simple JSON-file-backed HistoryStorage implementation for the AXIS indexer intended for testing purposes
Readme
@axis-markets/json-storage
JSON-file-backed HistoryStorage implementation for the AXIS indexer.
It implements the same interface as the indexer's reference InMemoryHistoryStorage, adding durable persistence
to a single JSON file. Intended for testing and local development — production deployments should use a real database.
Install
pnpm installUsage
const {Indexer} = require('@axis-markets/indexer')
const JsonHistoryStorage = require('@axis-markets/json-storage')
const historyStorage = new JsonHistoryStorage()
await historyStorage.init('./history.json') // defaults to ./history.json
const indexer = new Indexer({dataSource, historyStorage, network: 'public', contractAddress: 'C...'})
await indexer.init()Interface
| Method | Description |
|--------|-------------|
| init(filePath?) | Load state from the backing file, creating it if absent |
| storeTrade(trade, cursor) | Append a trade (or swap) and persist |
| storeOrder(order, cursor) | Persist an order into the active or archived set based on its status |
| getCursor() | Last processed event pagination cursor |
| loadTrades(filter) | Query trades by pair, trader, cursor, limit |
| loadActiveOrders(filter) | Query active orders by owner, pair, cursor, limit |
| loadArchivedOrders(filter) | Query archived orders by owner, pair, cursor, limit |
| dispose() | Release resources |
BigInt fields (ids, prices, amounts) are serialized in a tagged form and restored on load.
Test
pnpm testLicense
See LICENSE.
