Skip to content

Commit 8145efc

Browse files
committed
rpc: add pagination and sorting to AddrReceives endpoint
1 parent d74ce0b commit 8145efc

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

rpcserver.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2224,6 +2224,25 @@ func (r *rpcServer) AddrReceives(ctx context.Context,
22242224

22252225
var sqlQuery address.EventQueryParams
22262226

2227+
if req.Offset < 0 {
2228+
return nil, fmt.Errorf("offset must be non-negative")
2229+
}
2230+
if req.Limit < 0 {
2231+
return nil, fmt.Errorf("limit must be non-negative")
2232+
}
2233+
if req.Limit > address.MaxEventQueryLimit {
2234+
return nil, fmt.Errorf("limit must be less than %d",
2235+
address.MaxEventQueryLimit)
2236+
}
2237+
2238+
sqlQuery.Offset = req.Offset
2239+
sqlQuery.Limit = req.Limit
2240+
sqlQuery.SortDirection = address.DescSortDirection
2241+
2242+
if req.Direction == taprpc.SortDirection_SORT_DIRECTION_ASC {
2243+
sqlQuery.SortDirection = address.AscSortDirection
2244+
}
2245+
22272246
if len(req.FilterAddr) > 0 {
22282247
addr, err := address.DecodeAddress(
22292248
req.FilterAddr, &r.cfg.ChainParams,

universe_rpc_diff.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
"github.com/lightninglabs/taproot-assets/fn"
99
"github.com/lightninglabs/taproot-assets/mssmt"
10+
"github.com/lightninglabs/taproot-assets/taprpc"
1011
"github.com/lightninglabs/taproot-assets/taprpc/universerpc"
1112
unirpc "github.com/lightninglabs/taproot-assets/taprpc/universerpc"
1213
"github.com/lightninglabs/taproot-assets/universe"
@@ -85,7 +86,7 @@ func (r *RpcUniverseDiff) RootNodes(ctx context.Context,
8586
WithAmountsById: q.WithAmountsById,
8687
Offset: q.Offset,
8788
Limit: q.Limit,
88-
Direction: unirpc.SortDirection(q.SortDirection),
89+
Direction: taprpc.SortDirection(q.SortDirection),
8990
},
9091
)
9192
if err != nil {
@@ -147,7 +148,7 @@ func (r *RpcUniverseDiff) UniverseLeafKeys(ctx context.Context,
147148
assetKeys, err := r.conn.AssetLeafKeys(
148149
ctx, &unirpc.AssetLeafKeysRequest{
149150
Id: uniID,
150-
Direction: unirpc.SortDirection(q.SortDirection),
151+
Direction: taprpc.SortDirection(q.SortDirection),
151152
Offset: q.Offset,
152153
Limit: q.Limit,
153154
},

0 commit comments

Comments
 (0)