Skip to content

Implement GET /v1/trades/{address} endpoint#51

Open
findolor wants to merge 1 commit intoimplement-trades-tx-hashfrom
implement-trades-address
Open

Implement GET /v1/trades/{address} endpoint#51
findolor wants to merge 1 commit intoimplement-trades-tx-hashfrom
implement-trades-address

Conversation

@findolor
Copy link
Collaborator

@findolor findolor commented Feb 24, 2026

Chained 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. 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 (ff9578ca612a4f) 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:

  • made this PR as small as possible
  • unit-tested any new functionality
  • linked any relevant issues or PRs
  • included screenshots (if this involves a front-end change)

fix #29

Add paginated trades-by-owner-address endpoint with unified TradesDataSource
trait, update rain.orderbook submodule with owner trades queries and address
casing fix.
@coderabbitai
Copy link

coderabbitai bot commented Feb 24, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch implement-trades-address

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@findolor findolor self-assigned this Feb 24, 2026
@findolor findolor requested a review from hardyjosh February 24, 2026 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant