Implement GET /v1/trades/{address} endpoint#40
Closed
findolor wants to merge 1 commit into
Closed
Conversation
Add paginated trades-by-owner-address endpoint with unified TradesDataSource trait, update rain.orderbook submodule with owner trades queries and address casing fix.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
4 tasks
graphite-app Bot
pushed a commit
that referenced
this pull request
May 8, 2026
## Chained PRs - #50 ## Motivation See issues: - #29 - #30 Add a paginated endpoint to retrieve all trades for a given owner address across all configured orderbooks, with optional time filtering. Replaces #40, which was based on the old chain (#39) and couldn't merge cleanly. This branch is rebased on top of `implement-trades-tx-hash` (PR #50). ## Solution - Implement `GET /v1/trades/{address}` with pagination (`page`, `pageSize`) and optional time filters (`startTime`, `endTime`) - Extend `TradesDataSource` trait with `get_trades_for_owner` method that iterates all configured orderbooks and aggregates trades and total counts - Wire the route handler to use `RaindexTradesDataSource` via `run_with_client`, converting `TradesPaginationParams` into `PaginationParams` + `TimeFilter` with overflow validation - Map each `RaindexTrade` into `TradeByAddress` response type (tx_hash, formatted amounts, `TokenRef` for input/output tokens, order_hash, timestamp, block_number) - Compute pagination metadata (total_pages via `div_ceil`, has_more) - Update `rain.orderbook` submodule (`ff9578c` → `a612a4f`) to bring in `get_trades_for_owner()`, `RaindexTradesListResult`, `PaginationParams`, `TimeFilter`, `OrderbookIdentifierParams`, and address casing fix - Update `get_by_tx.rs` mock to implement the new trait method - Add AGENTS.md submodule rule: never modify submodule code directly - Unit tests for success (with amount/token assertions), empty results, query failure, 401 without auth, and 500 on bad config ## Checks By submitting this for review, I'm confirming I've done the following: - [x] made this PR as small as possible - [x] unit-tested any new functionality - [x] linked any relevant issues or PRs - [ ] included screenshots (if this involves a front-end change) fix #29 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Implemented the trade lookup endpoint for wallet addresses with pagination and time-range filtering capabilities. * **Documentation** * Added guidelines for managing external code dependencies. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Dependent PRs
Motivation
See issues:
Add a paginated endpoint to retrieve all trades for a given owner address across all configured orderbooks, with optional time filtering.
Solution
GET /v1/trades/{address}with pagination (page,page_size) and optional time filters (start_time,end_time)TradesTxDataSource/RaindexTradesTxDataSourceinto a unifiedTradesDataSource/RaindexTradesDataSourcetrait that handles both trades-by-tx and trades-by-owner queriesget_by_tx.rsto use the unified traitrain.orderbooksubmodule with owner trades queries, non-wasm constructors, and address casing fix for subgraph queriesChecks
By submitting this for review, I'm confirming I've done the following:
fix #29