Skip to content

fix: add pagination to list tx - #2166

Merged
rukmini-basu-da merged 24 commits into
mainfrom
rukmini/add-pagination-to-list-tx
Jul 21, 2026
Merged

fix: add pagination to list tx#2166
rukmini-basu-da merged 24 commits into
mainfrom
rukmini/add-pagination-to-list-tx

Conversation

@rukmini-basu-da

@rukmini-basu-da rukmini-basu-da commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

This PR updates the listTransactions user-api and store interface to accept an optional parameter that consists of {limit: number, cursor: string}).

The sql store and in memory implementations where both updated to query the same way with createdAt desc nulls last, using the id desc as the tiebreaker. The reason why the transactions table createdAt column is nullable (rather than something like currentTimestamp if not provided) is this was implemented for an audit trail and currentTimestamp is not necessarily accurate (hence the additional paging logic). The store requests pageSize+1 items, so if an additional item is returned, we know there is a next page (and this element is removed before returning the payload and also determines the nextCursor).

Lastly, the user-ui-activities in the remote wallet-gateway used to listTransactions and get all the elements then implement pagination on the client side, so this was modified to use this.transactions as a paginated stream provided by the server. The pageCursors is sequentially cached where page 1 maps to undefined and as it's navigated forward, the nextCursor is sequentially cached, which helps with backwards/forwards traversal of the transactions pages.

@rukmini-basu-da
rukmini-basu-da force-pushed the rukmini/add-pagination-to-list-tx branch from 456d8cd to 9ccbb68 Compare July 17, 2026 16:54
Comment thread wallet-gateway/remote/src/user-api/controller.ts Fixed
@rukmini-basu-da
rukmini-basu-da force-pushed the rukmini/add-pagination-to-list-tx branch 3 times, most recently from 4b49776 to 49e0283 Compare July 20, 2026 20:30
@rukmini-basu-da
rukmini-basu-da marked this pull request as ready for review July 20, 2026 20:30
@rukmini-basu-da
rukmini-basu-da requested a review from a team as a code owner July 20, 2026 20:30
Comment thread wallet-gateway/remote/src/web/frontend/activities/index.ts Outdated
Comment thread core/wallet-store-sql/src/store-sql.ts
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
@rukmini-basu-da
rukmini-basu-da force-pushed the rukmini/add-pagination-to-list-tx branch from 2a46e9a to affb19f Compare July 21, 2026 20:37

@alexmatson-da alexmatson-da left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thx!

@rukmini-basu-da
rukmini-basu-da merged commit 8507519 into main Jul 21, 2026
28 checks passed
@rukmini-basu-da
rukmini-basu-da deleted the rukmini/add-pagination-to-list-tx branch July 21, 2026 21:55
mateuszpiatkowski-da pushed a commit that referenced this pull request Jul 22, 2026
* pagination

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* store sql test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* fix types

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* update user api controller

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* add pagination to store internal

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* use pagination in activities

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* refactor

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* refactor

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* fix computed total calculation

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* add total count

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* add test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* rename variables

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* fix test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* add test

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

* add tests for stores

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>

---------

Signed-off-by: rukmini-basu-da <rukmini.basu@digitalasset.com>
Signed-off-by: Mateusz Piątkowski <mateusz.piatkowski@digitalasset.com>
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.

3 participants