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
Copy Markdown
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
Copy Markdown

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.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4d70fd0c-104b-4467-8818-873b11ec6c8a

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
  • 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.

Copy link
Copy Markdown
Collaborator Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more


How to use the Graphite Merge Queue

Add the label add-to-gt-merge-queue to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

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