diff --git a/cmd/api/handler/requests.go b/cmd/api/handler/requests.go index 7a7c5993..80570b87 100644 --- a/cmd/api/handler/requests.go +++ b/cmd/api/handler/requests.go @@ -47,7 +47,7 @@ type txListRequest struct { Limit int `query:"limit" validate:"omitempty,min=1,max=100"` Offset int `query:"offset" validate:"omitempty,min=0"` Sort string `query:"sort" validate:"omitempty,oneof=asc desc"` - Height uint64 `query:"height" validate:"omitempty,min=1"` + Height *uint64 `query:"height" validate:"omitempty,min=0"` Status StringArray `query:"status" validate:"omitempty,dive,status"` MsgType StringArray `query:"msg_type" validate:"omitempty,dive,msg_type"` ExcludedMsgType StringArray `query:"excluded_msg_type" validate:"omitempty,dive,msg_type"` @@ -92,7 +92,7 @@ type addressTxRequest struct { Limit uint64 `query:"limit" validate:"omitempty,min=1,max=100"` Offset uint64 `query:"offset" validate:"omitempty,min=0"` Sort string `query:"sort" validate:"omitempty,oneof=asc desc"` - Height uint64 `query:"height" validate:"omitempty,min=1"` + Height *uint64 `query:"height" validate:"omitempty,min=0"` Status StringArray `query:"status" validate:"omitempty,dive,status"` MsgType StringArray `query:"msg_type" validate:"omitempty,dive,msg_type"` diff --git a/cmd/api/handler/tx_test.go b/cmd/api/handler/tx_test.go index b396022b..5d018dbc 100644 --- a/cmd/api/handler/tx_test.go +++ b/cmd/api/handler/tx_test.go @@ -307,7 +307,7 @@ func (s *TxTestSuite) TestListHeight() { Offset: 0, Sort: pgSort("desc"), Status: []string{"success"}, - Height: 1000, + Height: testsuite.Ptr(uint64(1000)), MessageTypes: types.NewMsgTypeBitMask(types.MsgSend), ExcludedMessageTypes: types.NewMsgTypeBitMask(), WithMessages: true, @@ -366,7 +366,7 @@ func (s *TxTestSuite) TestListExcludedMessages() { Offset: 0, Sort: pgSort("desc"), Status: []string{"success"}, - Height: 1000, + Height: testsuite.Ptr(uint64(1000)), ExcludedMessageTypes: types.NewMsgTypeBitMask(types.MsgSend), MessageTypes: types.NewMsgTypeBitMask(), WithMessages: true, diff --git a/internal/storage/postgres/scopes.go b/internal/storage/postgres/scopes.go index 845b4919..08175c4d 100644 --- a/internal/storage/postgres/scopes.go +++ b/internal/storage/postgres/scopes.go @@ -53,8 +53,8 @@ func txFilter(query *bun.SelectQuery, fltrs storage.TxFilter) *bun.SelectQuery { return sq }) } - if fltrs.Height > 0 { - query = query.Where("height = ?", fltrs.Height) + if fltrs.Height != nil { + query = query.Where("height = ?", *fltrs.Height) } if !fltrs.TimeFrom.IsZero() { diff --git a/internal/storage/postgres/tx_test.go b/internal/storage/postgres/tx_test.go index 8dc03134..7797b21d 100644 --- a/internal/storage/postgres/tx_test.go +++ b/internal/storage/postgres/tx_test.go @@ -10,6 +10,7 @@ import ( "github.com/celenium-io/celestia-indexer/internal/storage" "github.com/celenium-io/celestia-indexer/internal/storage/types" + testsuite "github.com/celenium-io/celestia-indexer/internal/test_suite" sdk "github.com/dipdup-net/indexer-sdk/pkg/storage" ) @@ -94,7 +95,7 @@ func (s *StorageTestSuite) TestTxFilterExcludedMessageTypes() { Limit: 10, Offset: 0, ExcludedMessageTypes: types.NewMsgTypeBitMask(types.MsgUnjail), - Height: 1000, + Height: testsuite.Ptr(uint64(1000)), }) s.Require().NoError(err) s.Require().Len(txs, 1) @@ -158,7 +159,7 @@ func (s *StorageTestSuite) TestTxFilterHeight() { Limit: 10, Offset: 0, Status: []string{string(types.StatusSuccess)}, - Height: 1000, + Height: testsuite.Ptr(uint64(1000)), }) s.Require().NoError(err) s.Require().Len(txs, 2) diff --git a/internal/storage/tx.go b/internal/storage/tx.go index 6b24fb63..6058112c 100644 --- a/internal/storage/tx.go +++ b/internal/storage/tx.go @@ -48,7 +48,7 @@ type TxFilter struct { Status []string MessageTypes types.MsgTypeBits ExcludedMessageTypes types.MsgTypeBits - Height uint64 + Height *uint64 TimeFrom time.Time TimeTo time.Time WithMessages bool