From 4b26d9e27dcf27ed8c25b86fa52ffb5f5d9da7cd Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 4 Nov 2022 15:41:21 +0100 Subject: [PATCH] chore: use tagged rosetta version (#13765) * chore: use tagged rosetta version * add unit test in CI, bump tm and update changelog * update rosetta data * update action --- .github/workflows/test.yml | 13 ++--- .gitignore | 3 +- Makefile | 7 ++- contrib/rosetta/rosetta-ci/data.tar.gz | Bin 42701 -> 43416 bytes docs/post.sh | 1 + docs/pre.sh | 5 +- go.mod | 4 +- go.sum | 4 +- simapp/go.mod | 7 +-- simapp/go.sum | 4 +- tests/go.mod | 7 ++- tests/go.sum | 2 + tools/rosetta/CHANGELOG.md | 45 ++++++++++++++++++ .../04-rosetta.md => tools/rosetta/README.md | 10 ++-- tools/rosetta/go.mod | 10 ++-- tools/rosetta/go.sum | 23 +++++---- 16 files changed, 98 insertions(+), 47 deletions(-) create mode 100644 tools/rosetta/CHANGELOG.md rename docs/docs/run-node/04-rosetta.md => tools/rosetta/README.md (93%) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 14d73f61e3..b8c6f7df6c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -183,20 +183,13 @@ jobs: **/**.go go.mod go.sum - - name: Get data from Go build cache - # if: env.GIT_DIFF - if: ${{ false }} - uses: actions/cache@v3 + - uses: actions/setup-go@v3 with: - path: | - ~/go/pkg/mod - ~/.cache/golangci-lint - ~/.cache/go-build - key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }} + go-version: 1.19.2 - name: test rosetta run: | + make test-rosetta-unit make test-rosetta - # if: env.GIT_DIFF liveness-test: runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index a4c9bac710..912fed63bc 100644 --- a/.gitignore +++ b/.gitignore @@ -18,7 +18,8 @@ docs/_build docs/tutorial docs/node_modules docs/modules -docs/run-node/cosmovisor.md +docs/tools/cosmovisor.md +docs/run-node/04-rosetta.md dist tools-stamp buf-stamp diff --git a/Makefile b/Makefile index 8ac88781da..c06e574221 100644 --- a/Makefile +++ b/Makefile @@ -214,9 +214,9 @@ build-docs: test: test-unit test-e2e: - make -C tests test-e2e + $(MAKE) -C tests test-e2e test-integration: - make -C tests test-integration + $(MAKE) -C tests test-integration test-all: test-unit test-e2e test-integration test-ledger-mock test-race test-cover TEST_PACKAGES=./... @@ -340,6 +340,9 @@ test-cover: @export VERSION=$(VERSION); bash -x contrib/test_cover.sh .PHONY: test-cover +test-rosetta-unit: + $(MAKE) -C tools/rosetta test + test-rosetta: docker build -t rosetta-ci:latest -f contrib/rosetta/rosetta-ci/Dockerfile . docker-compose -f contrib/rosetta/docker-compose.yaml up --abort-on-container-exit --exit-code-from test_rosetta --build diff --git a/contrib/rosetta/rosetta-ci/data.tar.gz b/contrib/rosetta/rosetta-ci/data.tar.gz index 2f2dc13dc5a5c8b285cdd711af2b4270648f5d1c..4295048a8b29ceefcf1cb3562a7ffb025bca7d8c 100644 GIT binary patch literal 43416 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 literal 42701 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 ./tools/rosetta github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 + // Update to rosetta-sdk-go temporarly to have `check:spec` passing. See https://github.com/coinbase/rosetta-sdk-go/issues/449 github.com/coinbase/rosetta-sdk-go => github.com/coinbase/rosetta-sdk-go v0.8.2-0.20221007214527-e03849ba430a // dragonberry fix github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 diff --git a/go.sum b/go.sum index d2812940e8..70e31b8454 100644 --- a/go.sum +++ b/go.sum @@ -67,6 +67,8 @@ cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= cosmossdk.io/math v1.0.0-beta.3 h1:TbZxSopz2LqjJ7aXYfn7nJSb8vNaBklW6BLpcei1qwM= cosmossdk.io/math v1.0.0-beta.3/go.mod h1:3LYasri3Zna4XpbrTNdKsWmD5fHHkaNAod/mNT9XdE4= +cosmossdk.io/tools/rosetta v0.1.0 h1:rJ0sp9bTuGzava+C2b0MFaci/zhINdxSOiJE1FC/UJw= +cosmossdk.io/tools/rosetta v0.1.0/go.mod h1:9wDBVqKC7BDJjk+RWvoE4VXs3Ub/i5rLBrieKpoH+Zw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -175,8 +177,6 @@ github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:z github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/rosetta-sdk-go v0.8.2-0.20221007214527-e03849ba430a h1:tAQukG4KWS+9jBQs/lkFfKfONI01QJ1YoxnjzHAEh88= github.com/coinbase/rosetta-sdk-go v0.8.2-0.20221007214527-e03849ba430a/go.mod h1:tXPR6AIW9ogsH4tYIaFOKOgfJNanCvcyl7JKLd4DToc= -github.com/confio/ics23/go v0.7.0 h1:00d2kukk7sPoHWL4zZBZwzxnpA2pec1NPdwbSokJ5w8= -github.com/confio/ics23/go v0.7.0/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= diff --git a/simapp/go.mod b/simapp/go.mod index dd08c38e17..352d81460b 100644 --- a/simapp/go.mod +++ b/simapp/go.mod @@ -7,8 +7,8 @@ require ( cosmossdk.io/core v0.3.2 cosmossdk.io/depinject v1.0.0-alpha.3 cosmossdk.io/math v1.0.0-beta.3 - github.com/cosmos/cosmos-sdk v0.46.1 - cosmossdk.io/tools/rosetta v0.0.0-00010101000000-000000000000 + cosmossdk.io/tools/rosetta v0.1.0 + github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20220909113810-4882f933b1a1 github.com/golang/mock v1.6.0 github.com/spf13/cast v1.5.0 github.com/spf13/cobra v1.6.1 @@ -158,11 +158,12 @@ require ( replace ( github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 + // Update to rosetta-sdk-go temporarly to have `check:spec` passing. See https://github.com/coinbase/rosetta-sdk-go/issues/449 github.com/coinbase/rosetta-sdk-go => github.com/coinbase/rosetta-sdk-go v0.8.2-0.20221007214527-e03849ba430a // dragonberry fix github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 + // Simapp always use the latest version of the cosmos-sdk github.com/cosmos/cosmos-sdk => ../. - cosmossdk.io/tools/rosetta => ./../tools/rosetta // Fix upstream GHSA-h395-qcrw-5vmq vulnerability. // TODO Remove it: https://github.com/cosmos/cosmos-sdk/issues/10409 github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.8.1 diff --git a/simapp/go.sum b/simapp/go.sum index cd788befa1..4a4bdff934 100644 --- a/simapp/go.sum +++ b/simapp/go.sum @@ -67,6 +67,8 @@ cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= cosmossdk.io/math v1.0.0-beta.3 h1:TbZxSopz2LqjJ7aXYfn7nJSb8vNaBklW6BLpcei1qwM= cosmossdk.io/math v1.0.0-beta.3/go.mod h1:3LYasri3Zna4XpbrTNdKsWmD5fHHkaNAod/mNT9XdE4= +cosmossdk.io/tools/rosetta v0.1.0 h1:rJ0sp9bTuGzava+C2b0MFaci/zhINdxSOiJE1FC/UJw= +cosmossdk.io/tools/rosetta v0.1.0/go.mod h1:9wDBVqKC7BDJjk+RWvoE4VXs3Ub/i5rLBrieKpoH+Zw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -175,8 +177,6 @@ github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:z github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/rosetta-sdk-go v0.8.2-0.20221007214527-e03849ba430a h1:tAQukG4KWS+9jBQs/lkFfKfONI01QJ1YoxnjzHAEh88= github.com/coinbase/rosetta-sdk-go v0.8.2-0.20221007214527-e03849ba430a/go.mod h1:tXPR6AIW9ogsH4tYIaFOKOgfJNanCvcyl7JKLd4DToc= -github.com/confio/ics23/go v0.7.0 h1:00d2kukk7sPoHWL4zZBZwzxnpA2pec1NPdwbSokJ5w8= -github.com/confio/ics23/go v0.7.0/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= diff --git a/tests/go.mod b/tests/go.mod index dd44a3b737..b29bf6da52 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -6,7 +6,7 @@ require ( cosmossdk.io/api v0.2.4 cosmossdk.io/depinject v1.0.0-alpha.3 cosmossdk.io/math v1.0.0-beta.3 - cosmossdk.io/simapp v0.0.0-20220908203654-84d4bf5accad + cosmossdk.io/simapp v0.0.0-00010101000000-000000000000 github.com/cosmos/cosmos-sdk v0.46.1 github.com/cosmos/gogoproto v1.4.2 github.com/golang/mock v1.6.0 @@ -27,7 +27,7 @@ require ( cloud.google.com/go/storage v1.14.0 // indirect cosmossdk.io/core v0.3.2 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect - cosmossdk.io/tools/rosetta v0.0.0-00010101000000-000000000000 // indirect + cosmossdk.io/tools/rosetta v0.1.0 // indirect filippo.io/edwards25519 v1.0.0-rc.1 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -163,9 +163,8 @@ require ( replace ( // We always want to test against the latest version of the simapp. cosmossdk.io/simapp => ../simapp - // We always want to test against the latest version of rosetta. - cosmossdk.io/tools/rosetta => ./../tools/rosetta github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 + // Update to rosetta-sdk-go temporarly to have `check:spec` passing. See https://github.com/coinbase/rosetta-sdk-go/issues/449 github.com/coinbase/rosetta-sdk-go => github.com/coinbase/rosetta-sdk-go v0.8.2-0.20221007214527-e03849ba430a // We always want to test against the latest version of the SDK. github.com/cosmos/cosmos-sdk => ../. diff --git a/tests/go.sum b/tests/go.sum index 3c630e9a04..dfa01f2717 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -67,6 +67,8 @@ cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= cosmossdk.io/math v1.0.0-beta.3 h1:TbZxSopz2LqjJ7aXYfn7nJSb8vNaBklW6BLpcei1qwM= cosmossdk.io/math v1.0.0-beta.3/go.mod h1:3LYasri3Zna4XpbrTNdKsWmD5fHHkaNAod/mNT9XdE4= +cosmossdk.io/tools/rosetta v0.1.0 h1:rJ0sp9bTuGzava+C2b0MFaci/zhINdxSOiJE1FC/UJw= +cosmossdk.io/tools/rosetta v0.1.0/go.mod h1:9wDBVqKC7BDJjk+RWvoE4VXs3Ub/i5rLBrieKpoH+Zw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= diff --git a/tools/rosetta/CHANGELOG.md b/tools/rosetta/CHANGELOG.md new file mode 100644 index 0000000000..05a5c44ead --- /dev/null +++ b/tools/rosetta/CHANGELOG.md @@ -0,0 +1,45 @@ + + +# Changelog + +## [Unreleased] + +## v0.1.0 2022-11-04 + +**From `v0.1.0` the minimum version of Tendermint is `v0.37+`, due event type changes.** + +### Improvements + +* [#13583](https://github.com/cosmos/cosmos-sdk/pull/13583) Extract rosetta to its own go.mod. diff --git a/docs/docs/run-node/04-rosetta.md b/tools/rosetta/README.md similarity index 93% rename from docs/docs/run-node/04-rosetta.md rename to tools/rosetta/README.md index 5dc3f2f996..e836ec5ed6 100644 --- a/docs/docs/run-node/04-rosetta.md +++ b/tools/rosetta/README.md @@ -4,18 +4,18 @@ sidebar_position: 1 # Rosetta -The `rosetta` package implements Coinbase's [Rosetta API](https://www.rosetta-api.org). This document provides instructions on how to use the Rosetta API integration. For information about the motivation and design choices, refer to [ADR 035](../architecture/adr-035-rosetta-api-support.md). +The `rosetta` package implements Coinbase's [Rosetta API](https://www.rosetta-api.org). This document provides instructions on how to use the Rosetta API integration. For information about the motivation and design choices, refer to [ADR 035](https://docs.cosmos.network/main/architecture/adr-035-rosetta-api-support). ## Add Rosetta Command The Rosetta API server is a stand-alone server that connects to a node of a chain developed with Cosmos SDK. -To enable Rosetta API support, it's required to add the `RosettaCommand` to your application's root command file (e.g. `appd/cmd/root.go`). +To enable Rosetta API support, it's required to add the `RosettaCommand` to your application's root command file (e.g. `simd/cmd/root.go`). Import the `server` package: ```go - "github.com/cosmos/cosmos-sdk/server" +import "github.com/cosmos/cosmos-sdk/server" ``` Find the following line: @@ -43,13 +43,13 @@ An implementation example can be found in `simapp` package. To run Rosetta in your application CLI, use the following command: ```shell -appd rosetta --help +simd rosetta --help ``` To test and run Rosetta API endpoints for applications that are running and exposed, use the following command: ```shell -appd rosetta +simd rosetta --blockchain "your application name (ex: gaia)" --network "your chain identifier (ex: testnet-1)" --tendermint "tendermint endpoint (ex: localhost:26657)" diff --git a/tools/rosetta/go.mod b/tools/rosetta/go.mod index 77f468d1f6..b40d1243f9 100644 --- a/tools/rosetta/go.mod +++ b/tools/rosetta/go.mod @@ -7,11 +7,11 @@ require ( github.com/btcsuite/btcd/btcec/v2 v2.2.1 github.com/coinbase/rosetta-sdk-go v0.8.1 github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20220909113810-4882f933b1a1 - github.com/spf13/cobra v1.5.0 + github.com/spf13/cobra v1.6.1 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.8.0 - github.com/tendermint/tendermint v0.37.0-alpha.2 - google.golang.org/grpc v1.49.0 + github.com/stretchr/testify v1.8.1 + github.com/tendermint/tendermint v0.37.0-rc1 + google.golang.org/grpc v1.50.1 ) require ( @@ -64,7 +64,7 @@ require ( github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect - github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/klauspost/compress v1.15.9 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect diff --git a/tools/rosetta/go.sum b/tools/rosetta/go.sum index 1d3a026294..9fc0fc0fc4 100644 --- a/tools/rosetta/go.sum +++ b/tools/rosetta/go.sum @@ -306,8 +306,9 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= @@ -338,7 +339,7 @@ github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/lib/pq v1.10.6 h1:jbk+ZieJ0D7EVGJYpL9QTz7/YW6UHbmdnZWYyK5cdBs= +github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -450,8 +451,8 @@ github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= -github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= +github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= +github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -463,8 +464,9 @@ github.com/spf13/viper v1.13.0 h1:BWSJ/M+f+3nmdz9bxB+bWX28kkALN2ok11D0rSo8EJU= github.com/spf13/viper v1.13.0/go.mod h1:Icm2xNL3/8uyh/wFuB1jI7TiTNKp8632Nwegu+zgdYw= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -472,8 +474,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= @@ -484,8 +487,8 @@ github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RM github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15/go.mod h1:z4YtwM70uOnk8h0pjJYlj3zdYwi9l03By6iAIF5j/Pk= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/tendermint/tendermint v0.37.0-alpha.2 h1:G82quAWZUDYMTc9G7b/tntFATfm7nm6PrsvjsuMZDPI= -github.com/tendermint/tendermint v0.37.0-alpha.2/go.mod h1:DSnBfCufF48DhIpmU2inmVo8YiEGus6uInwf46Iu01k= +github.com/tendermint/tendermint v0.37.0-rc1 h1:+m+u7s10QD+7vPh5MORrnYjulCdYtGuzjaqKumDKofY= +github.com/tendermint/tendermint v0.37.0-rc1/go.mod h1:z0MZllXL+s0PgIMMpf2P0PrMttQufQio3kUjY2zebeo= github.com/tendermint/tm-db v0.6.7 h1:fE00Cbl0jayAoqlExN6oyQJ7fR/ZtoVOmvPJ//+shu8= github.com/tendermint/tm-db v0.6.7/go.mod h1:byQDzFkZV1syXr/ReXS808NxA2xvyuuVgXOJ/088L6I= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= @@ -834,8 +837,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= -google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=