Skip to content

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

Closed
findolor wants to merge 1 commit into
2026-02-17-implement-trades-tx-hashfrom
2026-02-18-implement-trades-address
Closed

Implement GET /v1/trades/{address} endpoint#40
findolor wants to merge 1 commit into
2026-02-17-implement-trades-tx-hashfrom
2026-02-18-implement-trades-address

Conversation

@findolor
Copy link
Copy Markdown
Collaborator

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

  • Implement GET /v1/trades/{address} with pagination (page, page_size) and optional time filters (start_time, end_time)
  • Refactor TradesTxDataSource / RaindexTradesTxDataSource into a unified TradesDataSource / RaindexTradesDataSource trait that handles both trades-by-tx and trades-by-owner queries
  • Update get_by_tx.rs to use the unified trait
  • Update rain.orderbook submodule with owner trades queries, non-wasm constructors, and address casing fix for subgraph queries
  • Add AGENTS.md rule: never modify submodule code directly
  • Unit tests for success, empty results, query failure, auth, and bad config scenarios

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.
@findolor findolor self-assigned this Feb 18, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 18, 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 2026-02-18-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 closed this Mar 9, 2026
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 -->
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