Merge PR #5648: Add min-height and max-height filters to TxSearch
This commit is contained in:
parent
c77bb7b038
commit
235aa6c091
@ -100,6 +100,9 @@ for JSON encoding.
|
||||
* (types) [\#5585](https://github.com/cosmos/cosmos-sdk/pull/5585) IBC additions:
|
||||
* `Coin` denomination max lenght has been increased to 32.
|
||||
* Added `CapabilityKey` alias for `StoreKey` to match IBC spec.
|
||||
* (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
|
||||
|
||||
## [v0.38.1] - 2020-02-11
|
||||
|
||||
|
||||
10
client/lcd/swagger-ui/swagger.yaml
vendored
10
client/lcd/swagger-ui/swagger.yaml
vendored
@ -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
|
||||
|
||||
@ -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
|
||||
@ -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)
|
||||
}
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user