Skip to content

Commit

Permalink
Merge PR #5648: Add min-height and max-height filters to TxSearch
Browse files Browse the repository at this point in the history
  • Loading branch information
gagbo authored and alexanderbez committed Mar 24, 2020
1 parent 9de7c0b commit 94c2eb6
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 0 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ Ref: https://keepachangelog.com/en/1.0.0/

### Improvements

* (rest) [\#5648](https://github.com/cosmos/cosmos-sdk/pull/5648) Enhance /txs usability:
* Add `tx.minheight` key to filter transaction with an inclusive minimum block height
* Add `tx.maxheight` key to filter transaction with an inclusive maximum block height
* (crypto/keys) [\#5739](https://github.com/cosmos/cosmos-sdk/pull/5739) Print an error message if the password input failed.

## [v0.38.1] - 2020-02-11
Expand Down
10 changes: 10 additions & 0 deletions client/lcd/swagger-ui/swagger.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,16 @@ paths:
description: Maximum number of items per page
type: integer
x-example: 1
- in: query
name: tx.minheight
type: integer
description: "transactions on blocks with height greater or equal this value"
x-example: 25
- in: query
name: tx.maxheight
type: integer
description: "transactions on blocks with height less than or equal this value"
x-example: 800000
responses:
200:
description: All txs matching the provided events
Expand Down
6 changes: 6 additions & 0 deletions types/rest/rest.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ import (
const (
DefaultPage = 1
DefaultLimit = 30 // should be consistent with tendermint/tendermint/rpc/core/pipe.go:19
TxMinHeightKey = "tx.minheight" // Inclusive minimum height filter
TxMaxHeightKey = "tx.maxheight" // Inclusive maximum height filter
)

// ResponseWithHeight defines a response object type that wraps an original
Expand Down Expand Up @@ -337,6 +339,10 @@ func ParseHTTPArgsWithLimit(r *http.Request, defaultLimit int) (tags []string, p
var tag string
if key == types.TxHeightKey {
tag = fmt.Sprintf("%s=%s", key, value)
} else if key == TxMinHeightKey {
tag = fmt.Sprintf("%s>=%s", types.TxHeightKey, value)
} else if key == TxMaxHeightKey {
tag = fmt.Sprintf("%s<=%s", types.TxHeightKey, value)
} else {
tag = fmt.Sprintf("%s='%s'", key, value)
}
Expand Down
3 changes: 3 additions & 0 deletions types/rest/rest_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ func TestParseHTTPArgs(t *testing.T) {
reqE2 := mustNewRequest(t, "", "/?limit=-1", nil)
req4 := mustNewRequest(t, "", "/?foo=faa", nil)

reqTxH := mustNewRequest(t, "", "/?tx.minheight=12&tx.maxheight=14", nil)

tests := []struct {
name string
req *http.Request
Expand All @@ -89,6 +91,7 @@ func TestParseHTTPArgs(t *testing.T) {
{"error limit 0", reqE2, httptest.NewRecorder(), []string{}, DefaultPage, DefaultLimit, true},

{"tags", req4, httptest.NewRecorder(), []string{"foo='faa'"}, DefaultPage, DefaultLimit, false},
{"tags", reqTxH, httptest.NewRecorder(), []string{"tx.height>=12", "tx.height<=14"}, DefaultPage, DefaultLimit, false},
}
for _, tt := range tests {
tt := tt
Expand Down

0 comments on commit 94c2eb6

Please sign in to comment.