Skip to content

Commit eadbce2

Browse files
AkramBitaralexandrosfilios
authored andcommitted
Add first version of pagination for QueryTransactions
Signed-off-by: Alexandros Filios <[email protected]>
1 parent c85bf1a commit eadbce2

File tree

16 files changed

+93
-49
lines changed

16 files changed

+93
-49
lines changed

Diff for: go.mod

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ require (
99
github.com/gin-gonic/gin v1.10.0
1010
github.com/gobuffalo/packr/v2 v2.7.1
1111
github.com/hashicorp/go-uuid v1.0.3
12-
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250402105017-cc6f67ed1237
12+
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250409144619-aaa4e2e31de1
1313
github.com/hyperledger-labs/orion-sdk-go v0.2.10
1414
github.com/hyperledger-labs/orion-server v0.2.10
1515
github.com/hyperledger/fabric v1.4.0-rc1.0.20230405174026-695dd57e01c2
@@ -150,7 +150,6 @@ require (
150150
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
151151
github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect
152152
github.com/jbenet/goprocess v0.1.4 // indirect
153-
github.com/jellydator/ttlcache/v2 v2.11.1 // indirect
154153
github.com/json-iterator/go v1.1.12 // indirect
155154
github.com/kilic/bls12-381 v0.1.0 // indirect
156155
github.com/klauspost/compress v1.17.11 // indirect

Diff for: go.sum

+2-5
Original file line numberDiff line numberDiff line change
@@ -1081,8 +1081,8 @@ github.com/hidal-go/hidalgo v0.0.0-20201109092204-05749a6d73df/go.mod h1:bPkrxDl
10811081
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
10821082
github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc=
10831083
github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8=
1084-
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250402105017-cc6f67ed1237 h1:rTnM7a/KXCTrO0Ubx+tW87Da30/cS9/356i0KGAHUcc=
1085-
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250402105017-cc6f67ed1237/go.mod h1:fiPO9SpiJk2amIUpTlK5O1eh0zroN3+FwJjBO5L52rs=
1084+
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250409144619-aaa4e2e31de1 h1:JKhQpEWjZ0EqJflnumeH422JkYQjhrif/kXrPYyHMIM=
1085+
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250409144619-aaa4e2e31de1/go.mod h1:0uk7mRq5G1JTb0txPR2PL4TQZntcFZjhRpXZvmrajOs=
10861086
github.com/hyperledger-labs/orion-sdk-go v0.2.10 h1:lFgWgxyvngIhWnIqymYGBmtmq9D6uC5d0uLG9cbyh5s=
10871087
github.com/hyperledger-labs/orion-sdk-go v0.2.10/go.mod h1:iN2xZB964AqwVJwL+EnwPOs8z1EkMEbbIg/qYeC7gDY=
10881088
github.com/hyperledger-labs/orion-server v0.2.10 h1:G4zbQEL5Egk0Oj+TwHCZWdTOLDBHOjaAEvYOT4G7ozw=
@@ -1140,8 +1140,6 @@ github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPw
11401140
github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o=
11411141
github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4=
11421142
github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=
1143-
github.com/jellydator/ttlcache/v2 v2.11.1 h1:AZGME43Eh2Vv3giG6GeqeLeFXxwxn1/qHItqWZl6U64=
1144-
github.com/jellydator/ttlcache/v2 v2.11.1/go.mod h1:RtE5Snf0/57e+2cLWFYWCCsLas2Hy3c5Z4n14XmSvTI=
11451143
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
11461144
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
11471145
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
@@ -2122,7 +2120,6 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f
21222120
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
21232121
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
21242122
golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
2125-
golang.org/x/tools v0.0.0-20210112230658-8b4aab62c064/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
21262123
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
21272124
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
21282125
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=

Diff for: integration/token/fungible/views/checks.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package views
99
import (
1010
"encoding/json"
1111

12+
driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver"
1213
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/assert"
1314
"github.com/hyperledger-labs/fabric-smart-client/platform/view/view"
1415
"github.com/hyperledger-labs/fabric-token-sdk/token"
@@ -22,7 +23,7 @@ import (
2223

2324
type TokenTransactionDB interface {
2425
GetTokenRequest(txID string) ([]byte, error)
25-
Transactions(params driver.QueryTransactionsParams) (driver.TransactionIterator, error)
26+
Transactions(params driver.QueryTransactionsParams, pagination driver2.Pagination) (*driver2.PageIterator[*driver.TransactionRecord], error)
2627
}
2728

2829
type CheckTTXDB struct {

Diff for: integration/token/fungible/views/history.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"time"
1212

1313
"github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/collections"
14+
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver/sql/common"
1415
"github.com/hyperledger-labs/fabric-smart-client/platform/view/view"
1516
"github.com/hyperledger-labs/fabric-token-sdk/token"
1617
"github.com/hyperledger-labs/fabric-token-sdk/token/services/ttx"
@@ -76,11 +77,11 @@ func (p *ListAuditedTransactionsView) Call(context view.Context) (interface{}, e
7677
return nil, errors.Wrapf(err, "failed to get auditor instance")
7778
}
7879

79-
it, err := auditor.Transactions(ttxdb.QueryTransactionsParams{From: p.From, To: p.To})
80+
it, err := auditor.Transactions(ttxdb.QueryTransactionsParams{From: p.From, To: p.To}, common.NewNoPagination())
8081
if err != nil {
8182
return nil, errors.Wrapf(err, "failed querying transactions")
8283
}
83-
return ToSlice(it)
84+
return ToSlice(it.Items)
8485
}
8586

8687
type ListAuditedTransactionsViewFactory struct{}
@@ -118,12 +119,12 @@ func (p *ListAcceptedTransactionsView) Call(context view.Context) (interface{},
118119
To: p.To,
119120
ActionTypes: p.ActionTypes,
120121
Statuses: p.Statuses,
121-
})
122+
}, common.NewNoPagination())
122123
if err != nil {
123124
return nil, errors.Wrapf(err, "failed querying transactions")
124125
}
125126

126-
return ToSlice(it)
127+
return ToSlice(it.Items)
127128
}
128129

129130
type ListAcceptedTransactionsViewFactory struct{}

Diff for: token/services/auditdb/db.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"sync"
1414
"time"
1515

16+
driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver"
1617
"github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/collections"
1718
"github.com/hyperledger-labs/fabric-token-sdk/token"
1819
"github.com/hyperledger-labs/fabric-token-sdk/token/services/db"
@@ -125,6 +126,12 @@ type QueryTransactionsParams = driver.QueryTransactionsParams
125126
// QueryTokenRequestsParams defines the parameters for querying token requests
126127
type QueryTokenRequestsParams = driver.QueryTokenRequestsParams
127128

129+
// Pagination defines the pagination for querying movements
130+
type Pagination = driver2.Pagination
131+
132+
// Pagination iterator defines the pagination iterator for movements query results
133+
type PageTransactionsIterator = driver2.PageIterator[*TransactionRecord]
134+
128135
// Wallet models a wallet
129136
type Wallet interface {
130137
// ID returns the wallet ID
@@ -211,8 +218,8 @@ func (d *DB) Append(req tokenRequest) error {
211218
}
212219

213220
// Transactions returns an iterators of transaction records filtered by the given params.
214-
func (d *DB) Transactions(params QueryTransactionsParams) (driver.TransactionIterator, error) {
215-
return d.db.QueryTransactions(params)
221+
func (d *DB) Transactions(params QueryTransactionsParams, pagination Pagination) (*PageTransactionsIterator, error) {
222+
return d.db.QueryTransactions(params, pagination)
216223
}
217224

218225
// TokenRequests returns an iterator over the token requests matching the passed params

Diff for: token/services/db/common/checks.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import (
1212
"fmt"
1313

1414
"github.com/hyperledger-labs/fabric-smart-client/pkg/utils/errors"
15+
driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver"
1516
"github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/collections"
17+
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver/sql/common"
1618
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/hash"
1719
"github.com/hyperledger-labs/fabric-token-sdk/token"
1820
"github.com/hyperledger-labs/fabric-token-sdk/token/services/db/driver"
@@ -28,7 +30,7 @@ var (
2830

2931
type TokenTransactionDB interface {
3032
GetTokenRequest(txID string) ([]byte, error)
31-
Transactions(params driver.QueryTransactionsParams) (driver.TransactionIterator, error)
33+
Transactions(params driver.QueryTransactionsParams, pagination driver2.Pagination) (*driver2.PageIterator[*driver.TransactionRecord], error)
3234
}
3335

3436
type TokenManagementServiceProvider interface {
@@ -110,13 +112,13 @@ func (a *DefaultCheckers) CheckTransactions(context context.Context) ([]string,
110112
return nil, errors.WithMessagef(err, "failed to get ledger [%s]", tms.ID())
111113
}
112114

113-
it, err := a.db.Transactions(driver.QueryTransactionsParams{})
115+
it, err := a.db.Transactions(driver.QueryTransactionsParams{}, common.NewNoPagination())
114116
if err != nil {
115117
return nil, errors.WithMessagef(err, "failed querying transactions [%s]", tms.ID())
116118
}
117-
defer it.Close()
119+
defer it.Items.Close()
118120
for {
119-
transactionRecord, err := it.Next()
121+
transactionRecord, err := it.Items.Next()
120122
if err != nil {
121123
return nil, errors.WithMessagef(err, "failed querying transactions [%s]", tms.ID())
122124
}

Diff for: token/services/db/dbtest/transactions.go

+11-10
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"testing"
1616
"time"
1717

18+
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver/sql/common"
1819
"github.com/hyperledger-labs/fabric-token-sdk/token"
1920
driver2 "github.com/hyperledger-labs/fabric-token-sdk/token/driver"
2021
"github.com/hyperledger-labs/fabric-token-sdk/token/services/db/driver"
@@ -277,28 +278,28 @@ func TTransaction(t *testing.T, db driver.TokenTransactionDB) {
277278

278279
// get all except last year's
279280
t1 := time.Now().Add(time.Second * 3)
280-
it, err := db.QueryTransactions(driver.QueryTransactionsParams{From: &t0, To: &t1})
281+
it, err := db.QueryTransactions(driver.QueryTransactionsParams{From: &t0, To: &t1}, common.NewNoPagination())
281282
assert.NoError(t, err)
282283
for _, exp := range txs {
283-
act, err := it.Next()
284+
act, err := it.Items.Next()
284285
assert.NoError(t, err)
285286
assertTxEqual(t, exp, act)
286287
}
287-
it.Close()
288+
it.Items.Close()
288289

289290
// get all tx from before the first
290291
yesterday := t0.AddDate(0, 0, -1).Local().UTC().Truncate(time.Second)
291-
it, err = db.QueryTransactions(driver.QueryTransactionsParams{To: &yesterday})
292+
it, err = db.QueryTransactions(driver.QueryTransactionsParams{To: &yesterday}, common.NewNoPagination())
292293
assert.NoError(t, err)
293-
defer it.Close()
294+
defer it.Items.Close()
294295

295296
// find 1 transaction from last year
296-
tr, err := it.Next()
297+
tr, err := it.Items.Next()
297298
assert.NoError(t, err)
298299
assertTxEqual(t, tr1, tr)
299300

300301
// find no other transactions
301-
tr, err = it.Next()
302+
tr, err = it.Items.Next()
302303
assert.NoError(t, err)
303304
assert.Empty(t, tr)
304305

@@ -776,12 +777,12 @@ func TTransactionQueries(t *testing.T, db driver.TokenTransactionDB) {
776777
}
777778

778779
func getTransactions(t *testing.T, db driver.TokenTransactionDB, params driver.QueryTransactionsParams) []*driver.TransactionRecord {
779-
records, err := db.QueryTransactions(params)
780+
records, err := db.QueryTransactions(params, common.NewNoPagination())
780781
assert.NoError(t, err)
781-
defer records.Close()
782+
defer records.Items.Close()
782783
var txs []*driver.TransactionRecord
783784
for {
784-
r, err := records.Next()
785+
r, err := records.Items.Next()
785786
assert.NoError(t, err)
786787
if r == nil {
787788
return txs

Diff for: token/services/db/driver/audit.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package driver
99
import (
1010
"context"
1111

12+
"github.com/hyperledger-labs/fabric-smart-client/platform/common/driver"
1213
"github.com/hyperledger-labs/fabric-token-sdk/token"
1314
)
1415

@@ -29,7 +30,7 @@ type AuditTransactionDB interface {
2930
GetStatus(txID string) (TxStatus, string, error)
3031

3132
// QueryTransactions returns a list of transactions that match the passed params
32-
QueryTransactions(params QueryTransactionsParams) (TransactionIterator, error)
33+
QueryTransactions(params QueryTransactionsParams, pagination driver.Pagination) (*driver.PageIterator[*TransactionRecord], error)
3334

3435
// QueryMovements returns a list of movement records
3536
QueryMovements(params QueryMovementsParams) ([]*MovementRecord, error)

Diff for: token/services/db/driver/ttx.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"context"
1111
"errors"
1212

13+
driver2 "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver"
1314
"github.com/hyperledger-labs/fabric-token-sdk/token"
1415
"github.com/hyperledger-labs/fabric-token-sdk/token/driver"
1516
)
@@ -63,7 +64,8 @@ type TransactionDB interface {
6364
GetStatus(txID string) (TxStatus, string, error)
6465

6566
// QueryTransactions returns a list of transactions that match the given criteria
66-
QueryTransactions(params QueryTransactionsParams) (TransactionIterator, error)
67+
68+
QueryTransactions(params QueryTransactionsParams, pagination driver2.Pagination) (*driver2.PageIterator[*TransactionRecord], error)
6769

6870
// QueryMovements returns a list of movement records
6971
QueryMovements(params QueryMovementsParams) ([]*MovementRecord, error)

Diff for: token/services/db/sql/common/transactions.go

+19-9
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"time"
1818

1919
"github.com/hashicorp/go-uuid"
20+
driver3 "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver"
2021
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver/sql/common"
2122
"github.com/hyperledger-labs/fabric-token-sdk/token"
2223
driver2 "github.com/hyperledger-labs/fabric-token-sdk/token/driver"
@@ -38,26 +39,28 @@ type TransactionDB struct {
3839
writeDB *sql.DB
3940
table transactionTables
4041
ci TokenInterpreter
42+
pi common.PaginationInterpreter
4143
}
4244

43-
func newTransactionDB(readDB, writeDB *sql.DB, tables transactionTables, ci TokenInterpreter) *TransactionDB {
45+
func newTransactionDB(readDB, writeDB *sql.DB, tables transactionTables, ci TokenInterpreter, pi common.PaginationInterpreter) *TransactionDB {
4446
return &TransactionDB{
4547
readDB: readDB,
4648
writeDB: writeDB,
4749
table: tables,
4850
ci: ci,
51+
pi: pi,
4952
}
5053
}
5154

52-
func NewAuditTransactionDB(readDB, writeDB *sql.DB, opts NewDBOpts, ci TokenInterpreter) (driver.AuditTransactionDB, error) {
55+
func NewAuditTransactionDB(readDB, writeDB *sql.DB, opts NewDBOpts, ci TokenInterpreter, pi common.PaginationInterpreter) (driver.AuditTransactionDB, error) {
5356
return NewTransactionDB(readDB, writeDB, NewDBOpts{
5457
DataSource: opts.DataSource,
5558
TablePrefix: opts.TablePrefix + "_aud",
5659
CreateSchema: opts.CreateSchema,
57-
}, ci)
60+
}, ci, pi)
5861
}
5962

60-
func NewTransactionDB(readDB, writeDB *sql.DB, opts NewDBOpts, ci TokenInterpreter) (driver.TokenTransactionDB, error) {
63+
func NewTransactionDB(readDB, writeDB *sql.DB, opts NewDBOpts, ci TokenInterpreter, pi common.PaginationInterpreter) (driver.TokenTransactionDB, error) {
6164
tables, err := GetTableNames(opts.TablePrefix)
6265
if err != nil {
6366
return nil, errors.Wrapf(err, "failed to get table names")
@@ -68,7 +71,7 @@ func NewTransactionDB(readDB, writeDB *sql.DB, opts NewDBOpts, ci TokenInterpret
6871
Requests: tables.Requests,
6972
Validations: tables.Validations,
7073
TransactionEndorseAck: tables.TransactionEndorseAck,
71-
}, ci)
74+
}, ci, pi)
7275
if opts.CreateSchema {
7376
if err = common.InitSchema(writeDB, []string{transactionsDB.GetSchema()}...); err != nil {
7477
return nil, err
@@ -139,7 +142,7 @@ func (db *TransactionDB) QueryMovements(params driver.QueryMovementsParams) (res
139142
return res, nil
140143
}
141144

142-
func (db *TransactionDB) QueryTransactions(params driver.QueryTransactionsParams) (driver.TransactionIterator, error) {
145+
func (db *TransactionDB) QueryTransactions(params driver.QueryTransactionsParams, pagination driver3.Pagination) (*driver3.PageIterator[*driver.TransactionRecord], error) {
143146
conditions, args := common.Where(db.ci.HasTransactionParams(params, db.table.Transactions))
144147
orderBy := movementConditionsSql(driver.QueryMovementsParams{
145148
SearchDirection: driver.FromBeginning,
@@ -150,13 +153,20 @@ func (db *TransactionDB) QueryTransactions(params driver.QueryTransactionsParams
150153
if err != nil {
151154
return nil, errors.Wrapf(err, "failed to compile query")
152155
}
153-
logger.Debug(query, args)
156+
limit, err := db.pi.Interpret(pagination)
157+
if err != nil {
158+
return nil, err
159+
}
160+
query = query + limit
161+
logger.Debug(query, args, limit)
154162
rows, err := db.readDB.Query(query, args...)
155163
if err != nil {
156164
return nil, err
157165
}
158-
159-
return &TransactionIterator{txs: rows}, nil
166+
return &driver3.PageIterator[*driver.TransactionRecord]{
167+
Items: &TransactionIterator{txs: rows},
168+
Pagination: pagination,
169+
}, nil
160170
}
161171

162172
func (db *TransactionDB) GetStatus(txID string) (driver.TxStatus, string, error) {

Diff for: token/services/db/sql/postgres/transactions.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,13 @@ import (
1515
)
1616

1717
func NewAuditTransactionDB(readDB, writeDB *sql.DB, opts common.NewDBOpts) (driver.AuditTransactionDB, error) {
18-
return common.NewAuditTransactionDB(readDB, writeDB, opts, common.NewTokenInterpreter(postgres.NewInterpreter()))
18+
return common.NewAuditTransactionDB(readDB, writeDB, opts,
19+
common.NewTokenInterpreter(postgres.NewInterpreter()),
20+
postgres.NewPaginatedInterpreter())
1921
}
2022

2123
func NewTransactionDB(readDB, writeDB *sql.DB, opts common.NewDBOpts) (driver.TokenTransactionDB, error) {
22-
return common.NewTransactionDB(readDB, writeDB, opts, common.NewTokenInterpreter(postgres.NewInterpreter()))
24+
return common.NewTransactionDB(readDB, writeDB, opts,
25+
common.NewTokenInterpreter(postgres.NewInterpreter()),
26+
postgres.NewPaginatedInterpreter())
2327
}

Diff for: token/services/db/sql/sqlite/transactions.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,13 @@ import (
1515
)
1616

1717
func NewAuditTransactionDB(readDB, writeDB *sql.DB, opts common.NewDBOpts) (driver.AuditTransactionDB, error) {
18-
return common.NewAuditTransactionDB(readDB, writeDB, opts, common.NewTokenInterpreter(sqlite.NewInterpreter()))
18+
return common.NewAuditTransactionDB(readDB, writeDB, opts,
19+
common.NewTokenInterpreter(sqlite.NewInterpreter()),
20+
sqlite.NewPaginatedInterpreter())
1921
}
2022

2123
func NewTransactionDB(readDB, writeDB *sql.DB, opts common.NewDBOpts) (driver.TokenTransactionDB, error) {
22-
return common.NewTransactionDB(readDB, writeDB, opts, common.NewTokenInterpreter(sqlite.NewInterpreter()))
24+
return common.NewTransactionDB(readDB, writeDB, opts,
25+
common.NewTokenInterpreter(sqlite.NewInterpreter()),
26+
sqlite.NewPaginatedInterpreter())
2327
}

Diff for: token/services/ttx/auditor.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ func (a *TxAuditor) Release(tx *Transaction) {
6969
}
7070

7171
// Transactions returns an iterator of transaction records filtered by the given params.
72-
func (a *TxAuditor) Transactions(params QueryTransactionsParams) (driver.TransactionIterator, error) {
73-
return a.auditDB.Transactions(params)
72+
func (a *TxAuditor) Transactions(params QueryTransactionsParams, pagination Pagination) (*PageTransactionsIterator, error) {
73+
return a.auditDB.Transactions(params, pagination)
7474
}
7575

7676
// NewPaymentsFilter returns a programmable filter over the payments sent or received by enrollment IDs.

0 commit comments

Comments
 (0)