From adfdc8574b960cf7fded64722cc0afa887456353 Mon Sep 17 00:00:00 2001 From: CHAMI Rachid Date: Fri, 24 Jun 2022 17:29:39 +0100 Subject: [PATCH] Add support for universal nonce, fixes/improves relayer and depends on latest QGB contract (#497) * adds AttestationRequestI part 1 * adds AttestationRequestI part 2: state machine + orchestrator + relayer changes * use latest QGB contract part 1 * partially working abci + orchestrator * partially working orchestrator + relayer + unit tests refactor * ugly but working e2e orchestrator tests * use latest qgb contract + update tests * update qgb e2e tests * update qgb e2e tests * fix relayer matching commitement signatures with valset validators part 1 * fix relayer matching signatures * refactor + cleanup + making sure things work * fixes tests + removes unnecessary code * fixes docs in proto * uses new method instead of direct struct init for valset/dc confirms * increase qgb e2e test time * final nits * increase QGB E2E github test timeout * remove dead code maxValsetRequestsReturned and maxDataCommitmentRequestsReturned * ignores full long behaviour e2e tests * Typos x/qgb/orchestrator/errors.go Co-authored-by: Evan Forbes <42654277+evan-forbes@users.noreply.github.com> * nits * use require instead of assert * remove unnecessary qgb dc requests + nits Co-authored-by: Evan Forbes <42654277+evan-forbes@users.noreply.github.com> --- .github/workflows/test.yml | 2 +- e2e/qgb/Makefile | 2 +- e2e/qgb/deployer_test.go | 8 +- e2e/qgb/docker-compose.yml | 19 +- e2e/qgb/full_test.go | 23 +- e2e/qgb/orchestrator_test.go | 30 +- e2e/qgb/qgb_network.go | 9 +- e2e/qgb/relayer_test.go | 30 +- go.mod | 9 +- go.sum | 625 +-- proto/qgb/msgs.proto | 16 +- proto/qgb/query.proto | 143 +- proto/qgb/types.proto | 12 +- x/qgb/abci.go | 36 +- x/qgb/abci_test.go | 62 +- x/qgb/handler_test.go | 66 +- x/qgb/keeper/keeper.go | 4 +- x/qgb/keeper/keeper_attestation.go | 90 + x/qgb/keeper/keeper_data_commitment.go | 116 +- .../keeper/keeper_data_commitment_confirm.go | 56 +- x/qgb/keeper/keeper_test.go | 7 +- x/qgb/keeper/keeper_valset.go | 175 +- x/qgb/keeper/keeper_valset_confirm.go | 2 +- x/qgb/keeper/keeper_valset_test.go | 5 +- x/qgb/keeper/keystore/keycache.go | 153 + x/qgb/keeper/keystore/keystore.go | 200 + x/qgb/keeper/msg_server.go | 21 +- x/qgb/keeper/query_attestation.go | 38 + x/qgb/keeper/query_data_commitment.go | 46 - x/qgb/keeper/query_data_commitment_confirm.go | 29 - .../query_data_commitment_confirm_test.go | 318 +- x/qgb/keeper/query_valset.go | 57 +- x/qgb/keeper/query_valset_confirm.go | 2 - x/qgb/keeper/query_valset_confirm_test.go | 31 +- x/qgb/keeper/test_common.go | 2 +- x/qgb/orchestrator/codec.go | 30 + x/qgb/orchestrator/common_test.go | 10 +- x/qgb/orchestrator/deploy_command.go | 8 +- x/qgb/orchestrator/encode_test.go | 4 +- x/qgb/orchestrator/errors.go | 13 + x/qgb/orchestrator/evm_client.go | 54 +- x/qgb/orchestrator/orchestrator.go | 36 +- x/qgb/orchestrator/orchestrator_client.go | 140 +- x/qgb/orchestrator/orchestrator_command.go | 12 +- x/qgb/orchestrator/querier.go | 230 +- x/qgb/orchestrator/relayer.go | 190 +- x/qgb/orchestrator/relayer_client.go | 173 - x/qgb/orchestrator/relayer_command.go | 55 +- .../test/contract_interaction_test.go | 9 +- x/qgb/types/abi_consts.go | 2 +- x/qgb/types/attestation.go | 23 + x/qgb/types/codec.go | 13 +- x/qgb/types/data_commitment.go | 17 +- x/qgb/types/data_commitment_confirm.go | 2 + x/qgb/types/data_commitment_confirm_test.go | 6 +- x/qgb/types/errors.go | 23 +- x/qgb/types/ethereum_signer_test.go | 5 +- x/qgb/types/events.go | 3 +- x/qgb/types/genesis_test.go | 15 +- x/qgb/types/keys.go | 23 +- x/qgb/types/msgs.pb.go | 131 +- x/qgb/types/query.pb.go | 3525 ++++------------- x/qgb/types/query.pb.gw.go | 540 +-- x/qgb/types/types.pb.go | 53 +- x/qgb/types/types_test.go | 37 +- x/qgb/types/validator.go | 121 - x/qgb/types/valset.go | 89 + 67 files changed, 2444 insertions(+), 5592 deletions(-) create mode 100644 x/qgb/keeper/keeper_attestation.go create mode 100644 x/qgb/keeper/keystore/keycache.go create mode 100644 x/qgb/keeper/keystore/keystore.go create mode 100644 x/qgb/keeper/query_attestation.go delete mode 100644 x/qgb/keeper/query_data_commitment.go create mode 100644 x/qgb/orchestrator/codec.go create mode 100644 x/qgb/orchestrator/errors.go delete mode 100644 x/qgb/orchestrator/relayer_client.go create mode 100644 x/qgb/types/attestation.go create mode 100644 x/qgb/types/valset.go diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 47a2920518..dacd98dac4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -268,6 +268,6 @@ jobs: go.mod go.sum - name: Test - run: go test -test.timeout 30m -failfast -v github.com/celestiaorg/celestia-app/e2e/qgb + run: go test -test.timeout 60m -failfast -v github.com/celestiaorg/celestia-app/e2e/qgb env: QGB_INTEGRATION_TEST: true diff --git a/e2e/qgb/Makefile b/e2e/qgb/Makefile index 819508b678..21625bf8b5 100644 --- a/e2e/qgb/Makefile +++ b/e2e/qgb/Makefile @@ -5,4 +5,4 @@ PACKAGES=$(shell go list ./...) all: test test: - @QGB_INTEGRATION_TEST=true go test -mod=readonly -failfast -test.timeout 30m -v $(PACKAGES) + @QGB_INTEGRATION_TEST=true go test -mod=readonly -failfast -test.timeout 60m -v $(PACKAGES) diff --git a/e2e/qgb/deployer_test.go b/e2e/qgb/deployer_test.go index 4f6fac1492..a41b7a2a48 100644 --- a/e2e/qgb/deployer_test.go +++ b/e2e/qgb/deployer_test.go @@ -39,11 +39,7 @@ func TestDeployer(t *testing.T) { // FIXME should we use the evm client here or go for raw queries? evmClient := orchestrator.NewEvmClient(nil, *bridge, nil, network.EVMRPC) - vsNonce, err := evmClient.StateLastValsetNonce(&bind.CallOpts{Context: network.Context}) + eventNonce, err := evmClient.StateLastEventNonce(&bind.CallOpts{Context: network.Context}) assert.NoError(t, err) - assert.Equal(t, uint64(0), vsNonce) - - dcNonce, err := evmClient.StateLastDataRootTupleRootNonce(&bind.CallOpts{Context: network.Context}) - assert.NoError(t, err) - assert.Equal(t, uint64(0), dcNonce) + assert.Equal(t, uint64(0), eventNonce) } diff --git a/e2e/qgb/docker-compose.yml b/e2e/qgb/docker-compose.yml index e53d30b2c0..1ee89c401e 100644 --- a/e2e/qgb/docker-compose.yml +++ b/e2e/qgb/docker-compose.yml @@ -27,17 +27,21 @@ services: context: ../.. depends_on: - core0 + environment: + - MONIKER=core0 + # eth address: 0x966e6f22781EF6a6A82BBB4DB3df8E225DfD9488 + - PRIVATE_KEY=da6ed55cb2894ac2c9c10209c09de8e8b9d109b910338d5bf3d747a7e1fc9eb9 + - TENDERMINT_RPC=tcp://core0:26657 + - CELESTIA_GRPC=core0:9090 + entrypoint: [ + "/bin/bash" + ] command: [ - "orchestrator", "-p", "/opt", - "-x", "qgb-e2e", - "-d", "da6ed55cb2894ac2c9c10209c09de8e8b9d109b910338d5bf3d747a7e1fc9eb9", - "--keyring-account", "core0", - "-t", "tcp://core0:26657", - "-c", "core0:9090" + "/opt/start_orchestrator_after_validator_created.sh" ] - # Eth Address: 0x966e6f22781EF6a6A82BBB4DB3df8E225DfD9488:da6ed55cb2894ac2c9c10209c09de8e8b9d109b910338d5bf3d747a7e1fc9eb9 volumes: - ${PWD}/celestia-app/core0/keyring-test:/opt/keyring-test:ro + - ${PWD}/scripts/start_orchestrator_after_validator_created.sh:/opt/start_orchestrator_after_validator_created.sh:ro core1: container_name: core1 @@ -187,6 +191,7 @@ services: image: trufflesuite/ganache-cli command: [ "--port=8545", + "--verbose", "--host=0.0.0.0", "--networkId=1234", "--chainId=1234", diff --git a/e2e/qgb/full_test.go b/e2e/qgb/full_test.go index 33b351b69e..1e5ed37bd4 100644 --- a/e2e/qgb/full_test.go +++ b/e2e/qgb/full_test.go @@ -3,9 +3,9 @@ package e2e import ( "context" "github.com/celestiaorg/celestia-app/x/qgb/orchestrator" - "github.com/celestiaorg/celestia-app/x/qgb/types" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "os" "testing" "time" @@ -15,7 +15,8 @@ import ( // the valsets and data commitments are relayed correctly. // currently, it takes around 10min to reach 120 block. func TestFullLongBehaviour(t *testing.T) { - if os.Getenv("QGB_INTEGRATION_TEST") != TRUE { + // Separating it from other e2e as it takes around 20min to finish + if os.Getenv("QGB_INTEGRATION_FULL_TEST") != TRUE { t.Skip("Skipping QGB integration tests") } @@ -33,13 +34,14 @@ func TestFullLongBehaviour(t *testing.T) { HandleNetworkError(t, network, err, false) // check whether the four validators are up and running - querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil) + querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil, network.EncCfg) HandleNetworkError(t, network, err, false) // check whether all the validators are up and running - lastValsets, err := querier.QueryLastValsets(network.Context) + latestValset, err := querier.QueryLatestValset(network.Context) assert.NoError(t, err) - assert.Equal(t, 4, len(lastValsets[0].Members)) + require.NotNil(t, latestValset) + assert.Equal(t, 4, len(latestValset.Members)) // check whether the QGB contract was deployed bridge, err := network.GetLatestDeployedQGBContract(network.Context) @@ -47,13 +49,12 @@ func TestFullLongBehaviour(t *testing.T) { evmClient := orchestrator.NewEvmClient(nil, *bridge, nil, network.EVMRPC) - // check whether the relayer relayed all data commitments - dcNonce, err := evmClient.StateLastDataRootTupleRootNonce(&bind.CallOpts{Context: network.Context}) + // check whether the relayer relayed all attestations + eventNonce, err := evmClient.StateLastEventNonce(&bind.CallOpts{Context: network.Context}) assert.NoError(t, err) - assert.GreaterOrEqual(t, dcNonce, 100/types.DataCommitmentWindow) - // check whether the relayer relayed all valsets - vsNonce, err := evmClient.StateLastValsetNonce(&bind.CallOpts{Context: network.Context}) + // attestations are either data commitments or valsets + latestNonce, err := querier.QueryLatestAttestationNonce(network.Context) assert.NoError(t, err) - assert.GreaterOrEqual(t, vsNonce, lastValsets[0].Nonce) + assert.GreaterOrEqual(t, eventNonce, latestNonce-1) } diff --git a/e2e/qgb/orchestrator_test.go b/e2e/qgb/orchestrator_test.go index 6ad8a20c89..749e8a9b9f 100644 --- a/e2e/qgb/orchestrator_test.go +++ b/e2e/qgb/orchestrator_test.go @@ -5,6 +5,7 @@ import ( "github.com/celestiaorg/celestia-app/x/qgb/orchestrator" "github.com/celestiaorg/celestia-app/x/qgb/types" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "os" "testing" ) @@ -36,13 +37,13 @@ func TestOrchestratorWithOneValidator(t *testing.T) { HandleNetworkError(t, network, err, false) // FIXME should we use the querier here or go for raw queries? - querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil) + querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil, network.EncCfg) HandleNetworkError(t, network, err, false) vsConfirm, err := querier.QueryValsetConfirm(ctx, 1, CORE0ACCOUNTADDRESS) // assert the confirm exist assert.NoError(t, err) - assert.NotNil(t, vsConfirm) + require.NotNil(t, vsConfirm) // assert that it carries the right eth address assert.Equal(t, CORE0EVMADDRESS, vsConfirm.EthAddress) @@ -92,11 +93,11 @@ func TestOrchestratorWithTwoValidators(t *testing.T) { err = network.WaitForOrchestratorToStart(network.Context, CORE1ACCOUNTADDRESS) HandleNetworkError(t, network, err, false) - querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil) + querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil, network.EncCfg) HandleNetworkError(t, network, err, false) // check core0 submited the valset confirm - core0ValsetConfirm, err := querier.QueryValsetConfirm(ctx, 2, CORE0ACCOUNTADDRESS) + core0ValsetConfirm, err := querier.QueryValsetConfirm(ctx, 1, CORE0ACCOUNTADDRESS) // assert the confirm exist assert.NoError(t, err) assert.NotNil(t, core0ValsetConfirm) @@ -117,7 +118,7 @@ func TestOrchestratorWithTwoValidators(t *testing.T) { assert.Equal(t, CORE0EVMADDRESS, core0DataCommitmentConfirm.EthAddress) // check core1 submited the valset confirm - core1ValsetConfirm, err := querier.QueryValsetConfirm(ctx, 2, CORE1ACCOUNTADDRESS) + core1ValsetConfirm, err := querier.QueryValsetConfirm(ctx, 1, CORE1ACCOUNTADDRESS) // assert the confirm exist assert.NoError(t, err) assert.NotNil(t, core1ValsetConfirm) @@ -169,14 +170,11 @@ func TestOrchestratorWithMultipleValidators(t *testing.T) { err = network.WaitForOrchestratorToStart(network.Context, CORE3ACCOUNTADDRESS) HandleNetworkError(t, network, err, false) - querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil) + querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil, network.EncCfg) HandleNetworkError(t, network, err, false) - lastValsets, err := querier.QueryLastValsets(ctx) - assert.NoError(t, err) - // check core0 submited the valset confirm - core0ValsetConfirm, err := querier.QueryValsetConfirm(ctx, lastValsets[0].Nonce, CORE0ACCOUNTADDRESS) + core0ValsetConfirm, err := querier.QueryValsetConfirm(ctx, 1, CORE0ACCOUNTADDRESS) // assert the confirm exist assert.NoError(t, err) assert.NotNil(t, core0ValsetConfirm) @@ -197,7 +195,7 @@ func TestOrchestratorWithMultipleValidators(t *testing.T) { assert.Equal(t, CORE0EVMADDRESS, core0DataCommitmentConfirm.EthAddress) // check core1 submited the valset confirm - core1ValsetConfirm, err := querier.QueryValsetConfirm(ctx, lastValsets[0].Nonce, CORE1ACCOUNTADDRESS) + core1ValsetConfirm, err := querier.QueryValsetConfirm(ctx, 1, CORE1ACCOUNTADDRESS) // assert the confirm exist assert.NoError(t, err) assert.NotNil(t, core1ValsetConfirm) @@ -218,7 +216,7 @@ func TestOrchestratorWithMultipleValidators(t *testing.T) { assert.Equal(t, CORE1EVMADDRESS, core1DataCommitmentConfirm.EthAddress) // check core2 submited the valset confirm - core2ValsetConfirm, err := querier.QueryValsetConfirm(ctx, lastValsets[0].Nonce, CORE2ACCOUNTADDRESS) + core2ValsetConfirm, err := querier.QueryValsetConfirm(ctx, 1, CORE2ACCOUNTADDRESS) // assert the confirm exist assert.NoError(t, err) assert.NotNil(t, core2ValsetConfirm) @@ -240,7 +238,7 @@ func TestOrchestratorWithMultipleValidators(t *testing.T) { assert.Equal(t, CORE2EVMADDRESS, core2DataCommitmentConfirm.EthAddress) // check core3 submited the valset confirm - core3ValsetConfirm, err := querier.QueryValsetConfirm(ctx, lastValsets[0].Nonce, CORE3ACCOUNTADDRESS) + core3ValsetConfirm, err := querier.QueryValsetConfirm(ctx, 1, CORE3ACCOUNTADDRESS) // assert the confirm exist assert.NoError(t, err) assert.NotNil(t, core3ValsetConfirm) @@ -303,7 +301,7 @@ func TestOrchestratorReplayOld(t *testing.T) { HandleNetworkError(t, network, err, false) // FIXME should we use the querier here or go for raw queries? - querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil) + querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil, network.EncCfg) HandleNetworkError(t, network, err, false) // check core0 submitted valset 1 confirm @@ -315,7 +313,7 @@ func TestOrchestratorReplayOld(t *testing.T) { assert.Equal(t, CORE0EVMADDRESS, vs1Core0Confirm.EthAddress) // check core0 submitted valset 2 confirm - vs2Core0Confirm, err := querier.QueryValsetConfirm(ctx, 2, CORE0ACCOUNTADDRESS) + vs2Core0Confirm, err := querier.QueryValsetConfirm(ctx, 1, CORE0ACCOUNTADDRESS) // assert the confirm exist assert.NoError(t, err) assert.NotNil(t, vs2Core0Confirm) @@ -331,7 +329,7 @@ func TestOrchestratorReplayOld(t *testing.T) { assert.Equal(t, CORE1EVMADDRESS, vs1Core1Confirm.EthAddress) // check core1 submitted valset 2 confirm - vs2Core1Confirm, err := querier.QueryValsetConfirm(ctx, 2, CORE1ACCOUNTADDRESS) + vs2Core1Confirm, err := querier.QueryValsetConfirm(ctx, 1, CORE1ACCOUNTADDRESS) // assert the confirm exist assert.NoError(t, err) assert.NotNil(t, vs2Core1Confirm) diff --git a/e2e/qgb/qgb_network.go b/e2e/qgb/qgb_network.go index 8a4e67da47..35d5921df4 100644 --- a/e2e/qgb/qgb_network.go +++ b/e2e/qgb/qgb_network.go @@ -5,11 +5,12 @@ import ( "fmt" "github.com/celestiaorg/celestia-app/x/qgb/orchestrator" "github.com/celestiaorg/celestia-app/x/qgb/types" - wrapper "github.com/celestiaorg/quantum-gravity-bridge/ethereum/solidity/wrappers/QuantumGravityBridge.sol" + wrapper "github.com/celestiaorg/quantum-gravity-bridge/wrappers/QuantumGravityBridge.sol" "github.com/ethereum/go-ethereum/accounts/abi/bind" ethcommon "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/ethclient" "github.com/google/uuid" + "github.com/tendermint/spm/cosmoscmd" "github.com/tendermint/tendermint/rpc/client/http" "github.com/testcontainers/testcontainers-go" "math/big" @@ -27,6 +28,7 @@ type QGBNetwork struct { EVMRPC string TendermintRPC string CelestiaGRPC string + EncCfg cosmoscmd.EncodingConfig } func NewQGBNetwork(_ctx context.Context) (*QGBNetwork, error) { @@ -42,6 +44,7 @@ func NewQGBNetwork(_ctx context.Context) (*QGBNetwork, error) { EVMRPC: "http://localhost:8545", TendermintRPC: "tcp://localhost:26657", CelestiaGRPC: "localhost:9090", + EncCfg: orchestrator.MakeEncodingConfig(), } // trap Ctrl+C or ctx.Done() @@ -363,7 +366,7 @@ func (network QGBNetwork) WaitForBlockWithCustomTimeout( // and for any nonce, but would require adding a new method to the querier. Don't think it is worth it now as // the number of valsets that will be signed is trivial and reaching 0 would be in no time). func (network QGBNetwork) WaitForOrchestratorToStart(_ctx context.Context, accountAddress string) error { - querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil) + querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil, network.EncCfg) if err != nil { return err } @@ -450,7 +453,7 @@ func (network QGBNetwork) WaitForRelayerToStart(_ctx context.Context, bridge *wr } return ctx.Err() default: - nonce, err := bridge.StateLastDataRootTupleRootNonce(&bind.CallOpts{Context: ctx}) + nonce, err := bridge.StateEventNonce(&bind.CallOpts{Context: ctx}) if err == nil && nonce != nil && nonce.Int64() >= 1 { return nil } diff --git a/e2e/qgb/relayer_test.go b/e2e/qgb/relayer_test.go index dba61683fc..778f24ddf3 100644 --- a/e2e/qgb/relayer_test.go +++ b/e2e/qgb/relayer_test.go @@ -40,13 +40,9 @@ func TestRelayerWithOneValidator(t *testing.T) { // FIXME should we use the evm client here or go for raw queries? evmClient := orchestrator.NewEvmClient(nil, *bridge, nil, network.EVMRPC) - vsNonce, err := evmClient.StateLastValsetNonce(&bind.CallOpts{Context: ctx}) + vsNonce, err := evmClient.StateLastEventNonce(&bind.CallOpts{Context: ctx}) assert.NoError(t, err) - assert.Equal(t, uint64(1), vsNonce) - - dcNonce, err := evmClient.StateLastDataRootTupleRootNonce(&bind.CallOpts{Context: ctx}) - assert.NoError(t, err) - assert.Equal(t, uint64(1), dcNonce) + assert.GreaterOrEqual(t, vsNonce, uint64(2)) } func TestRelayerWithTwoValidators(t *testing.T) { @@ -91,13 +87,9 @@ func TestRelayerWithTwoValidators(t *testing.T) { // FIXME should we use the evm client here or go for raw queries? evmClient := orchestrator.NewEvmClient(nil, *bridge, nil, network.EVMRPC) - dcNonce, err := evmClient.StateLastDataRootTupleRootNonce(&bind.CallOpts{Context: ctx}) - assert.NoError(t, err) - assert.Equal(t, uint64(1), dcNonce) - - vsNonce, err := evmClient.StateLastValsetNonce(&bind.CallOpts{Context: ctx}) + dcNonce, err := evmClient.StateLastEventNonce(&bind.CallOpts{Context: ctx}) assert.NoError(t, err) - assert.Equal(t, uint64(2), vsNonce) + assert.GreaterOrEqual(t, dcNonce, uint64(3)) } func TestRelayerWithMultipleValidators(t *testing.T) { @@ -132,12 +124,12 @@ func TestRelayerWithMultipleValidators(t *testing.T) { HandleNetworkError(t, network, err, false) // check whether the four validators are up and running - querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil) + querier, err := orchestrator.NewQuerier(network.CelestiaGRPC, network.TendermintRPC, nil, network.EncCfg) HandleNetworkError(t, network, err, false) - lastValsets, err := querier.QueryLastValsets(ctx) + latestValset, err := querier.QueryLatestValset(network.Context) assert.NoError(t, err) - assert.Equal(t, 4, len(lastValsets[0].Members)) + assert.Equal(t, 4, len(latestValset.Members)) bridge, err := network.GetLatestDeployedQGBContract(network.Context) HandleNetworkError(t, network, err, false) @@ -148,11 +140,7 @@ func TestRelayerWithMultipleValidators(t *testing.T) { // FIXME should we use the evm client here or go for raw queries? evmClient := orchestrator.NewEvmClient(nil, *bridge, nil, network.EVMRPC) - dcNonce, err := evmClient.StateLastDataRootTupleRootNonce(&bind.CallOpts{Context: ctx}) - assert.NoError(t, err) - assert.Equal(t, uint64(1), dcNonce) - - vsNonce, err := evmClient.StateLastValsetNonce(&bind.CallOpts{Context: ctx}) + dcNonce, err := evmClient.StateLastEventNonce(&bind.CallOpts{Context: ctx}) assert.NoError(t, err) - assert.GreaterOrEqual(t, uint64(2), vsNonce) + assert.GreaterOrEqual(t, dcNonce, uint64(3)) } diff --git a/go.mod b/go.mod index 23e62473b1..235feecf82 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.17 require ( github.com/celestiaorg/nmt v0.8.0 - github.com/celestiaorg/quantum-gravity-bridge v1.0.4-0.20220324221947-cc0560976538 + github.com/celestiaorg/quantum-gravity-bridge v1.2.0 github.com/cosmos/cosmos-sdk v0.44.3 github.com/cosmos/ibc-go v1.2.2 github.com/ethereum/go-ethereum v1.10.12 @@ -13,6 +13,9 @@ require ( github.com/google/uuid v1.3.0 github.com/gorilla/mux v1.8.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 + github.com/pkg/errors v0.9.1 + github.com/regen-network/cosmos-proto v0.3.1 + github.com/rs/zerolog v1.26.0 github.com/spf13/cast v1.4.1 github.com/spf13/cobra v1.3.0 github.com/stretchr/testify v1.7.0 @@ -119,7 +122,6 @@ require ( github.com/opencontainers/runc v1.0.2 // indirect github.com/pelletier/go-toml v1.9.4 // indirect github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_golang v1.11.0 // indirect github.com/prometheus/client_model v0.2.0 // indirect @@ -128,12 +130,9 @@ require ( github.com/prometheus/tsdb v0.7.1 // indirect github.com/rakyll/statik v0.1.7 // indirect github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect - github.com/regen-network/cosmos-proto v0.3.1 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/rjeczalik/notify v0.9.1 // indirect - github.com/rogpeppe/go-internal v1.7.0 // indirect github.com/rs/cors v1.7.0 // indirect - github.com/rs/zerolog v1.26.0 // indirect github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa // indirect github.com/shirou/gopsutil v3.21.6+incompatible // indirect github.com/sirupsen/logrus v1.8.1 // indirect diff --git a/go.sum b/go.sum index 2811e3b431..954a0db42b 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,4 @@ -4d63.com/gochecknoglobals v0.0.0-20201008074935-acfc0b28355a/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= -4d63.com/gochecknoglobals v0.1.0/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= -bitbucket.org/creachadair/shell v0.0.6/go.mod h1:8Qqi/cYk7vPnsOePHroKXDJYmb5x7ENhtiFtfZq8K+M= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= @@ -16,7 +13,6 @@ cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6 cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.60.0/go.mod h1:yw2G51M9IfRboUH61Us8GqCeF1PzPblB823Mn2q2eAU= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= @@ -49,22 +45,15 @@ cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2k cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/pubsub v1.5.0/go.mod h1:ZEwJccE3z93Z2HWvstpri00jOg7oO4UZDtKhwDwqF0w= -cloud.google.com/go/spanner v1.7.0/go.mod h1:sd3K2gZ9Fd0vMPLXzeCrF6fq4i63Q7aTLW/lBIfBkIk= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-beta.2 h1:/BZRNzm8N4K4eWfK28dL4yescorxtO7YG1yun8fy+pI= filippo.io/edwards25519 v1.0.0-beta.2/go.mod h1:X+pm78QAUPtFLi1z9PYIlS/bdDnvbCOGKtZ+ACWEf7o= -github.com/AlecAivazis/survey/v2 v2.1.1/go.mod h1:9FJRdMdDm8rnT+zHVbvQT2RTSTLq0Ttd6q3Vl2fahjk= -github.com/Antonboom/errname v0.1.4/go.mod h1:jRXo3m0E0EuCnK3wbsSVH3X55Z4iTDLl6ZfCxwFj4TM= -github.com/Antonboom/errname v0.1.5/go.mod h1:DugbBstvPFQbv/5uLcRRzfrNqKE9tVdVCqWCLp6Cifo= -github.com/Antonboom/nilnil v0.1.0/go.mod h1:PhHLvRPSghY5Y7mX4TW+BHZQYo1A8flE5H20D3IPZBo= github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= @@ -93,30 +82,19 @@ github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= -github.com/CosmWasm/wasmd v0.16.0/go.mod h1:EmtH0lN3ZlHyU5Sn1VzbZ9guf0BMBSPifzodBcK6d2E= -github.com/CosmWasm/wasmvm v0.14.0/go.mod h1:Id107qllDJyJjVQQsKMOy2YYF98sqPJ2t+jX1QES40A= github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.4.8 h1:Rpmta4xZ/MgZnriKNd24iZMhGpP5dvUcs/uqfBapKZY= github.com/DataDog/zstd v1.4.8/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/InjectiveLabs/etherman v1.7.0/go.mod h1:7unNlA/9UVNZhneEWtNnFWfGDJ5KijkGprkpEF9I1BA= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/go-winio v0.4.15/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= @@ -131,19 +109,15 @@ github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg3 github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= -github.com/Microsoft/hcsshim v0.8.17/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= github.com/Microsoft/hcsshim v0.8.23 h1:47MSwtKGXet80aIn+7h4YI6fwPmwIghAnsx2aOUrG2M= github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8/go.mod h1:oX5x61PbNXchhh0oikYAH+4Pcfw5LKv21+Jnpr6r6Pc= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= -github.com/Pallinder/go-randomdata v1.2.0/go.mod h1:yHmJgulpD2Nfrm0cR9tI/+oAgRqCQQixsA8HyRZfV9Y= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= @@ -165,30 +139,16 @@ github.com/adlio/schema v1.1.13/go.mod h1:L5Z7tw+7lRK1Fnpi/LT/ooCP1elkXn0krMWBQH github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= -github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI= -github.com/alecthomas/chroma v0.8.2/go.mod h1:sko8vR34/90zvl5QdcUdvzL3J8NKjAUx9va9jPuFNoM= -github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0= -github.com/alecthomas/kong v0.2.4/go.mod h1:kQOmtJgV+Lb4aj+I2LEn40cbtawdWJ9Y8QLq+lElKxE= -github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= -github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/andrew-d/go-termutil v0.0.0-20150726205930-009166a695a2/go.mod h1:jnzFpU88PccN/tPPhCpnNU8mZphvKxYM9lLNkd8e+os= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= -github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= -github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= @@ -201,47 +161,26 @@ github.com/armon/go-metrics v0.3.10 h1:FR+drcQStOe+32sYyJYyZ7FIdgoGGBnwLl+flodp8 github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/ashanbrown/forbidigo v1.2.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= -github.com/ashanbrown/makezero v0.0.0-20210520155254-b6261585ddde/go.mod h1:oG9Dnez7/ESBqc4EdrdNlryeo7d0KcW1ftXHm7nU/UU= -github.com/atotto/clipboard v0.1.2/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/avast/retry-go v2.6.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= -github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.25.16/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.25.48/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.36.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.38.68/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2 v1.7.0/go.mod h1:tb9wi5s61kTDA5qCkcDbt3KRVV74GGslQkl/DRdX/P4= -github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= -github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw= github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo= -github.com/aws/aws-sdk-go-v2/credentials v1.4.3/go.mod h1:FNNC6nQZQUuyhq5aE5c7ata8o9e4ECGmS4lAXC7o1mQ= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0/go.mod h1:gqlclDEZp4aqJOancXK6TN24aKhT0W0Ae9MHk3wzTMM= -github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4/go.mod h1:ZcBrrI3zBKlhGFNYWvju0I3TR93I7YIgAfy82Fh4lcQ= -github.com/aws/aws-sdk-go-v2/service/appconfig v1.4.2/go.mod h1:FZ3HkCe+b10uFZZkFdvf98LHW21k49W8o8J366lqVKY= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.5.0/go.mod h1:acH3+MQoiMzozT/ivU+DbRg7Ooo2298RdRaWcOv+4vM= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2/go.mod h1:72HRZDLMtmVQiLG2tLfQcaWLCssELvGl+Zf2WVxMmR8= github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4= github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= -github.com/aws/aws-sdk-go-v2/service/sso v1.4.2/go.mod h1:NBvT9R1MEF+Ud6ApJKM0G+IkPchKS7p7c2YPKwHmBOk= github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= -github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod h1:8EzeIqfWt2wWT4rJVu3f21TfrhJ8AEMzVybRNSb/b4g= github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= github.com/aws/smithy-go v1.5.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= -github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= -github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= @@ -253,16 +192,11 @@ github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngE github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= -github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blizzy78/varnamelen v0.3.0/go.mod h1:hbwRdBvoBqxk34XyQ6HA0UH3G0/1TKuv5AC4eaBT0Ec= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= -github.com/breml/bidichk v0.1.1/go.mod h1:zbfeitpevDUGI7V91Uzzuwrn4Vls8MoBMrwtt78jmso= -github.com/briandowns/spinner v1.11.1/go.mod h1:QOuQk7x+EaDASo80FEXwlwiA+j/PPIcX3FScO+3/ZPQ= github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= github.com/btcsuite/btcd v0.0.0-20171128150713-2e60448ffcc6/go.mod h1:Dmm/EzmjnCiweXmzRIAiUWCInVmPgjkzgv5k4tVyXiQ= github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d/go.mod h1:d3C0AkH6BRcvO8T0UEPu53cnw4IbV63x1bEjildYhO0= @@ -287,14 +221,9 @@ github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtE github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= -github.com/bugsnag/bugsnag-go v1.5.3/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/bugsnag/panicwrap v1.3.1/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/bugsnag/panicwrap v1.3.4/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= -github.com/calmh/randomart v1.1.0/go.mod h1:DQUbPVyP+7PAs21w/AnfMKG5NioxS3TbZ2F9MSK/jFM= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/casbin/casbin/v2 v2.31.6/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg= github.com/celestiaorg/celestia-core v1.0.1-tm-v0.34.16 h1:5oHY4W127OgrylTkNagd95u3hr9szUbvRiEs7G2yiqc= @@ -307,15 +236,13 @@ github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4 h1:CJdIpo8n github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4/go.mod h1:fzuHnhzj1pUygGz+1ZkB3uQbEUL4htqCGJ4Qs2LwMZA= github.com/celestiaorg/nmt v0.8.0 h1:wtX7GRouLbmBe+ffnc8+cOg2UbWteM+Y1imZuZ/EeqU= github.com/celestiaorg/nmt v0.8.0/go.mod h1:3bqzTj8xKj0DgQUpOgZzoxvtNkC3MS/hTbQ6dn8SIa0= -github.com/celestiaorg/quantum-gravity-bridge v1.0.4-0.20220324221947-cc0560976538 h1:4s+wZbgqXQvB9c8qWXYs74Fz0vnCCvJrADGjIBF8gJs= -github.com/celestiaorg/quantum-gravity-bridge v1.0.4-0.20220324221947-cc0560976538/go.mod h1:nLPf4Sfvw7ys7gquInIe8fG3JZF980H+24N1MHnXA8M= +github.com/celestiaorg/quantum-gravity-bridge v1.2.0 h1:l/LEEUP+x8MhhXB8rrWkyUVFZgQj1Ur/TAwUpnyLK38= +github.com/celestiaorg/quantum-gravity-bridge v1.2.0/go.mod h1:6WOajINTDEUXpSj5UZzod16UZ96ZVB/rFNKyM+Mt1gI= github.com/celestiaorg/rsmt2d v0.3.1/go.mod h1:2Frw4GEYUnVu6Mvlo+CUzuC2/8wn+zLwVVtp+muN6vg= github.com/celestiaorg/rsmt2d v0.4.0 h1:mpICbeXYKE1yNW8VBzgBrcnzuMKzutpROH1g2xI7Ls4= github.com/celestiaorg/rsmt2d v0.4.0/go.mod h1:EZ+O2KdCq8xI7WFwjATLdhtMdrdClmAs2w7zENDr010= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= -github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/cenkalti/backoff/v4 v4.1.2 h1:6Yo7N8UP2K6LWZnW94DLVSSrbobcWdVzAYOisuDPIFo= github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= @@ -328,19 +255,8 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/charithe/durationcheck v0.0.8/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= -github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= -github.com/charmbracelet/bubbles v0.7.5/go.mod h1:IRTORFvhEI6OUH7WhN2Ks8Z8miNGimk1BE6cmHijOkM= -github.com/charmbracelet/bubbles v0.7.6/go.mod h1:0D4XRYK0tjo8JMvflz1obpVcOikNZSG46SFauoZj22s= -github.com/charmbracelet/bubbletea v0.12.2/go.mod h1:3gZkYELUOiEUOp0bTInkxguucy/xRbGSOcbMs1geLxg= -github.com/charmbracelet/bubbletea v0.13.1/go.mod h1:tp9tr9Dadh0PLhgiwchE5zZJXm5543JYjHG9oY+5qSg= -github.com/charmbracelet/charm v0.8.6/go.mod h1:8dE3uX+TYSpa7Q6e/CmjN6WSd7koSAKNQTGWugFREx4= -github.com/charmbracelet/glamour v0.2.1-0.20210311152407-2b8307dcb400/go.mod h1:VO5pQW96Vj3qJy9ikwb5Zo8lcvt2ZDFoE3UXl+SduQs= -github.com/charmbracelet/glow v1.4.0/go.mod h1:PmzpVs6fvXd60PmqRkbKtSz412SfDFPD3XbraI1hnJQ= -github.com/chavacava/garif v0.0.0-20210405164556-e8a0a408d6af/go.mod h1:Qjyv4H3//PWVzTeCezG2b9IRn6myJxJSr4TD/xo6ojU= github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= -github.com/chris-ramon/douceur v0.2.0/go.mod h1:wDW5xjJdeoMm1mRt4sD4c/LbF/mWdEpRXQKjTR8nIBE= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -363,14 +279,10 @@ 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.6.10 h1:rgHD/nHjxLh0lMEdfGDqpTtlvtSBwULqrrZ2qPdNaCM= github.com/coinbase/rosetta-sdk-go v0.6.10/go.mod h1:J/JFMsfcePrjJZkwQFLh+hJErkAmdm9Iyy3D5Y0LfXo= -github.com/confio/ics23/go v0.6.3/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg= github.com/confio/ics23/go v0.6.6 h1:pkOy18YxxJ/r0XFDCnrl4Bjv6h4LkBSpLS6F38mrKL8= github.com/confio/ics23/go v0.6.6/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg= -github.com/consensys/bavard v0.1.8-0.20210105233146-c16790d2aa8b/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q= -github.com/consensys/goff v0.3.10/go.mod h1:xTldOBEHmFiYS0gPXd3NsaEqZWlnmeWcRLWgD3ba3xc= -github.com/consensys/gurvy v0.3.8/go.mod h1:sN75xnsiD593XnhbhvG2PkOy194pZBzqShWF/kwuW/g= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= @@ -404,8 +316,6 @@ github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7 github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU= github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI= github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s= -github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= -github.com/containerd/containerd v1.5.2/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= github.com/containerd/containerd v1.5.9 h1:rs6Xg1gtIxaeyG+Smsb/0xaSDu1VgFhOCKBXxMxbsF4= github.com/containerd/containerd v1.5.9/go.mod h1:fvQqCfadDGga5HZyn3j4+dx56qj2I9YwBrlSdalvJYQ= github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= @@ -413,7 +323,6 @@ github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL github.com/containerd/continuity v0.0.0-20190827140505-75bee3e2ccb6/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= -github.com/containerd/continuity v0.0.0-20200928162600-f2cc35102c2a/go.mod h1:W0qIOTD7mp2He++YVq+kgfXezRYqzP1uDuMVH1bITDY= github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= github.com/containerd/continuity v0.1.0 h1:UFRRY5JemiAhPZrr/uE0n8fMTLcZsUvySPr1+D7pgr8= @@ -473,30 +382,24 @@ github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= -github.com/cosmos/go-bip39 v0.0.0-20200817134856-d632e0d11689/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= -github.com/cosmos/iavl v0.15.3/go.mod h1:OLjQiAQ4fGD2KDZooyJG9yz+p2ao2IAYSbke8mVvSA4= github.com/cosmos/iavl v0.17.1 h1:b/Cl8h1PRMvsu24+TYNlKchIu7W6tmxIBGe6E9u2Ybw= github.com/cosmos/iavl v0.17.1/go.mod h1:7aisPZK8yCpQdy3PMvKeO+bhq1NwDjUwjzxwwROUxFk= -github.com/cosmos/ibc-go v1.2.0/go.mod h1:wGjeNd+T4kpGrt0OC8DTiE/qXLrlmTPNpdoYsBZUjKI= github.com/cosmos/ibc-go v1.2.2 h1:bs6TZ8Es1kycIu2AHlRZ9dzJ+mveqlLN/0sjWtRH88o= github.com/cosmos/ibc-go v1.2.2/go.mod h1:XmYjsRFOs6Q9Cz+CSsX21icNoH27vQKb3squgnCOCbs= -github.com/cosmos/ibc-go/v2 v2.0.0/go.mod h1:n53VhNSUxCtMLysvgyNhwrGHL8OW+318LMjtSmaVe9Q= github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 h1:DdzS1m6o/pCqeZ8VOAit/gyATedRgjvkVI+UCrLpyuU= github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76/go.mod h1:0mkLWIoZuQ7uBoospo5Q9zIpqq6rYCPJDSUdeCJvPM8= github.com/cosmos/ledger-cosmos-go v0.11.1 h1:9JIYsGnXP613pb2vPjFeMMjBI5lEDsEaF6oYorTy6J4= github.com/cosmos/ledger-cosmos-go v0.11.1/go.mod h1:J8//BsAGTo3OC/vDLjMRFLW6q0WAaXvHnVc7ZmE8iUY= github.com/cosmos/ledger-go v0.9.2 h1:Nnao/dLwaVTk1Q5U9THldpUMMXU94BOTWPddSmVB6pI= github.com/cosmos/ledger-go v0.9.2/go.mod h1:oZJ2hHAZROdlHiwTg4t7kP+GKIIkBT+o6c9QWFanOyI= -github.com/cosmos/relayer v1.0.0-rc1.0.20210205103857-f4b56856caeb/go.mod h1:4jsV86MGoyWpzphO21eHD50D/11IrKYkqLE5OI2TVeQ= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= @@ -511,13 +414,9 @@ github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1S github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= -github.com/daixiang0/gci v0.2.9/go.mod h1:+4dZ7TISfSmqfAGv59ePaHfNzgGtIkHAhhdKggP1JAc= github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe23fU= github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U= -github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk= -github.com/dariubs/percent v0.0.0-20200128140941-b7801cf1c7e2/go.mod h1:NDZpkezJ8QqyIW/510MywB5T2KdC8v/0oTlEoPcMsRM= github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= -github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -527,11 +426,9 @@ github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vs github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= -github.com/denis-tingajkin/go-header v0.4.2/go.mod h1:eLRHAVXzE5atsKAnNRDB90WHCFFnBUn4RN0nRcs1LJA= github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dgraph-io/badger/v2 v2.2007.1/go.mod h1:26P/7fbL4kUZVEVKLAKXkBXKOydDmM2p1e+NhhnBCAE= github.com/dgraph-io/badger/v2 v2.2007.2 h1:EjjK0KqwaFMlPin1ajhP943VPENHJdEz1KLIegjaI3k= github.com/dgraph-io/badger/v2 v2.2007.2/go.mod h1:26P/7fbL4kUZVEVKLAKXkBXKOydDmM2p1e+NhhnBCAE= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= @@ -549,13 +446,11 @@ github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55k github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/dnephin/pflag v1.0.7/go.mod h1:uxE91IoWURlOiTUIA8Mq5ZZkAv3dPUfZNaT80Zm7OQE= -github.com/docker/cli v20.10.8+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v20.10.11+incompatible h1:OqzI/g/W54LczvhnccGqniFoQghHx3pklbLuhfXpqGo= github.com/docker/docker v20.10.11+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= @@ -589,22 +484,15 @@ github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaB github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/proto v1.9.0/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A= -github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/enigmampc/btcutil v1.0.3-0.20200723161021-e2fb6adb2a25 h1:2vLKys4RBU4pn2T/hjXMbvwTr1Cvy5THHrQkbeY9HRk= github.com/enigmampc/btcutil v1.0.3-0.20200723161021-e2fb6adb2a25/go.mod h1:hTr8+TLQmkUkgcuh3mcr5fjrT9c64ZzsBCdCEC6UppY= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.10.1/go.mod h1:AY7fTTXNdv/aJ2O5jwpxAPOWUZ7hQAEvzN5Pf27BkQQ= -github.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.6.2/go.mod h1:2t7qjJNvHPx8IjnBOzl9E9/baC+qXE/TeeyBRzgJDws= -github.com/esimonov/ifshort v1.0.2/go.mod h1:yZqNJUrNn20K8Q9n2CrjTKYyVEmX209Hgu+M1LBpeZE= -github.com/esimonov/ifshort v1.0.3/go.mod h1:yZqNJUrNn20K8Q9n2CrjTKYyVEmX209Hgu+M1LBpeZE= github.com/ethereum/go-ethereum v1.9.25/go.mod h1:vMkFiYLHI4tgPw4k2j4MHKoovchFE8plZ0M9VMk4/oM= -github.com/ethereum/go-ethereum v1.10.1/go.mod h1:E5e/zvdfUVr91JZ0AwjyuJM3x+no51zZJRz61orLLSk= github.com/ethereum/go-ethereum v1.10.12 h1:el/KddB3gLEsnNgGQ3SQuZuiZjwnFTYHe5TwUet5Om4= github.com/ethereum/go-ethereum v1.10.12/go.mod h1:W3yfrFyL9C1pHcwY5hmRHVDaorTiQxhYBkKyu5mEDHw= -github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51 h1:0JZ+dUmQeA8IIVUMzysrX4/AKuQwWhV2dYQuPZdvdSQ= github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= @@ -616,16 +504,12 @@ github.com/fatih/color v1.3.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= -github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fjl/memsize v0.0.0-20180418122429-ca190fb6ffbc/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= @@ -638,12 +522,9 @@ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4 github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= -github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM= -github.com/fzipp/gocyclo v0.3.1/go.mod h1:DJHO6AUmbdqj2ET4Z9iArSuwWgYDRryYt2wASxc7x3E= github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= -github.com/gertd/go-pluralize v0.1.7/go.mod h1:O4eNeeIf91MHh1GJ2I47DNtaesm66NYvjYgAahcqSDQ= github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -652,17 +533,9 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= -github.com/go-bindata/go-bindata v3.1.2+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= -github.com/go-critic/go-critic v0.5.6/go.mod h1:cVjj0DfqewQVIlIAGexPCaGaZDAqGE29PYDDADIVNEo= -github.com/go-critic/go-critic v0.6.1/go.mod h1:SdNCfU0yF3UBjtaZGw6586/WocupMOJuiqgom5DsQxM= -github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= -github.com/go-git/go-billy/v5 v5.0.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-git-fixtures/v4 v4.0.1/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw= -github.com/go-git/go-git/v5 v5.1.0/go.mod h1:ZKfuPUoY1ZqIG4QG9BDBh3G4gLM5zvPuSJAozQrZuyM= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -673,7 +546,6 @@ github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgO github.com/go-kit/kit v0.11.0 h1:IGmIEl7aHTYh6E2HlT+ptILBotjo4xl8PMDl852etiI= github.com/go-kit/kit v0.11.0/go.mod h1:73/6Ixaufkvb5Osvkls8C79vuQ49Ba1rUEUYNSf+FUw= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4= @@ -700,63 +572,24 @@ github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+ github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= -github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/go-redis/redis v6.15.9+incompatible h1:K0pv1D7EQUjfyoMql+r/jZqCLizCGKFlFgcHWWmHQjg= github.com/go-redis/redis v6.15.9+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= -github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= -github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= -github.com/go-toolsmith/astequal v1.0.1/go.mod h1:4oGA3EZXTVItV/ipGiOx7NWkY5veFfcsOJVS2YxltLw= -github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= -github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21/go.mod h1:dDStQCHtmZpYOmjRP/8gHHnCCch3Zz3oEgCdZVdtweU= -github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= -github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc= -github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= -github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= -github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= -github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= -github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/envy v1.7.1/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= -github.com/gobuffalo/envy v1.8.1/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= -github.com/gobuffalo/envy v1.9.0/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/gobuffalo/genny v0.6.0/go.mod h1:Vigx9VDiNscYpa/LwrURqGXLSIbzTfapt9+K6gF1kTA= -github.com/gobuffalo/github_flavored_markdown v1.1.0/go.mod h1:TSpTKWcRTI0+v7W3x8dkSKMLJSUpuVitlptCkpeY8ic= -github.com/gobuffalo/helpers v0.5.0/go.mod h1:stpgxJ2C7T99NLyAxGUnYMM2zAtBk5NKQR0SIbd05j4= -github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM= -github.com/gobuffalo/logger v1.0.1/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs= -github.com/gobuffalo/logger v1.0.3/go.mod h1:SoeejUwldiS7ZsyCBphOGURmWdwUFXs0J7TCjEhjKxM= -github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q= -github.com/gobuffalo/packd v1.0.0/go.mod h1:6VTc4htmJRFB7u1m/4LeMTWjFoYrUiBkU9Fdec9hrhI= -github.com/gobuffalo/packr/v2 v2.7.1/go.mod h1:qYEvAazPaVxy7Y7KR0W8qYEE+RymX74kETFqjFoFlOc= -github.com/gobuffalo/packr/v2 v2.8.0/go.mod h1:PDk2k3vGevNE3SwVyVRgQCCXETC9SaONCNSXT1Q8M1g= -github.com/gobuffalo/packr/v2 v2.8.1/go.mod h1:c/PLlOuTU+p3SybaJATW3H6lX/iK7xEz5OeMf+NnJpg= -github.com/gobuffalo/plush v3.8.3+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plushgen v0.1.2/go.mod h1:3U71v6HWZpVER1nInTXeAwdoRNsRd4W8aeIa1Lyp+Bk= -github.com/gobuffalo/tags v2.1.7+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY= -github.com/gobuffalo/uuid v2.0.5+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE= -github.com/gobuffalo/validate v2.0.3+incompatible/go.mod h1:N+EtDe0J8252BgfzQUChBgfd6L93m9weay53EWFVsMM= -github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/goccy/go-yaml v1.8.0/go.mod h1:wS4gNoLalDSJxo/SpngzPQ2BN4uuZVLCmbM4S3vd4+Y= -github.com/goccy/go-yaml v1.9.2/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= @@ -764,10 +597,7 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/gateway v1.1.0 h1:u0SuhL9+Il+UbjM9VIE3ntfRujKbvVpFvNB4HbjeVQ0= github.com/gogo/gateway v1.1.0/go.mod h1:S7rR8FRQyG3QFESeSv4l2WnsyzlCLG0CzBbUUo/mbic= github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= @@ -793,7 +623,6 @@ github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71 github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -819,25 +648,11 @@ github.com/golang/snappy v0.0.3-0.20201103224600-674baa8c7fc3/go.mod h1:/XxbfmMg github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= -github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= -github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8= -github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= -github.com/golangci/golangci-lint v1.42.1/go.mod h1:MuInrVlgg2jq4do6XI1jbkErbVHVbwdrLLtGv6p2wPI= -github.com/golangci/golangci-lint v1.43.0/go.mod h1:VIFlUqidx5ggxDfQagdvd9E67UjMXtTHBkBQ7sHoC5Q= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= -github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= -github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= -github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= -github.com/golangci/revgrep v0.0.0-20210208091834-cd28932614b5/go.mod h1:LK+zW4MpyytAWQRz0M4xnzEk50lSvqDQKfx304apFkY= -github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2/go.mod h1:LK+zW4MpyytAWQRz0M4xnzEk50lSvqDQKfx304apFkY= -github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg= -github.com/google/certificate-transparency-go v1.1.1/go.mod h1:FDKqPvSXawb2ecErVRrD+nfy23RCzyl7eqVCEmlT1Zs= github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -852,15 +667,12 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-github/v37 v37.0.0/go.mod h1:LM7in3NmXDrX58GbEHy7FtNLbI2JijX93RnMKvWG3m4= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/goterm v0.0.0-20190703233501-fc88cf888a3f/go.mod h1:nOFQdrUlIlx6M6ODdSpBj1NVA+VgLC6kmw60mkw34H4= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -873,7 +685,6 @@ github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200507031123-427632fa3b1c/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= @@ -884,8 +695,6 @@ github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= -github.com/google/trillian v1.3.11/go.mod h1:0tPraVHrSDkA3BO6vKX67zgLXs6SsOAbHEivX+9mPgw= -github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -898,14 +707,9 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gookit/color v1.2.7/go.mod h1:AhIE+pS6D4Ql0SQWbBeXPHw7gY0/sjHoA4s/n1KB7xg= -github.com/gookit/color v1.4.2/go.mod h1:fqRyamkC1W8uxl+lxCQxOT09l/vYfZ+QeiX3rKQHCoQ= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= -github.com/gordonklaus/ineffassign v0.0.0-20210225214923-2e10b2664254/go.mod h1:M9mZEtGIsR1oDaZagNPNG9iq9n2HrhZ17dsXk73V3Lw= -github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b03hfBX9Ov0ZBDgXXens4rxSxmqFBbhvKv2yVA= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= @@ -914,30 +718,16 @@ github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/rpc v1.2.0/go.mod h1:V4h9r+4sF5HnzqbwIez0fKSpANP0zlYd3qR7p36jkTQ= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1-0.20190629185528-ae1634f6a989/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw= -github.com/gostaticanalysis/analysisutil v0.4.1/go.mod h1:18U/DLpRgIUd459wGxVHE0fRgmo1UgHDcbw7F5idXu0= -github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= -github.com/gostaticanalysis/comment v1.3.0/go.mod h1:xMicKDx7XRXYdVwY9f9wQpDJVnqWxw9wCauCMKp+IBI= -github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= -github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= -github.com/gostaticanalysis/forcetypeassert v0.0.0-20200621232751-01d4955beaa5/go.mod h1:qZEedyP/sY1lTGV1uJ3VhWZ2mqag3IkWsDHVbplHXak= -github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= -github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= -github.com/gostaticanalysis/testutil v0.4.0/go.mod h1:bLIoPefWXrRi/ssLFWX1dx7Repi5x3CuviD3dgAZaBU= github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= github.com/graph-gophers/graphql-go v0.0.0-20191115155744-f33e81362277/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/graph-gophers/graphql-go v0.0.0-20201113091052-beb923fada29/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= @@ -947,8 +737,6 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/grpc-ecosystem/grpc-gateway v1.15.2/go.mod h1:vO11I9oWA+KsxmfFQPhLnnIb1VDE24M+pdxZFiuZcA8= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= @@ -974,8 +762,6 @@ github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= -github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-hclog v1.0.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -985,22 +771,15 @@ github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iP github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -1019,40 +798,27 @@ github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOn github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= -github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q= -github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= -github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 h1:uUjLpLt6bVvZ72SQc/B4dXcPBw4Vgd7soowdRl52qEM= github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87/go.mod h1:XGsKKeXxeRr95aEOgipvluMPlgjr7dGlk9ZTWOjcUcg= -github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= github.com/holiman/uint256 v1.1.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/holiman/uint256 v1.2.0 h1:gpSYcPLWGv4sG43I2mVLiDZCNDh/EpGjSk8tmtxitHM= github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= -github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= -github.com/huin/goupnp v1.0.1-0.20200620063722-49508fba0031/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo= github.com/huin/goupnp v1.0.2 h1:RfGLP+h3mvisuWEyybxNq5Eft3NWhHLPeUN72kpKZoI= github.com/huin/goupnp v1.0.2/go.mod h1:0dxJBVBHqTMjIUMkESDTNgOOx/Mw5wYIfyFmdzSamkM= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= -github.com/iancoleman/strcase v0.1.3/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= 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/ilgooz/analytics-go v3.1.1-0.20200723195510-acde4190c655+incompatible/go.mod h1:36xDpOWfOEZLx5a4Qra2Ntu7by75m/qwZZx9/YrPrtY= -github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/improbable-eng/grpc-web v0.13.0/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs= github.com/improbable-eng/grpc-web v0.14.1 h1:NrN4PY71A6tAz2sKDvC5JCauENWp0ykG8Oq1H3cpFvw= github.com/improbable-eng/grpc-web v0.14.1/go.mod h1:zEjGHa8DAlkoOXmswrNvhUGEYQA9UI7DhrGeHR1DMGU= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= @@ -1071,24 +837,14 @@ github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19y github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= -github.com/itchyny/go-flags v1.5.0/go.mod h1:lenkYuCobuxLBAd/HGFE4LRoW8D3B6iXRQfWYJ+MNbA= -github.com/itchyny/gojq v0.12.2/go.mod h1:mi4PdXSlFllHyByM68JKUrbiArtEdEnNEmjbwxcQKAg= -github.com/itchyny/timefmt-go v0.1.2/go.mod h1:0osSSCQSASBJMsIZnhAaF1C2fCBTJZXrnj37mG8/c+A= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458 h1:6OvNmYgJyexcZ3pYbTI9jWx5tHo1Dee/tWbLMfPe2TA= github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jawher/mow.cli v1.2.0/go.mod h1:y+pcA3jBAdo/GIZx/0rFjw/K2bVEODP9rfZOfaiq8Ko= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= -github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4= github.com/jhump/protoreflect v1.9.0 h1:npqHz788dryJiR/l6K/RUQAyh2SwV91+d1dnh4RjO9w= github.com/jhump/protoreflect v1.9.0/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg= -github.com/jingyugao/rowserrcheck v1.1.0/go.mod h1:TOQpc2SLx6huPfoFGK3UOnEG+u02D3C1GeosjupAKCA= -github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= -github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -1096,17 +852,9 @@ github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHW github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= -github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.2.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= -github.com/josharian/txtarfs v0.0.0-20210218200122-0702f000015a/go.mod h1:izVPOvVRsHiKkeGCT6tYBNWyDVuzj9wAaBb5R9qamfw= -github.com/jpillora/ansi v1.0.2/go.mod h1:D2tT+6uzJvN1nBVQILYWkIdq7zG+b5gcFN5WI/VyjMY= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/jpillora/chisel v1.7.3/go.mod h1:BC2zg11mTIoyGPUjc2EkTgfz3uUUV93+K9tNYCCU/fw= -github.com/jpillora/requestlog v1.0.0/go.mod h1:HTWQb7QfDc2jtHnWe2XEIEeJB7gJPnVdpNn52HXPvy8= -github.com/jpillora/sizestr v1.0.0/go.mod h1:bUhLv4ctkknatr6gR42qPxirmd5+ds1u7mzD+MZ33f0= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -1120,46 +868,30 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a/go.mod h1:UJSiEoRfvx3hP73CvoARgeLjaIOjybY9vj8PUPPFGeU= -github.com/juju/ratelimit v1.0.1/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk= github.com/julienschmidt/httprouter v1.1.1-0.20170430222011-975b5c4c7c21/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/julz/importas v0.0.0-20210419104244-841f0c0fe66d/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= -github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= github.com/karalabe/usb v0.0.0-20211005121534-4c5740d64559/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= -github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/karrick/godirwalk v1.15.3/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= -github.com/karrick/godirwalk v1.15.8/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= -github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d h1:Z+RDyXzjKE0i2sTjZ/b1uxiGtPhFy34Ou/Tk0qwN0kM= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d/go.mod h1:JJNrCn9otv/2QP4D7SMJBgaleKpOf66PnW6F5WGNRIc= -github.com/kilic/bls12-381 v0.0.0-20201226121925-69dacb279461/go.mod h1:vDTTHJONJ6G+P2R74EhnyotQDTliQDnFEwhdmfzw1ig= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/errcheck v1.6.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/kkdai/bstream v1.0.0/go.mod h1:FDnDOHt5Yx4p3FaHcioFT0QjDOtgUpvjeZqAs+NVZZA= github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.12/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.13.5 h1:9O69jUPDcsT9fEm74W92rZL9FQY7rCdaXVneq+yyzl4= github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= -github.com/knadh/koanf v1.3.2/go.mod h1:HZ7HMLIGbrWJUfgtEzfHvzR/rX+eIqQlBNPRr4Vt42s= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -1167,50 +899,29 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= 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/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kulti/thelper v0.4.0/go.mod h1:vMu2Cizjy/grP+jmsvOFDx1kYP6+PD1lqg4Yu5exl2U= -github.com/kunwardeep/paralleltest v1.0.2/go.mod h1:ZPqNm1fVHPllh5LPVujzbVz1JN2GhLxSfY+oqUsvG30= -github.com/kunwardeep/paralleltest v1.0.3/go.mod h1:vLydzomDFpk7yu5UX02RmP0H8QfRPOV/oFhWN85Mjb4= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= -github.com/ldez/gomoddirectives v0.2.2/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= -github.com/ldez/tagliatelle v0.2.0/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= -github.com/leanovate/gopter v0.2.8/go.mod h1:gNcbPWNEWRe4lm+bycKqxUYoH5uoVje5SkOJ3uoLer8= github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/letsencrypt/pkcs11key/v4 v4.0.0/go.mod h1:EFUvBDay26dErnNb70Nd0/VW3tJiIbETBPTl9ATXQag= -github.com/lib/pq v0.0.0-20180327071824-d34b9ff171c2/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.3 h1:v9QZf2Sn6AmjXtQeFpdoq/eaNtYP6IN+7lcrygsIAtg= github.com/lib/pq v1.10.3/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.0.2 h1:QNK2iAFa8gjAe1SPz6mHSMuCcjs+X1wlHzeOSqcmlfs= github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= -github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/lucasjones/reggen v0.0.0-20180717132126-cdb49ff09d77/go.mod h1:5ELEyG+X8f+meRWHuqUOewBOhvHkl7M76pdGEansxW4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/lunixbochs/vtclean v0.0.0-20180621232353-2d01aacdc34a/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/lyft/protoc-gen-star v0.5.3/go.mod h1:V0xaHgaf5oCCqmcxYcWiDfTiKsZsRc87/1qhoTACD8w= -github.com/magefile/mage v1.10.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= -github.com/magefile/mage v1.11.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= @@ -1218,14 +929,7 @@ github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPK github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEXGwov2nIKuGQ= -github.com/maratori/testpackage v1.0.1/go.mod h1:ddKdw+XG0Phzhx8BFDTKgpWP4i7MpApTE5fXSKAqwDU= -github.com/markbates/errx v1.1.0/go.mod h1:PLa46Oex9KNbVDZhKel8v1OT7hD5JZ2eI7AHhA0wswc= -github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI= -github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= -github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= -github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -1235,7 +939,6 @@ github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= @@ -1253,38 +956,19 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= -github.com/mattn/go-zglob v0.0.3/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= -github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= -github.com/meowgorithm/babyenv v1.3.0/go.mod h1:lwNX+J6AGBFqNrMZ2PTLkM6SO+W4X8DOg9zBDO4j3Ig= -github.com/meowgorithm/babyenv v1.3.1/go.mod h1:lwNX+J6AGBFqNrMZ2PTLkM6SO+W4X8DOg9zBDO4j3Ig= -github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= -github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= -github.com/mgechev/revive v1.1.1/go.mod h1:PKqk4L74K6wVNwY2b6fr+9Qqr/3hIsHVfZCJdbvozrY= -github.com/mgechev/revive v1.1.2/go.mod h1:bnXsMr+ZTH09V5rssEI+jHAZ4z+ZdyhgO/zsy3EhK+0= -github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= -github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= -github.com/microcosm-cc/bluemonday v1.0.4/go.mod h1:8iwZnFn2CDDNZ0r6UXhF4xawGvzaqzCRa1n3/lO3W2w= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= -github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= -github.com/mikesmitty/edkey v0.0.0-20170222072505-3356ea4e686a/go.mod h1:v8eSC2SMp9/7FTKUncp7fH9IwPfw+ysMObcEz5FWheQ= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94= github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= @@ -1293,14 +977,9 @@ github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLT github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= -github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= -github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= -github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= @@ -1313,9 +992,6 @@ github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= -github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= github.com/moby/sys/mount v0.2.0 h1:WhCW5B355jtxndN5ovugJlMFJawbUODuW8fSnEH6SSM= github.com/moby/sys/mount v0.2.0/go.mod h1:aAivFE2LB3W4bACsUXChRHQ0qKWsetY4Y9V7sxOougM= @@ -1325,9 +1001,6 @@ github.com/moby/sys/mountinfo v0.5.0 h1:2Ks8/r6lopsxWi9m58nlwjaeSzUX9iiL1vj5qB/9 github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= -github.com/moby/term v0.0.0-20200915141129-7f0af18e79f2/go.mod h1:TjQg8pa4iejrUrjiz0MCtMV38jdMNW4doKSiBrEvCQQ= -github.com/moby/term v0.0.0-20201101162038-25d840ce174a/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= -github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -1337,36 +1010,19 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c h1:nXxl5PrvVm2L/wCy8dQu6DMTwH4oIuGN8GJDAlqDdVE= github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mozilla/scribe v0.0.0-20180711195314-fb71baf557c1/go.mod h1:FIczTrinKo8VaLxe6PWTPEXRXDIHz2QAwiaBaP5/4a8= -github.com/mozilla/tls-observatory v0.0.0-20210609171429-7bc42856d2e5/go.mod h1:FUqVoUPHSEdDR0MnFM3Dh8AU0pZHLXUD127SAJGER/s= github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= -github.com/muesli/gitcha v0.2.0/go.mod h1:Ri8m9TZS4+ORG4JVmVKUQcWZuxDvUW3UKxMdQfzG2zI= -github.com/muesli/go-app-paths v0.2.1/go.mod h1:SxS3Umca63pcFcLtbjVb+J0oD7cl4ixQWoBKhGEtEho= -github.com/muesli/reflow v0.1.0/go.mod h1:I9bWAt7QTg/que/qmUCJBGlj7wEq8OAFBjPNjc6xK4I= -github.com/muesli/reflow v0.2.0/go.mod h1:qT22vjVmM9MIUeLgsVYe/Ye7eZlbv9dZjL3dVhUqLX8= -github.com/muesli/reflow v0.2.1-0.20210115123740-9e1d0d53df68/go.mod h1:Xk+z4oIWdQqJzsxyjgl3P22oYZnHdZ8FFTHAQQt5BMQ= -github.com/muesli/sasquatch v0.0.0-20200811221207-66979d92330a/go.mod h1:+XG0ne5zXWBTSbbe7Z3/RWxaT8PZY6zaZ1dX6KjprYY= -github.com/muesli/termenv v0.7.2/go.mod h1:ct2L5N2lmix82RaY3bMWwVu/jUFc9Ule0KGDCiKYPh8= -github.com/muesli/termenv v0.7.4/go.mod h1:pZ7qY9l3F7e5xsAOS0zCew2tME+p7bWeBkotCEcIIcc= -github.com/muesli/termenv v0.8.0/go.mod h1:kzt/D/4a88RoheZmwfqorY3A+tnsSMA9HJC/fQSFKo0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-proto-validators v0.0.0-20180403085117-0950a7990007/go.mod h1:m2XC9Qq0AlmmVksL6FktJCdTYyLk7V3fKyp0sl1yWQo= -github.com/mwitkow/go-proto-validators v0.2.0/go.mod h1:ZfA1hW+UH/2ZHOWvQ3HnQaU0DtnpXu850MZiy+YUgcc= github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76/go.mod h1:x5OoJHDHqxHS801UIuhqGl6QdSAEJvtausosHSdazIo= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/nakabonne/nestif v0.3.0/go.mod h1:dI314BppzXjJ4HsCnbo7XzrJHPszZsjnk5wEBSYHI2c= -github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= @@ -1382,14 +1038,9 @@ github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= github.com/neilotoole/errgroup v0.1.5/go.mod h1:Q2nLGf+594h0CLBs/Mbg6qOr7GtqDK7C2S41udRnToE= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nishanths/exhaustive v0.2.3/go.mod h1:bhIX678Nx8inLM9PbpvK1yv6oGtoP8BfaIeMzgBNKvc= -github.com/nishanths/predeclared v0.0.0-20190419143655-18a43bb90ffc/go.mod h1:62PewwiQTlm/7Rj+cxVYqZvDIUc+JjZq6GHAC1fsObQ= github.com/nishanths/predeclared v0.0.0-20200524104333-86fad755b4d3/go.mod h1:nt3d53pc1VYcphSCIaYAJtnPYnr3Zyn8fMq2wvPGPso= -github.com/nishanths/predeclared v0.2.1/go.mod h1:HvkGJcA3naj4lOwnFXFDkFxVtSqQMB9sbB1usJ+xjQE= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -1399,8 +1050,6 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.2-0.20190409134802-7e037d187b0c/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ= -github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -1412,11 +1061,8 @@ github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+ github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= +github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= @@ -1424,12 +1070,8 @@ github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.10.3 h1:gph6h/qe9GSUw1NhH1gp+qb+h8rXD8Cy60Z32Qw3ELA= github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= -github.com/onsi/gomega v1.10.4/go.mod h1:g/HbgYopi++010VEqkFgJHKC09uJiW9UkXvMUuKHUCQ= -github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= -github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE= -github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -1471,16 +1113,11 @@ github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= -github.com/ory/dockertest/v3 v3.6.2/go.mod h1:EFLcVUOl8qCwp9NyDAcCDtq/QviLtYswW/VbWzUnTNE= -github.com/ory/dockertest/v3 v3.8.0/go.mod h1:9zPATATlWQru+ynXP+DytBQrsXV7Tmlx7K86H6fQaDo= -github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= -github.com/otiai10/copy v1.4.2/go.mod h1:XWfuS3CrI0R6IE0FbgHsEazaXO8G0LpMp9o8tos0x4E= github.com/otiai10/copy v1.6.0 h1:IinKAryFFuPONZ7cm6T6E2QX/vcJwSnlaA5lfoaXIiQ= github.com/otiai10/copy v1.6.0/go.mod h1:XWfuS3CrI0R6IE0FbgHsEazaXO8G0LpMp9o8tos0x4E= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= -github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= github.com/otiai10/mint v1.3.2/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -1490,8 +1127,6 @@ github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChl github.com/pborman/uuid v0.0.0-20170112150404-1b00554d8222/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/pelletier/go-toml v1.8.0/go.mod h1:D6yutnOGMveHEPV7VQOuvI/gXY61bv+9bAOTRnLElKs= github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= @@ -1502,7 +1137,6 @@ github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHu github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -1514,10 +1148,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/polyfloyd/go-errorlint v0.0.0-20210722154253-910bb7978349/go.mod h1:wi9BfjxjF/bwiZ701TzmfKu6UKC357IOAtNr0Td0Lvw= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= @@ -1531,7 +1163,6 @@ github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeD github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU= github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -1553,10 +1184,7 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.21.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.30.0 h1:JEkYlQnpzrzQFxi6gnukFPdQ+ac82oRhzMcIduJu/Ug= github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -1577,104 +1205,54 @@ github.com/prometheus/procfs v0.7.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/pseudomuto/protoc-gen-doc v1.3.2/go.mod h1:y5+P6n3iGrbKG+9O04V5ld71in3v/bX88wUwgt+U8EA= -github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q= -github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI= -github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30= -github.com/quasilyte/go-ruleguard v0.3.4/go.mod h1:57FZgMnoo6jqxkYKmVj5Fc8vOt0rVzoE/UNAmFFIPqA= -github.com/quasilyte/go-ruleguard v0.3.13/go.mod h1:Ul8wwdqR6kBVOCt2dipDBkE+T6vAV/iixkrKuRTN1oQ= -github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/dsl v0.3.2/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/dsl v0.3.10/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc= -github.com/quasilyte/go-ruleguard/rules v0.0.0-20210203162857-b223e0831f88/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50= -github.com/quasilyte/go-ruleguard/rules v0.0.0-20210428214800-545e0d2e0bf7/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= -github.com/radovskyb/watcher v1.0.7/go.mod h1:78okwvY5wPdzcb1UYnip1pvrZNIVEIh/Cm+ZuvsUYIg= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rdegges/go-ipify v0.0.0-20150526035502-2d94a6a86c40/go.mod h1:j4c6zEU0eMG1oiZPUy+zD4ykX0NIpjZAEOEAviTWC18= -github.com/regen-network/cosmos-proto v0.3.0/go.mod h1:zuP2jVPHab6+IIyOx3nXHFN+euFNeS3W8XQkcdd4s7A= github.com/regen-network/cosmos-proto v0.3.1 h1:rV7iM4SSFAagvy8RiyhiACbWEGotmqzywPxOvwMdxcg= github.com/regen-network/cosmos-proto v0.3.1/go.mod h1:jO0sVX6a1B36nmE8C9xBFXpNwWejXC7QqCOnH3O0+YM= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= -github.com/rhnvrm/simples3 v0.6.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA= -github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rjeczalik/notify v0.9.1 h1:CLCKso/QK1snAlnhNR/CNvNiFU2saUtjV0bx3EwNeCE= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.4.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.7.0 h1:3qqXGV8nn7GJT65debw77Dzrx9sfWYgP0DDo7xcMFRk= -github.com/rogpeppe/go-internal v1.7.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rs/cors v0.0.0-20160617231935-a62a804a8a00/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xhandler v0.0.0-20160618193221-ed27b6fd6521/go.mod h1:RvLn4FgxWubrpZHtQLnOf6EwhN2hEMusxZOhcW9H3UQ= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.12.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= -github.com/rs/zerolog v1.14.3/go.mod h1:3WXPzbXEEliJ+a6UFE4vhIxV8qR1EML6ngzP9ug4eYg= -github.com/rs/zerolog v1.21.0/go.mod h1:ZPhntP/xmq1nnND05hhpAh2QMhSsA4UN3MGZ6O2J3hM= github.com/rs/zerolog v1.23.0/go.mod h1:6c7hFfxPOy7TacJc4Fcdi24/J0NKYGzjG8FWRI916Qo= github.com/rs/zerolog v1.26.0 h1:ORM4ibhEZeTeQlCojCK2kPz1ogAY4bGs4tD+SaAdGaE= github.com/rs/zerolog v1.26.0/go.mod h1:yBiM87lvSqX8h0Ww4sdzNSkVYZ8dL2xjZJG1lAuGZEo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryancurrah/gomodguard v1.2.3/go.mod h1:rYbA/4Tg5c54mV1sv4sQTP5WOPBcoLtnBZ7/TEhXAbg= -github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= -github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94/go.mod h1:b18R55ulyQ/h3RaWyloPyER7fWQVZvimKKhnI5OfrJQ= github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE= github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig= -github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa h1:0U2s5loxrTy6/VgfVoLuVLFJcURKLH49ie0zSch7gh4= github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/securego/gosec/v2 v2.8.1/go.mod h1:pUmsq6+VyFEElJMUX+QB3p3LWNHXg1R3xh2ssVJPs8Q= -github.com/securego/gosec/v2 v2.9.1/go.mod h1:oDcDLcatOJxkCGaCaq8lua1jTnYf6Sou4wdiJ1n4iHc= -github.com/segmentio/backo-go v0.0.0-20200129164019-23eae7c10bd3/go.mod h1:9/Rh6yILuLysoQnZ2oNooD2g7aBnvM7r/fNVxRNWfBc= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= -github.com/segmentio/ksuid v1.0.3/go.mod h1:/XUiZBD3kVx5SmUOl55voK5yeAbBNNIed+2O73XgrPE= -github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= github.com/shirou/gopsutil v2.20.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil v3.21.6+incompatible h1:mmZtAlWSd8U2HeRTjswbnDLPxqsEoK01NK+GZ1P+nEM= github.com/shirou/gopsutil v3.21.6+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/shirou/gopsutil/v3 v3.21.7/go.mod h1:RGl11Y7XMTQPmHh8F0ayC6haKNBgH4PXMJuTAcMOlz4= -github.com/shirou/gopsutil/v3 v3.21.10/go.mod h1:t75NhzCZ/dYyPQjyQmrAYP6c8+LCdFANeBMdLPCNnew= -github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= -github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirkon/gitlab v0.0.5/go.mod h1:shZhI7CQWIXV84FhVUPietVUS3OcjOm9/YQwrgyVL0Q= -github.com/sirkon/goproxy v1.4.8/go.mod h1:bdsQaJ3VBi0Ua4fML6P3AFtmdkcbO3IHCfQoObjdO3c= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -1682,27 +1260,20 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.0/go.mod h1:4GuYW9TZmE769R5STWrRakJc4UqQ3+QQ95fyz7ENv1A= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sivchari/tenv v1.4.7/go.mod h1:5nF+bITvkebQVanjU6IuMbvIot/7ReNsUV7I5NbprB0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= -github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= -github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.5.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= @@ -1712,10 +1283,8 @@ github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.3.0 h1:R7cSvGu+Vv+qX0gW5R/85dx2kmmJT5z5NM8ifdYjdn0= github.com/spf13/cobra v1.3.0/go.mod h1:BrRVncBjOJa/eUcVVm9CE+oC6as8k+VYr4NY7WCi9V4= @@ -1732,13 +1301,10 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.0/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.9.0/go.mod h1:+i6ajR7OX2XaiBkrcZJFK21htRk7eDeLg7+O6bhUPP4= github.com/spf13/viper v1.10.0 h1:mXH0UwHS4D2HwWZa75im4xIQynLfblmWV7qcWpfv0yk= github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy5AsM= -github.com/ssgreg/nlreturn/v2 v2.1.0/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= -github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 h1:Gb2Tyox57NRNuZ2d3rmvB3pcmbu7O1RS3m8WRx7ilrg= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= github.com/steakknife/bloomfilter v0.0.0-20180922174646-6819c0d2a570/go.mod h1:8OR4w3TdeIHIh1g6EMY5p0gVNOovcWC+1vpc7naMuAw= @@ -1752,14 +1318,10 @@ github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e/go.mod h1:qNTQ5P5J github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 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.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.3.0 h1:NGXK3lHquSN08v5vWalVI/L8XU9hdzE/G6xsrze47As= -github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 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= @@ -1769,103 +1331,59 @@ github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5Cc github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/sylvia7788/contextcheck v1.0.4/go.mod h1:vuPKJMQ7MQ91ZTqfdyreNKwZjyUg6KO+IebVyQDedZQ= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d/go.mod h1:9OrXJhf154huy1nPWmuSrkgjPUtUNhA+Zmy+6AESzuA= github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= -github.com/tdakkota/asciicheck v0.0.0-20200416200610-e657995f937b/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/tendermint/btcd v0.1.1 h1:0VcxPfflS2zZ3RiOAHkBiFUcPvbtRj5O7zHmcJWHV7s= github.com/tendermint/btcd v0.1.1/go.mod h1:DC6/m53jtQzr/NFmMNEu0rxf18/ktVoVtMrnDD5pN+U= github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RMWx1aInLzndwxKalgi5rTqgfXxOxbEI= github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15/go.mod h1:z4YtwM70uOnk8h0pjJYlj3zdYwi9l03By6iAIF5j/Pk= -github.com/tendermint/flutter v1.0.2/go.mod h1:hW8URRpeA0KEaBWl9sOJUAlFLXeUrNWMvUoahMi1s3A= 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/spm v0.0.0-20210705094313-42e72ad05b63/go.mod h1:b8PLV+++6nmhHfnywT3kqLuLhAL4tA0kkgjl7xe0InU= -github.com/tendermint/spm v0.1.5/go.mod h1:+rHrI1axfSX1R0DY6KA4IbrHPgJ0WVNJKhey71ulXO8= github.com/tendermint/spm v0.1.9 h1:O1DJF4evS8wgk5SZqRcO29irNNtKQmTpvQ0xFzUiczI= github.com/tendermint/spm v0.1.9/go.mod h1:iHgfQ5YOI6ONc9E7ugGQolVdfSMHpeXfZ/OpXuN/42Q= -github.com/tendermint/spn v0.0.0-20201215081711-b9ec9286ed83/go.mod h1:OfG8YK8yabQk08QLpneLSMf/FN0d+DmFcQfijTJalA8= -github.com/tendermint/spn v0.0.0-20210406123257-decaff8dcaf9/go.mod h1:baJaa8BnakMVpYWhNY9YA01IU03td3ykrqE3wj2ixgA= -github.com/tendermint/spn v0.0.0-20210915093512-0d7e688be0fe/go.mod h1:499AD/h6238AmV9voPY5KBWduWGGA3X5t7nC1Nw4yO8= -github.com/tendermint/starport v0.12.0/go.mod h1:iKwUbPpZeAe79FYGZDC85zV5sMLeVGH4zlWb4EiaoBU= -github.com/tendermint/starport v0.15.0/go.mod h1:Tuy0bC2vFKIuDTmpMUgS/ammvUw5XSNQHPOw3Pnq5EE= -github.com/tendermint/starport v0.17.3/go.mod h1:Fw6Y/+NQIszS8cyrks8kC/nlnCx7YhiPHIFIMlmQoD8= -github.com/tendermint/starport v0.18.0/go.mod h1:c9Jjdl67wpUnZeOjSdjJGKA4698f6AiZKOr4f1fB/bk= -github.com/tendermint/tm-db v0.5.1/go.mod h1:g92zWjHpCYlEvQXvy9M168Su8V1IBEeawpXVVBaK4f4= -github.com/tendermint/tm-db v0.6.2/go.mod h1:GYtQ67SUvATOcoY8/+x6ylk8Qo02BQyLrAs+yAcLvGI= -github.com/tendermint/tm-db v0.6.3/go.mod h1:lfA1dL9/Y/Y8wwyPp2NMLyn5P5Ptr/gvDFNWtrCWSf8= github.com/tendermint/tm-db v0.6.4/go.mod h1:dptYhIpJ2M5kUuenLr+Yyf3zQOv1SgBZcl8/BmWlMBw= github.com/tendermint/tm-db v0.6.6 h1:EzhaOfR0bdKyATqcd5PNeyeq8r+V4bRPHBfyFdD9kGM= github.com/tendermint/tm-db v0.6.6/go.mod h1:wP8d49A85B7/erz/r4YbKssKw6ylsO/hKtFk7E1aWZI= -github.com/tendermint/vue v0.1.49/go.mod h1:Sg9MGPF+uY+SJ79sdZgtC2LnH+FDU2qWuiRxoZn5bmw= -github.com/tendermint/vue v0.1.53/go.mod h1:Sg9MGPF+uY+SJ79sdZgtC2LnH+FDU2qWuiRxoZn5bmw= -github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= -github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= github.com/testcontainers/testcontainers-go v0.13.0 h1:OUujSlEGsXVo/ykPVZk3KanBNGN0TYb/7oKIPVn15JA= github.com/testcontainers/testcontainers-go v0.13.0/go.mod h1:z1abufU633Eb/FmSBTzV6ntZAC1eZBYPtaFsn4nPuDk= -github.com/tetafro/godot v1.4.9/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= -github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= github.com/tidwall/gjson v1.6.7/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= -github.com/tidwall/gjson v1.6.8/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/sjson v1.1.4/go.mod h1:wXpKXu8CtDjKAZ+3DrKY5ROCorDFahq8l0tey/Lx1fg= -github.com/tidwall/sjson v1.1.5/go.mod h1:VuJzsZnTowhSxWdOgsAnb886i4AjEyTkk7tNtsL7EYE= -github.com/timakin/bodyclose v0.0.0-20200424151742-cb6215831a94/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= -github.com/tklauser/go-sysconf v0.3.7/go.mod h1:JZIdXh4RmBvZDBZ41ld2bGxRV3n4daiiqA3skYhAoQ4= github.com/tklauser/go-sysconf v0.3.9 h1:JeUVdAOWhhxVcU6Eqr/ATFHgXk/mmiItdKeJPev3vTo= github.com/tklauser/go-sysconf v0.3.9/go.mod h1:11DU/5sG7UexIrp/O6g35hrWzu0JxlwQ3LSFUzyeuhs= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.2.3/go.mod h1:vpEPS/JC+oZGGQ/My/vJnNsvMDQL6PwOqt8dsCw5j+E= github.com/tklauser/numcpus v0.3.0 h1:ILuRUQBtssgnxw0XXIjKUC56fgnOrFoQQ/4+DeU2biQ= github.com/tklauser/numcpus v0.3.0/go.mod h1:yFGUr7TUHQRAhyqBcEg0Ge34zDBAsIvJJcyE6boqnA8= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tomarrell/wrapcheck/v2 v2.3.0/go.mod h1:aF5rnkdtqNWP/gC7vPUO5pKsB0Oac2FDTQP4F+dpZMU= -github.com/tomarrell/wrapcheck/v2 v2.4.0/go.mod h1:68bQ/eJg55BROaRTbMjC7vuhL2OgfoG8bLp9ZyoBfyY= -github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= -github.com/tommy-muehle/go-mnd/v2 v2.4.0/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= +github.com/tyler-smith/go-bip39 v1.0.2 h1:+t3w+KwLXO6154GNJY+qUtIxLTmFjfUmpguQT1OlOT8= github.com/tyler-smith/go-bip39 v1.0.2/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= -github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= -github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= -github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= -github.com/umee-network/umee v0.4.0-rc3/go.mod h1:G8KfMjY1jEwaO4E5sjyQjCJkXE2477fAT8hY4K0OZs0= github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/uudashr/gocognit v1.0.5/go.mod h1:wgYz0mitoKOTysqxTDMOUXg+Jb5SvtihkfmugIZYpEA= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.16.0/go.mod h1:YOKImeEosDdBPnxc0gy7INqi3m1zK6A+xl6TwOBhHCA= -github.com/valyala/fasthttp v1.30.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/valyala/quicktemplate v1.6.3/go.mod h1:fwPzK2fHuYEODzJ9pkw0ipCPNHZ2tD5KW4lOuSdPKzY= -github.com/valyala/quicktemplate v1.7.0/go.mod h1:sqKJnoaOF88V07vkO+9FL8fb9uZg/VPSJnLYn+LmLk8= -github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= -github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= -github.com/viki-org/dnscache v0.0.0-20130720023526-c70c1f23c5d8/go.mod h1:dniwbG03GafCjFohMDmz6Zc6oCuiqgH6tGNyXTkHzXE= github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= @@ -1880,37 +1398,22 @@ github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPyS github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees= -github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/closer v0.0.0-20190328110542-03326addb7c2/go.mod h1:Y8IYP9aVODN3Vnw1FCqygCG5IWyYBeBlZqQ5aX+fHFw= -github.com/xlab/suplog v1.1.0/go.mod h1:dCFSSLRDeIlY5jsrcfzKj5Nq/8Cc1MAjQMK9APCccBo= -github.com/xlab/suplog v1.3.1/go.mod h1:YGRpHijNXLSzFXhYBrmso8E5SwjU3TUK4NTbnLO0f2E= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= -github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c/go.mod h1:UrdRz5enIKZ63MEE3IF9l2/ebyx59GyGgPi+tICQdmM= github.com/ybbus/jsonrpc v2.1.2+incompatible/go.mod h1:XJrh1eMSzdIYFbM08flv0wp5G35eRniyeGut1z+LSiE= -github.com/yeya24/promlinter v0.1.0/go.mod h1:rs5vtZzeBHqqMwXqFScncpCF6u06lezhZepno9AB1Oc= -github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= -github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= -github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark-emoji v1.0.1/go.mod h1:2w1E6FEWLcDQkoTE+7HU6QF1F6SLlNGjRIBbIZQFqkQ= github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= -github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= github.com/zondax/hid v0.9.0 h1:eiT3P6vNxAEVxXMw66eZUAAnU2zD33JBkfG/EnfAKl8= github.com/zondax/hid v0.9.0/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= gitlab.com/NebulousLabs/errors v0.0.0-20171229012116-7ead97ef90b8/go.mod h1:ZkMZ0dpQyWwlENaeZVBiQRjhMEZvk6VTXquzl3FOFP8= @@ -1920,12 +1423,10 @@ gitlab.com/NebulousLabs/fastrand v0.0.0-20181126182046-603482d69e40 h1:dizWJqTWj gitlab.com/NebulousLabs/fastrand v0.0.0-20181126182046-603482d69e40/go.mod h1:rOnSnoRyxMI3fe/7KIbVcsHRGxe30OONv8dEgo+vCfA= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k= go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= @@ -1934,7 +1435,6 @@ go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3 go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.etcd.io/etcd/client/v2 v2.305.1/go.mod h1:pMEacxZW7o8pg4CrFE7pquyCJJzZvkvdD2RibOCCCGs= go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= -go.mozilla.org/mozlog v0.0.0-20170222151521-4bb13139d403/go.mod h1:jHoPAGnDrCy6kaI2tAze5Prf0Nr0w/oNkROt2lw3n3o= go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -1944,7 +1444,6 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.22.6/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= @@ -1954,7 +1453,6 @@ go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= @@ -1963,29 +1461,23 @@ go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200109152110-61a87790db17/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -1993,14 +1485,10 @@ golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210915214749-c084706c2272/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg= @@ -2050,7 +1538,6 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -2074,8 +1561,6 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191003171128-d98b1b443823/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -2090,7 +1575,6 @@ golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= @@ -2100,7 +1584,6 @@ golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -2109,9 +1592,7 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -2140,12 +1621,10 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201008141435-b3e1573b7520/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= @@ -2158,21 +1637,16 @@ golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2192,7 +1666,6 @@ golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2215,14 +1688,12 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2232,34 +1703,25 @@ golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201020230747-6e5568b54d1a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210105210732-16f7687f5001/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210301091718-77cc2087c03b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2283,11 +1745,8 @@ golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210915083310-ed5796bab164/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -2295,14 +1754,11 @@ golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 h1:XfKQ4OlFl8okEOr5UvAqFRVj8 golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -2321,19 +1777,13 @@ golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiT golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -2343,30 +1793,22 @@ golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190916130336-e45ffcd953cc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191004055002-72853e10c5a3/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191224055732-dd894d0a8a40/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117012304-6edc0a871e69/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -2375,59 +1817,31 @@ golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200308013534-11ec41452d41/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200422022333-3d57cf2e726e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200426102838-f3a5411a4c3b/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200622203043-20e05c1c8ffa/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200630154851-b2d8b0336632/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200706234117-b22de6825cf7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201028025901-8cd080b735b3/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201114224030-61ea331ec02b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201118003311-bd56c0adb394/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201230224404-63754364767c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210101214203-2dba1e4ea05c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210104081019-d8d6ddbec6ee/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= -golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.6/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2446,7 +1860,6 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -2476,22 +1889,17 @@ google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdr google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= google.golang.org/api v0.62.0/go.mod h1:dKmwPCydfsad4qCH08MSdgWjfHOyfpd4VtDGgRFdavw= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= -google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20181107211654-5fc9ac540362/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -2501,7 +1909,6 @@ google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= @@ -2525,8 +1932,6 @@ google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200626011028-ee7919e894b5/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200707001353-8e8330bf89df/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -2537,20 +1942,16 @@ google.golang.org/genproto v0.0.0-20201119123407-9b1e624d6bc4/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210114201628-6edceaf6022f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210207032614-bba0dbe2a9ea/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210426193834-eac7f76ac494/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210617175327-b9e0b3197ced/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= @@ -2592,22 +1993,17 @@ google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+Rur google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= -gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= -gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= -gopkg.in/go-playground/validator.v9 v9.30.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -2633,8 +2029,6 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.6/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= @@ -2656,7 +2050,6 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -honnef.co/go/tools v0.2.1/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY= k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8= @@ -2682,10 +2075,6 @@ k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -mvdan.cc/gofumpt v0.1.1/go.mod h1:yXG1r1WqZVKWbVRtBWKWX9+CxGYfA51nSomhM0woR48= -mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= -mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= -mvdan.cc/unparam v0.0.0-20210104141923-aac4ce9116a7/go.mod h1:hBpJkZE8H/sb+VRFvw2+rBpHNsTBcvSpk61hr8mzXZE= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/proto/qgb/msgs.proto b/proto/qgb/msgs.proto index c4ebde5182..455e51f2cc 100644 --- a/proto/qgb/msgs.proto +++ b/proto/qgb/msgs.proto @@ -37,7 +37,7 @@ service Msg { // chain store and submit them to Ethereum to update the validator set // ------------- message MsgValsetConfirm { - // Unique number referencing the `ValSet`. + // Universal nonce referencing the `ValSet`. uint64 nonce = 1; // Orchestrator `celes1` account address. string orchestrator = 2; @@ -54,23 +54,25 @@ message MsgValsetConfirmResponse {} // MsgDataCommitmentConfirm describes a data commitment for a set of blocks. message MsgDataCommitmentConfirm { + // Universal nonce referencing the Data Commitment. + uint64 nonce = 1; // Signature over the commitment, the range of blocks, the validator address // and the Ethereum address. - string signature = 1; + string signature = 2; // Orchestrator account address who will be signing the message. - string validator_address = 2; + string validator_address = 3; // Hex `0x` encoded Ethereum public key that will be used by this validator on // Ethereum. - string eth_address = 3; + string eth_address = 4; // Merkle root over a merkle tree containing the data roots of a set of // blocks. - string commitment = 4; + string commitment = 5; // First block defining the ordered set of blocks used to create the // commitment. - uint64 begin_block = 5; + uint64 begin_block = 6; // Last block defining the ordered set of blocks used to create the // commitment. - uint64 end_block = 6; + uint64 end_block = 7; } // MsgValsetConfirmResponse describes the response returned after the submission diff --git a/proto/qgb/query.proto b/proto/qgb/query.proto index ed27e748e8..7b6b646125 100644 --- a/proto/qgb/query.proto +++ b/proto/qgb/query.proto @@ -7,6 +7,8 @@ import "google/api/annotations.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; import "qgb/msgs.proto"; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "google/protobuf/any.proto"; option go_package = "github.com/celestiaorg/celestia-app/x/qgb/types"; @@ -17,22 +19,17 @@ service Query { option (google.api.http).get = "/qgb/params"; } - // data commitment request queries + // attestations' requests queries - // DataCommitmentRequest Queries data commitment request by nonce. - rpc DataCommitmentRequestByNonce(QueryDataCommitmentRequestByNonceRequest) - returns (QueryDataCommitmentRequestByNonceResponse) { - option (google.api.http).get = "/qgb/data_commitment/requests/{nonce}"; + // AttestationRequestByNonce Queries attestation request by nonce. + rpc AttestationRequestByNonce(QueryAttestationRequestByNonceRequest) + returns (QueryAttestationRequestByNonceResponse) { + option (google.api.http).get = "/qgb/attestations/requests/{nonce}"; } - // LastDataCommitmentRequests Query the last data commitments. - rpc LastDataCommitmentRequests(QueryLastDataCommitmentRequestsRequest) - returns (QueryLastDataCommitmentRequestsResponse) { - option (google.api.http).get = "/qgb/data_commitment/requests"; - } - // LatestDataCommitmentNonce - rpc LatestDataCommitmentNonce(QueryLatestDataCommitmentNonceRequest) - returns (QueryLatestDataCommitmentNonceResponse) { - option (google.api.http).get = "/qgb/data_commitment/nonce/latest"; + // LatestAttestationNonce Queries latest attestation nonce. + rpc LatestAttestationNonce(QueryLatestAttestationNonceRequest) + returns (QueryLatestAttestationNonceResponse) { + option (google.api.http).get = "/qgb/attestations/nonce/latest"; } // Data commitment confirm queries @@ -45,14 +42,6 @@ service Query { "/qgb/data_commitment/confirm/begin/" "{begin_block}/end/{end_block}/address/{address}"; } - // DataCommitmentConfirmsByValidator Queries data commitment confirms by - // validator address - rpc DataCommitmentConfirmsByValidator( - QueryDataCommitmentConfirmsByValidatorRequest) - returns (QueryDataCommitmentConfirmsByValidatorResponse) { - option (google.api.http).get = - "/qgb/data_commitment/confirms/address/{address}"; - } // DataCommitmentConfirms Queries data commitment confirms by the actual // commitment rpc DataCommitmentConfirmsByCommitment( @@ -61,13 +50,6 @@ service Query { option (google.api.http).get = "/qgb/data_commitment/confirms/commitment/{commitment}"; } - // DataCommitmentConfirmsByRange Queries data commitment confirms by a block - // range - rpc DataCommitmentConfirmsByRange(QueryDataCommitmentConfirmsByRangeRequest) - returns (QueryDataCommitmentConfirmsByRangeResponse) { - option (google.api.http).get = "/qgb/data_commitment/confirms/begin_block/" - "{begin_block}/end_block/{end_block}"; - } // DataCommitmentConfirmsByExactRange Queries data commitment confirms by an // exact block range rpc DataCommitmentConfirmsByExactRange( @@ -78,19 +60,6 @@ service Query { "{begin_block}/end_block/{end_block}"; } - // valset request queries - - // LastValsetRequests queries for the latest valset requests - rpc LastValsetRequests(QueryLastValsetRequestsRequest) - returns (QueryLastValsetRequestsResponse) { - option (google.api.http).get = "/qgb/valset/requests"; - } - // LastValsetRequests queries for the latest valset requests - rpc ValsetRequestByNonce(QueryValsetRequestByNonceRequest) - returns (QueryValsetRequestByNonceResponse) { - option (google.api.http).get = "/qgb/valset/requests/{nonce}"; - } - // valset confirm queries // ValsetConfirm Queries ValSetConfirm @@ -98,10 +67,12 @@ service Query { returns (QueryValsetConfirmResponse) { option (google.api.http).get = "/qgb/valset/confirm"; } - // LastValsetBeforeHeight Queries last Valset before height - rpc LastValsetBeforeHeight(QueryLastValsetBeforeHeightRequest) - returns (QueryLastValsetBeforeHeightResponse) { - option (google.api.http).get = "/qgb/valset/request/before/{height}"; + // LastValsetRequestBeforeNonce Queries last Valset request before nonce. + // And, even if the current nonce is a valset, if will return the previous + // one. + rpc LastValsetRequestBeforeNonce(QueryLastValsetRequestBeforeNonceRequest) + returns (QueryLastValsetRequestBeforeNonceResponse) { + option (google.api.http).get = "/qgb/valset/request/before/{nonce}"; } // ValsetConfirmsByNonce rpc ValsetConfirmsByNonce(QueryValsetConfirmsByNonceRequest) @@ -125,19 +96,22 @@ message QueryParamsResponse { Params params = 1 [ (gogoproto.nullable) = false ]; } -// QueryLastValsetRequestsRequest -message QueryLastValsetRequestsRequest {} +// QueryAttestationRequestByNonceRequest +message QueryAttestationRequestByNonceRequest { uint64 nonce = 1; } -// QueryLastValsetRequestsResponse -message QueryLastValsetRequestsResponse { - repeated Valset valsets = 1 [ (gogoproto.nullable) = false ]; +// QueryAttestationRequestByNonceResponse +message QueryAttestationRequestByNonceResponse { + // AttestationRequestI is either a Data Commitment or a Valset. + // This was decided as part of the universal nonce approach under: + // https://github.com/celestiaorg/celestia-app/issues/468#issuecomment-1156887715 + google.protobuf.Any attestation = 1 + [ (cosmos_proto.accepts_interface) = "AttestationRequestI" ]; } -// QueryValsetRequestByNonceRequest -message QueryValsetRequestByNonceRequest { uint64 nonce = 1; } - -// QueryValsetRequestByNonceResponse -message QueryValsetRequestByNonceResponse { Valset valset = 1; } +// QueryLatestAttestationNonceRequest Latest attestation nonce request +message QueryLatestAttestationNonceRequest {} +// QueryLatestAttestationNonceResponse Latest attestation nonce response +message QueryLatestAttestationNonceResponse { uint64 nonce = 1; } // QueryValsetConfirmsByNonceRequest message QueryValsetConfirmsByNonceRequest { uint64 nonce = 1; } @@ -156,13 +130,13 @@ message QueryValsetConfirmRequest { // QueryValsetConfirmResponse ValSet confirm query response message QueryValsetConfirmResponse { MsgValsetConfirm confirm = 1; } -// QueryLastValsetRequestBeforeHeightRequest last Valset request before height -// request -message QueryLastValsetBeforeHeightRequest { uint64 height = 1; } +// QueryLastValsetRequestBeforeNonceRequest last Valset request before universal +// nonce request +message QueryLastValsetRequestBeforeNonceRequest { uint64 nonce = 1; } -// QueryLastValsetRequestBeforeHeightResponse last Valset request before height +// QueryLastValsetRequestBeforeNonceResponse last Valset request before height // response -message QueryLastValsetBeforeHeightResponse { Valset valset = 1; } +message QueryLastValsetRequestBeforeNonceResponse { Valset valset = 1; } // QueryDataCommitmentConfirmsRequest Data commitment confirm by commitment and // validator address request @@ -191,20 +165,6 @@ message QueryDataCommitmentConfirmsByCommitmentResponse { [ (gogoproto.nullable) = false ]; } -// QueryDataCommitmentConfirmsByRangeRequest Data commitment confirms by range -// request -message QueryDataCommitmentConfirmsByRangeRequest { - uint64 begin_block = 1; - uint64 end_block = 2; -} - -// QueryDataCommitmentConfirmsByRangeResponse Data commitment confirms by range -// response -message QueryDataCommitmentConfirmsByRangeResponse { - repeated MsgDataCommitmentConfirm confirms = 1 - [ (gogoproto.nullable) = false ]; -} - // QueryDataCommitmentConfirmsByExactRangeRequest Data commitment confirms by // exact range request message QueryDataCommitmentConfirmsByExactRangeRequest { @@ -219,41 +179,8 @@ message QueryDataCommitmentConfirmsByExactRangeResponse { [ (gogoproto.nullable) = false ]; } -// QueryDataCommitmentConfirmsByValidatorRequest Data commitment confirms by -// validator address request -message QueryDataCommitmentConfirmsByValidatorRequest { string address = 1; } - -// QueryDataCommitmentConfirmsByValidatorResponse Data commitment confirms by -// validator address response -message QueryDataCommitmentConfirmsByValidatorResponse { - repeated MsgDataCommitmentConfirm confirms = 1 - [ (gogoproto.nullable) = false ]; -} - // QueryLastUnbondingHeightRequest message QueryLastUnbondingHeightRequest {} // QueryLastUnbondingHeightResponse message QueryLastUnbondingHeightResponse { uint64 height = 1; } - -// QueryDataCommitmentRequestRequest Data commitment by nonce request -message QueryDataCommitmentRequestByNonceRequest { - // Unique number referencing the `DataCommitment`. - uint64 nonce = 1; -} -// QueryDataCommitmentRequestResponse Data commitment by nonce response -message QueryDataCommitmentRequestByNonceResponse { - DataCommitment commitment = 1; -} - -// QueryLastDataCommitmentRequestsRequest Last data commitment request -message QueryLastDataCommitmentRequestsRequest {} -// QueryLastDataCommitmentRequestsResponse Last data commitment response -message QueryLastDataCommitmentRequestsResponse { - repeated DataCommitment commitments = 1 [ (gogoproto.nullable) = false ]; -} - -// QueryLatestDataCommitmentNonceRequest Latest data commitment nonce request -message QueryLatestDataCommitmentNonceRequest {} -// QueryLatestDataCommitmentNonceResponse Latest data commitment nonce response -message QueryLatestDataCommitmentNonceResponse { uint64 nonce = 1; } diff --git a/proto/qgb/types.proto b/proto/qgb/types.proto index 226b1cda53..53f51818b7 100644 --- a/proto/qgb/types.proto +++ b/proto/qgb/types.proto @@ -1,9 +1,11 @@ syntax = "proto3"; package qgb; + import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; + option go_package = "github.com/celestiaorg/celestia-app/x/qgb/types"; -// TODO can this also be deleted ? // BridgeValidator represents a validator's ETH address and its power message BridgeValidator { // Voting power of the validator. @@ -16,7 +18,9 @@ message BridgeValidator { // maintains an ETH key to sign messages, these are used to check signatures on // ETH because of the significant gas savings message Valset { - // Unique number referencing the `ValSet`. + option (cosmos_proto.implements_interface) = "AttestationRequestI"; + // Universal nonce defined under: + // https://github.com/celestiaorg/celestia-app/pull/464 uint64 nonce = 1; // List of BridgeValidator containing the current validator set. repeated BridgeValidator members = 2 [ (gogoproto.nullable) = false ]; @@ -30,7 +34,9 @@ message Valset { // inside the state machine and it doesn't make sense to ask tendermint for the // commitment there. message DataCommitment { - // Unique number referencing the `DataCommitment`. + option (cosmos_proto.implements_interface) = "AttestationRequestI"; + // Universal nonce defined under: + // https://github.com/celestiaorg/celestia-app/pull/464 uint64 nonce = 1; // First block defining the ordered set of blocks used to create the // commitment. diff --git a/x/qgb/abci.go b/x/qgb/abci.go index 4bbb6e7636..7feeed967a 100644 --- a/x/qgb/abci.go +++ b/x/qgb/abci.go @@ -9,20 +9,37 @@ import ( // EndBlocker is called at the end of every block func EndBlocker(ctx sdk.Context, k keeper.Keeper) { - handleValsetRequest(ctx, k) handleDataCommitmentRequest(ctx, k) + handleValsetRequest(ctx, k) } func handleDataCommitmentRequest(ctx sdk.Context, k keeper.Keeper) { - if ctx.BlockHeight()%int64(types.DataCommitmentWindow) != 0 { - return + if ctx.BlockHeight() != 0 && ctx.BlockHeight()%int64(types.DataCommitmentWindow) == 0 { + dataCommitment, err := k.GetCurrentDataCommitment(ctx) + if err != nil { + panic(sdkerrors.Wrap(err, "coudln't get current data commitment")) + } + k.StoreAttestation(ctx, &dataCommitment) + k.SetLatestAttestationNonce(ctx, dataCommitment.Nonce) } - k.SetDataCommitmentRequest(ctx) } func handleValsetRequest(ctx sdk.Context, k keeper.Keeper) { - //get the last valsets to compare against - latestValset := k.GetLatestValset(ctx) + // FIXME can this be done here? + // We need to initialize this value in the begining... + if !k.CheckLatestAttestationNonce(ctx) { + k.SetLatestAttestationNonce(ctx, 0) + } + // get the last valsets to compare against + var latestValset *types.Valset + if k.CheckLatestAttestationNonce(ctx) && k.GetLatestAttestationNonce(ctx) != 0 { + var err error + latestValset, err = k.GetLatestValset(ctx) + if err != nil { + panic(err) + } + } + lastUnbondingHeight := k.GetLastUnBondingBlockHeight(ctx) significantPowerDiff := false @@ -53,6 +70,11 @@ func handleValsetRequest(ctx sdk.Context, k keeper.Keeper) { if (latestValset == nil) || (lastUnbondingHeight == uint64(ctx.BlockHeight())) || significantPowerDiff { // if the conditions are true, put in a new validator set request to be signed and submitted to Ethereum - k.SetValsetRequest(ctx) + valset, err := k.GetCurrentValset(ctx) + if err != nil { + panic(err) + } + k.StoreAttestation(ctx, &valset) + k.SetLatestAttestationNonce(ctx, valset.Nonce) } } diff --git a/x/qgb/abci_test.go b/x/qgb/abci_test.go index 93ad8ee82c..02bffafbcd 100644 --- a/x/qgb/abci_test.go +++ b/x/qgb/abci_test.go @@ -1,6 +1,7 @@ -package qgb +package qgb_test import ( + "github.com/celestiaorg/celestia-app/x/qgb" "github.com/celestiaorg/celestia-app/x/qgb/keeper" "github.com/celestiaorg/celestia-app/x/qgb/types" "github.com/cosmos/cosmos-sdk/x/staking" @@ -9,23 +10,27 @@ import ( "testing" ) -func TestValsetCreationIfNotAvailable(t *testing.T) { +func TestAttestationCreationWhenStartingTheChain(t *testing.T) { input, ctx := keeper.SetupFiveValChain(t) pk := input.QgbKeeper // EndBlocker should set a new validator set if not available - EndBlocker(ctx, *pk) - require.NotNil(t, pk.GetValset(ctx, pk.GetLatestValsetNonce(ctx))) - valsets := pk.GetValsets(ctx) - require.True(t, len(valsets) == 1) + qgb.EndBlocker(ctx, *pk) + require.Equal(t, uint64(1), pk.GetLatestAttestationNonce(ctx)) + attestation := pk.GetAttestationByNonce(ctx, 1) + require.NotNil(t, attestation) + require.Equal(t, uint64(1), attestation.GetNonce()) } func TestValsetCreationUponUnbonding(t *testing.T) { input, ctx := keeper.SetupFiveValChain(t) pk := input.QgbKeeper - currentValsetNonce := pk.GetLatestValsetNonce(ctx) - pk.SetValsetRequest(ctx) + currentValsetNonce := pk.GetLatestAttestationNonce(ctx) + vs, err := pk.GetCurrentValset(ctx) + require.Nil(t, err) + err = pk.SetAttestationRequest(ctx, &vs) + require.Nil(t, err) input.Context = ctx.WithBlockHeight(ctx.BlockHeight() + 1) // begin unbonding @@ -36,39 +41,40 @@ func TestValsetCreationUponUnbonding(t *testing.T) { // Run the staking endblocker to ensure valset is set in state staking.EndBlocker(input.Context, input.StakingKeeper) - EndBlocker(input.Context, *pk) + qgb.EndBlocker(input.Context, *pk) - assert.NotEqual(t, currentValsetNonce, pk.GetLatestValsetNonce(ctx)) + assert.NotEqual(t, currentValsetNonce, pk.GetLatestAttestationNonce(ctx)) } func TestValsetEmission(t *testing.T) { input, ctx := keeper.SetupFiveValChain(t) pk := input.QgbKeeper - // Store a validator set with a power change as the most recent validator set - vs, err := pk.GetCurrentValset(ctx) - require.NoError(t, err) - vs.Nonce-- - internalMembers, err := types.BridgeValidators(vs.Members).ToInternal() - require.NoError(t, err) - delta := float64(internalMembers.TotalPower()) * 0.05 - vs.Members[0].Power = uint64(float64(vs.Members[0].Power) - delta/2) - vs.Members[1].Power = uint64(float64(vs.Members[1].Power) + delta/2) - pk.StoreValset(ctx, vs) - // EndBlocker should set a new validator set - EndBlocker(ctx, *pk) - require.NotNil(t, pk.GetValset(ctx, uint64(pk.GetLatestValsetNonce(ctx)))) - valsets := pk.GetValsets(ctx) - require.True(t, len(valsets) == 2) + qgb.EndBlocker(ctx, *pk) + + require.Equal(t, uint64(1), pk.GetLatestAttestationNonce(ctx)) + attestation := pk.GetAttestationByNonce(ctx, 1) + require.NotNil(t, attestation) + require.Equal(t, uint64(1), attestation.GetNonce()) + + // get the valsets + require.Equal(t, types.ValsetRequestType, attestation.Type()) + vs, ok := attestation.(*types.Valset) + require.True(t, ok) + require.NotNil(t, vs) } func TestValsetSetting(t *testing.T) { input, ctx := keeper.SetupFiveValChain(t) pk := input.QgbKeeper - pk.SetValsetRequest(ctx) - valsets := pk.GetValsets(ctx) - require.True(t, len(valsets) == 1) + + vs, err := pk.GetCurrentValset(ctx) + require.Nil(t, err) + err = pk.SetAttestationRequest(ctx, &vs) + require.Nil(t, err) + + require.Equal(t, uint64(1), pk.GetLatestAttestationNonce(ctx)) } // Add data commitment window tests diff --git a/x/qgb/handler_test.go b/x/qgb/handler_test.go index c319b4372f..d2bc26a77c 100644 --- a/x/qgb/handler_test.go +++ b/x/qgb/handler_test.go @@ -1,8 +1,9 @@ -package qgb +package qgb_test import ( "crypto/ecdsa" "encoding/hex" + "github.com/celestiaorg/celestia-app/x/qgb" "github.com/celestiaorg/celestia-app/x/qgb/keeper" "github.com/celestiaorg/celestia-app/x/qgb/types" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" @@ -44,7 +45,7 @@ func TestMsgValsetConfirm(t *testing.T) { input, ctx := keeper.SetupFiveValChain(t) k := input.QgbKeeper - h := NewHandler(*input.QgbKeeper) + h := qgb.NewHandler(*input.QgbKeeper) // create new validator err := createNewValidator(input) @@ -55,7 +56,9 @@ func TestMsgValsetConfirm(t *testing.T) { require.NoError(t, err) vs.Height = uint64(1) vs.Nonce = uint64(1) - k.StoreValset(ctx, vs) + + err = k.SetAttestationRequest(ctx, &vs) + require.Nil(t, err) signBytes, err := vs.SignBytes(types.BridgeId) require.NoError(t, err) @@ -64,33 +67,33 @@ func TestMsgValsetConfirm(t *testing.T) { require.NoError(t, err) // try wrong eth address - msg := &types.MsgValsetConfirm{ - Nonce: 1, - Orchestrator: keeper.OrchAddrs[0].String(), - EthAddress: keeper.EthAddrs[1].GetAddress(), // wrong because validator 0 should have EthAddrs[0] - Signature: signature, - } + msg := types.NewMsgValsetConfirm( + 1, + keeper.EthAddrs[1], // wrong because validator 0 should have EthAddrs[0] + keeper.OrchAddrs[0], + signature, + ) ctx = ctx.WithBlockTime(blockTime).WithBlockHeight(blockHeight) _, err = h(ctx, msg) require.Error(t, err) // try a nonexisting valset - msg = &types.MsgValsetConfirm{ - Nonce: 10, - Orchestrator: keeper.OrchAddrs[0].String(), - EthAddress: keeper.EthAddrs[0].GetAddress(), - Signature: signature, - } + msg = types.NewMsgValsetConfirm( + 10, + keeper.EthAddrs[0], + keeper.OrchAddrs[0], + signature, + ) ctx = ctx.WithBlockTime(blockTime).WithBlockHeight(blockHeight) _, err = h(ctx, msg) require.Error(t, err) - msg = &types.MsgValsetConfirm{ - Nonce: 1, - Orchestrator: orchAddress.String(), - EthAddress: orchEthAddress, - Signature: signature, - } + msg = types.NewMsgValsetConfirm( + 1, + *ethAddr, + orchAddress, + signature, + ) ctx = ctx.WithBlockTime(blockTime).WithBlockHeight(blockHeight) _, err = h(ctx, msg) require.NoError(t, err) @@ -105,7 +108,7 @@ func TestMsgDataCommitmentConfirm(t *testing.T) { err := createNewValidator(input) require.NoError(t, err) - h := NewHandler(*input.QgbKeeper) + h := qgb.NewHandler(*input.QgbKeeper) ctx = ctx.WithBlockTime(blockTime) commitment := "102030" @@ -113,7 +116,7 @@ func TestMsgDataCommitmentConfirm(t *testing.T) { require.NoError(t, err) dataHash := types.DataCommitmentTupleRootSignBytes( types.BridgeId, - big.NewInt(int64(100/types.DataCommitmentWindow)), + big.NewInt(10), bytesCommitment, ) @@ -122,14 +125,15 @@ func TestMsgDataCommitmentConfirm(t *testing.T) { require.NoError(t, err) // Sending a data commitment confirm - setDCCMsg := &types.MsgDataCommitmentConfirm{ - Signature: hex.EncodeToString(signature), - ValidatorAddress: orchAddress.String(), - EthAddress: orchEthAddress, - Commitment: commitment, - BeginBlock: 1, - EndBlock: 100, - } + setDCCMsg := types.NewMsgDataCommitmentConfirm( + commitment, + hex.EncodeToString(signature), + orchAddress, + *ethAddr, + 1, + 100, + 10, + ) result, err := h(ctx, setDCCMsg) require.NoError(t, err) diff --git a/x/qgb/keeper/keeper.go b/x/qgb/keeper/keeper.go index 5282c0d718..13b648eb24 100644 --- a/x/qgb/keeper/keeper.go +++ b/x/qgb/keeper/keeper.go @@ -71,14 +71,14 @@ func (k Keeper) Logger(ctx sdk.Context) log.Logger { return ctx.Logger().With("module", fmt.Sprintf("x/%s", types.ModuleName)) } -// prefixRange turns a prefix into a (start, end) range. The start is the given prefix value and +// PrefixRange turns a prefix into a (start, end) range. The start is the given prefix value and // the end is calculated by adding 1 bit to the start value. Nil is not allowed as prefix. // Example: []byte{1, 3, 4} becomes []byte{1, 3, 5} // []byte{15, 42, 255, 255} becomes []byte{15, 43, 0, 0} // // In case of an overflow the end is set to nil. // Example: []byte{255, 255, 255, 255} becomes nil -func prefixRange(prefix []byte) ([]byte, []byte) { +func PrefixRange(prefix []byte) ([]byte, []byte) { if prefix == nil { panic("nil key not allowed") } diff --git a/x/qgb/keeper/keeper_attestation.go b/x/qgb/keeper/keeper_attestation.go new file mode 100644 index 0000000000..431e92a23f --- /dev/null +++ b/x/qgb/keeper/keeper_attestation.go @@ -0,0 +1,90 @@ +package keeper + +import ( + "fmt" + + "github.com/celestiaorg/celestia-app/x/qgb/types" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// SetAttestationRequest Sets a new attestation request to the store to be signed +// by orchestrators afterwards. +func (k Keeper) SetAttestationRequest(ctx sdk.Context, at types.AttestationRequestI) error { + k.StoreAttestation(ctx, at) + k.SetLatestAttestationNonce(ctx, at.GetNonce()) + + ctx.EventManager().EmitEvent( + sdk.NewEvent( + types.EventTypeAttestationRequest, + sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), + sdk.NewAttribute(types.AttributeKeyNonce, fmt.Sprint(at.GetNonce())), + ), + ) + return nil +} + +// StoreAttestation +func (k Keeper) StoreAttestation(ctx sdk.Context, at types.AttestationRequestI) { + nonce := at.GetNonce() + key := []byte(types.GetAttestationKey(nonce)) + store := ctx.KVStore(k.storeKey) + + if store.Has(key) { + panic("Trying to overwrite existing attestation request!") + } + + b, err := k.cdc.MarshalInterface(at) + if err != nil { + panic(err) + } + store.Set((key), b) +} + +// SetLatestAttestationNonce sets the latest attestation request nonce, since it's +// expected that this value will only increase it panics on an attempt +// to decrement +func (k Keeper) SetLatestAttestationNonce(ctx sdk.Context, nonce uint64) { + // TODO add test + // this is purely an increasing counter and should never decrease + if k.CheckLatestAttestationNonce(ctx) && k.GetLatestAttestationNonce(ctx) > nonce { + panic("Decrementing attestation nonce!") + } + + store := ctx.KVStore(k.storeKey) + store.Set([]byte(types.LatestAttestationtNonce), types.UInt64Bytes(nonce)) +} + +// CheckLatestAttestationNonce returns true if the latest attestation request nonce +// is declared in the store and false if it has not been initialized +func (k Keeper) CheckLatestAttestationNonce(ctx sdk.Context) bool { + store := ctx.KVStore(k.storeKey) + has := store.Has([]byte(types.LatestAttestationtNonce)) + return has +} + +// GetLatestAttestationNonce returns the latest attestation request nonce +func (k Keeper) GetLatestAttestationNonce(ctx sdk.Context) uint64 { + if ctx.BlockHeight() <= int64(1) { // temporarily to avoid concurrent map exception + // TODO: handle this case for genesis properly. Note for Evan: write an issue + return 0 + } + + store := ctx.KVStore(k.storeKey) + bytes := store.Get([]byte(types.LatestAttestationtNonce)) + return UInt64FromBytes(bytes) +} + +// GetAttestationByNonce returns an attestation request by nonce +func (k Keeper) GetAttestationByNonce(ctx sdk.Context, nonce uint64) types.AttestationRequestI { + store := ctx.KVStore(k.storeKey) + bz := store.Get([]byte(types.GetAttestationKey(nonce))) + if bz == nil { + return nil + } + var at types.AttestationRequestI + err := k.cdc.UnmarshalInterface(bz, &at) + if err != nil { + panic(err) + } + return at +} diff --git a/x/qgb/keeper/keeper_data_commitment.go b/x/qgb/keeper/keeper_data_commitment.go index 1184d19406..35b0090c91 100644 --- a/x/qgb/keeper/keeper_data_commitment.go +++ b/x/qgb/keeper/keeper_data_commitment.go @@ -1,131 +1,19 @@ package keeper import ( - "fmt" "github.com/celestiaorg/celestia-app/x/qgb/types" - "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" - "sort" ) -// TODO add unit tests for alll the keepers - -// SetDataCommitmentRequest Sets a new data commitment request to the store to be signed -// by orchestrators afterwards. -func (k Keeper) SetDataCommitmentRequest(ctx sdk.Context) types.DataCommitment { - dataCommitment, err := k.GetCurrentDataCommitment(ctx) - if err != nil { - panic(err) - } - k.StoreDataCommitment(ctx, dataCommitment) - k.SetLatestDataCommitmentNonce(ctx, dataCommitment.Nonce) - - ctx.EventManager().EmitEvent( - sdk.NewEvent( - types.EventTypeDataCommitmentRequest, - sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), - sdk.NewAttribute(types.AttributeKeyNonce, fmt.Sprint(dataCommitment.Nonce)), - ), - ) - - return dataCommitment -} +// TODO add unit tests for all the keepers // GetCurrentDataCommitment Creates latest data commitment at current height according to // the data commitment window specified func (k Keeper) GetCurrentDataCommitment(ctx sdk.Context) (types.DataCommitment, error) { beginBlock := uint64(ctx.BlockHeight()) - types.DataCommitmentWindow endBlock := uint64(ctx.BlockHeight()) - nonce := uint64(ctx.BlockHeight()) / types.DataCommitmentWindow + nonce := k.GetLatestAttestationNonce(ctx) + 1 dataCommitment := types.NewDataCommitment(nonce, beginBlock, endBlock) return *dataCommitment, nil } - -// StoreDataCommitment -func (k Keeper) StoreDataCommitment(ctx sdk.Context, dc types.DataCommitment) { - key := []byte(types.GetDataCommitmentKey(dc.Nonce)) - store := ctx.KVStore(k.storeKey) - - if store.Has(key) { - panic("Trying to overwrite existing data commitment request!") - } - - store.Set((key), k.cdc.MustMarshal(&dc)) -} - -// SetLatestDataCommitmentNonce sets the latest data commitment nonce, since it's -// expected that this value will only increase it panics on an attempt -// to decrement -func (k Keeper) SetLatestDataCommitmentNonce(ctx sdk.Context, nonce uint64) { - // TODO add test - // this is purely an increasing counter and should never decrease - if k.CheckLatestDataCommitmentNonce(ctx) && k.GetLatestDataCommitmentNonce(ctx) > nonce { - panic("Decrementing data commitment nonce!") - } - - store := ctx.KVStore(k.storeKey) - store.Set([]byte(types.LatestDataCommitmentNonce), types.UInt64Bytes(nonce)) -} - -// CheckLatestDataCommitmentNonce returns true if the latest data commitment nonce -// is declared in the store and false if it has not been initialized -func (k Keeper) CheckLatestDataCommitmentNonce(ctx sdk.Context) bool { - store := ctx.KVStore(k.storeKey) - has := store.Has([]byte(types.LatestDataCommitmentNonce)) - return has -} - -// GetLatestDataCommitmentNonce returns the latest data commitment nonce -func (k Keeper) GetLatestDataCommitmentNonce(ctx sdk.Context) uint64 { - if !k.CheckLatestDataCommitmentNonce(ctx) { - // TODO: handle this case for genesis properly. Note for Evan: write an issue - return 0 - } - - store := ctx.KVStore(k.storeKey) - bytes := store.Get([]byte(types.LatestDataCommitmentNonce)) - return UInt64FromBytes(bytes) -} - -// GetDataCommitment returns a data commitment by nonce -func (k Keeper) GetDataCommitment(ctx sdk.Context, nonce uint64) *types.DataCommitment { - store := ctx.KVStore(k.storeKey) - bz := store.Get([]byte(types.GetDataCommitmentKey(nonce))) - if bz == nil { - return nil - } - var dc types.DataCommitment - k.cdc.MustUnmarshal(bz, &dc) - return &dc -} - -// DataCommitments is a collection of DataCommitment -type DataCommitments []types.DataCommitment - -// GetDataCommitments returns all the data commitments in state -func (k Keeper) GetDataCommitments(ctx sdk.Context) (out []types.DataCommitment) { - // TODO this should definitely be optimized. Adding support for paging or providing a range - // is way better - k.IterateDataCommitments(ctx, func(_ []byte, val *types.DataCommitment) bool { - out = append(out, *val) - return false - }) - sort.Sort(types.DataCommitments(out)) - return -} - -// IterateDataCommitments retruns all DataCommitmentRequests -func (k Keeper) IterateDataCommitments(ctx sdk.Context, cb func(key []byte, val *types.DataCommitment) bool) { - prefixStore := prefix.NewStore(ctx.KVStore(k.storeKey), []byte(types.DataCommitmentRequestKey)) - iter := prefixStore.ReverseIterator(nil, nil) - defer iter.Close() - for ; iter.Valid(); iter.Next() { - var dc types.DataCommitment - k.cdc.MustUnmarshal(iter.Value(), &dc) - // cb returns true to stop early - if cb(iter.Key(), &dc) { - break - } - } -} diff --git a/x/qgb/keeper/keeper_data_commitment_confirm.go b/x/qgb/keeper/keeper_data_commitment_confirm.go index 9d20b7f9e6..b730d9502f 100644 --- a/x/qgb/keeper/keeper_data_commitment_confirm.go +++ b/x/qgb/keeper/keeper_data_commitment_confirm.go @@ -6,7 +6,7 @@ import ( "strconv" ) -// TODO add unit tests for alll the keepers +// TODO add unit tests for all the keepers // GetDataCommitmentConfirm Returns a data commitment confirm by nonce and validator address // nonce = endBlock % data window in decimal base @@ -55,60 +55,6 @@ func (k Keeper) GetDataCommitmentConfirmsByCommitment( return confirms } -// GetDataCommitmentConfirmsByValidator Returns data commitment confirms by validator address -func (k Keeper) GetDataCommitmentConfirmsByValidator( - ctx sdk.Context, - validator sdk.AccAddress, -) (confirms []types.MsgDataCommitmentConfirm) { - if err := sdk.VerifyAddressFormat(validator); err != nil { - ctx.Logger().Error("invalid validator address") - return nil - } - - store := ctx.KVStore(k.storeKey) - iterator := store.Iterator(nil, nil) // Can we make this faster? - - defer iterator.Close() - - for ; iterator.Valid(); iterator.Next() { - confirm := types.MsgDataCommitmentConfirm{} - err := k.cdc.Unmarshal(iterator.Value(), &confirm) - if err != nil { - continue - } - if confirm.ValidatorAddress == validator.String() { - confirms = append(confirms, confirm) - } - } - - return confirms -} - -// GetDataCommitmentConfirmsByRange Returns data commitment confirms by the provided range -func (k Keeper) GetDataCommitmentConfirmsByRange( - ctx sdk.Context, - beginBlock uint64, - endBlock uint64, -) (confirms []types.MsgDataCommitmentConfirm) { - store := ctx.KVStore(k.storeKey) - iterator := store.Iterator(nil, nil) // Can we make this faster? - - defer iterator.Close() - - for ; iterator.Valid(); iterator.Next() { - confirm := types.MsgDataCommitmentConfirm{} - err := k.cdc.Unmarshal(iterator.Value(), &confirm) - if err != nil { - continue - } - if beginBlock <= confirm.BeginBlock && endBlock >= confirm.EndBlock { - confirms = append(confirms, confirm) - } - } - - return confirms -} - // GetDataCommitmentConfirmsByExactRange Returns data commitment confirms by the provided exact range func (k Keeper) GetDataCommitmentConfirmsByExactRange( ctx sdk.Context, diff --git a/x/qgb/keeper/keeper_test.go b/x/qgb/keeper/keeper_test.go index a33eb41b6f..91f6e0cf2a 100644 --- a/x/qgb/keeper/keeper_test.go +++ b/x/qgb/keeper/keeper_test.go @@ -1,6 +1,7 @@ -package keeper +package keeper_test import ( + "github.com/celestiaorg/celestia-app/x/qgb/keeper" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "testing" @@ -28,11 +29,11 @@ func TestPrefixRange(t *testing.T) { t.Run(testName, func(t *testing.T) { if tc.expPanic { require.Panics(t, func() { - prefixRange(tc.src) + keeper.PrefixRange(tc.src) }) return } - start, end := prefixRange(tc.src) + start, end := keeper.PrefixRange(tc.src) assert.Equal(t, tc.expStart, start) assert.Equal(t, tc.expEnd, end) }) diff --git a/x/qgb/keeper/keeper_valset.go b/x/qgb/keeper/keeper_valset.go index 8d0f8d8e81..8be5964d67 100644 --- a/x/qgb/keeper/keeper_valset.go +++ b/x/qgb/keeper/keeper_valset.go @@ -2,154 +2,31 @@ package keeper import ( "fmt" - "math/big" - "sort" - "github.com/celestiaorg/celestia-app/x/qgb/types" - "github.com/cosmos/cosmos-sdk/store/prefix" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "math/big" sdk "github.com/cosmos/cosmos-sdk/types" ) -// SetValsetRequest returns a new instance of the Gravity BridgeValidatorSet -// by taking a snapshot of the current set, this validator set is also placed -// into the store to be signed by validators and submitted to Ethereum. This -// is the only function to call when you want to create a validator set that -// is signed by consensus. If you want to peek at the present state of the set -// and perhaps take action based on that use k.GetCurrentValset -// i.e. {"nonce": 1, "members": [{"eth_addr": "foo", "power": 11223}]} -func (k Keeper) SetValsetRequest(ctx sdk.Context) types.Valset { - valset, err := k.GetCurrentValset(ctx) - if err != nil { - panic(err) - } - k.StoreValset(ctx, valset) - k.SetLatestValsetNonce(ctx, valset.Nonce) - - ctx.EventManager().EmitEvent( - sdk.NewEvent( - types.EventTypeValsetRequest, - sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), - sdk.NewAttribute(types.AttributeKeyNonce, fmt.Sprint(valset.Nonce)), - ), - ) - - return valset -} - -// StoreValset is for storing a valiator set at a given height, once this function is called -// the validator set will be available to the Ethereum Signers (orchestrators) to submit signatures -// therefore this function will panic if you attempt to overwrite an existing key. Any changes to -// historical valsets can not possibly be correct, as it would invalidate the signatures. The only -// valid operation on the same index is store followed by delete when it is time to prune state -func (k Keeper) StoreValset(ctx sdk.Context, valset types.Valset) { - key := []byte(types.GetValsetKey(valset.Nonce)) - store := ctx.KVStore(k.storeKey) - - if store.Has(key) { - panic("Trying to overwrite existing valset!") - } - - store.Set((key), k.cdc.MustMarshal(&valset)) -} - -// HasValsetRequest returns true if a valset defined by a nonce exists -func (k Keeper) HasValsetRequest(ctx sdk.Context, nonce uint64) bool { - store := ctx.KVStore(k.storeKey) - return store.Has([]byte(types.GetValsetKey(nonce))) -} - -// DeleteValset deletes the valset at a given nonce from state -func (k Keeper) DeleteValset(ctx sdk.Context, nonce uint64) { - ctx.KVStore(k.storeKey).Delete([]byte(types.GetValsetKey(nonce))) -} - -// CheckLatestValsetNonce returns true if the latest valset nonce -// is declared in the store and false if it has not been initialized -func (k Keeper) CheckLatestValsetNonce(ctx sdk.Context) bool { - store := ctx.KVStore(k.storeKey) - has := store.Has([]byte(types.LatestValsetNonce)) - return has -} - -// GetLatestValsetNonce returns the latest valset nonce -func (k Keeper) GetLatestValsetNonce(ctx sdk.Context) uint64 { - if !k.CheckLatestValsetNonce(ctx) { - // TODO: handle this case for genesis properly. Note for Evan: write an issue - return 0 - } - - store := ctx.KVStore(k.storeKey) - bytes := store.Get([]byte(types.LatestValsetNonce)) - return UInt64FromBytes(bytes) -} - -// SetLatestValsetNonce sets the latest valset nonce, since it's -// expected that this value will only increase it panics on an attempt -// to decrement -func (k Keeper) SetLatestValsetNonce(ctx sdk.Context, nonce uint64) { - // this is purely an increasing counter and should never decrease - if k.CheckLatestValsetNonce(ctx) && k.GetLatestValsetNonce(ctx) > nonce { - panic("Decrementing valset nonce!") - } - - store := ctx.KVStore(k.storeKey) - store.Set([]byte(types.LatestValsetNonce), types.UInt64Bytes(nonce)) -} - -// GetValset returns a valset by nonce -func (k Keeper) GetValset(ctx sdk.Context, nonce uint64) *types.Valset { - store := ctx.KVStore(k.storeKey) - bz := store.Get([]byte(types.GetValsetKey(nonce))) - if bz == nil { - return nil - } - var valset types.Valset - k.cdc.MustUnmarshal(bz, &valset) - return &valset -} - -// IterateValsets retruns all valsetRequests -func (k Keeper) IterateValsets(ctx sdk.Context, cb func(key []byte, val *types.Valset) bool) { - prefixStore := prefix.NewStore(ctx.KVStore(k.storeKey), []byte(types.ValsetRequestKey)) - iter := prefixStore.ReverseIterator(nil, nil) - defer iter.Close() - for ; iter.Valid(); iter.Next() { - var valset types.Valset - k.cdc.MustUnmarshal(iter.Value(), &valset) - // cb returns true to stop early - if cb(iter.Key(), &valset) { - break - } - } -} - -// GetValsets returns all the validator sets in state -func (k Keeper) GetValsets(ctx sdk.Context) (out []types.Valset) { - // TODO this should definitely be optimized. Adding support for paging or providing a range - // is way better - k.IterateValsets(ctx, func(_ []byte, val *types.Valset) bool { - out = append(out, *val) - return false - }) - sort.Sort(types.Valsets(out)) - return -} - // GetLatestValset returns the latest validator set in store. This is different // from the CurrentValset because this one has been saved and is therefore *the* valset // for this nonce. GetCurrentValset shows you what could be, if you chose to save it, this function // shows you what is the latest valset that was saved. -func (k Keeper) GetLatestValset(ctx sdk.Context) (out *types.Valset) { - latestValsetNonce := k.GetLatestValsetNonce(ctx) - if latestValsetNonce == 0 { - valset := k.SetValsetRequest(ctx) - return &valset +func (k Keeper) GetLatestValset(ctx sdk.Context) (*types.Valset, error) { + nonce := k.GetLatestAttestationNonce(ctx) + for i := uint64(0); i <= nonce; i++ { + at := k.GetAttestationByNonce(ctx, nonce-i) + if at.Type() == types.ValsetRequestType { + valset, ok := at.(*types.Valset) + if !ok { + return nil, sdkerrors.Wrap(types.ErrAttestationNotValsetRequest, "couldn't cast attestation to valset") + } + return valset, nil + } } - - out = k.GetValset(ctx, latestValsetNonce) - return + // should never execute + return nil, sdkerrors.Wrap(sdkerrors.ErrNotFound, "couldn't find latest valset") } // SetLastUnBondingBlockHeight sets the last unbonding block height. Note this value is not saved and loaded in genesis @@ -206,7 +83,7 @@ func (k Keeper) GetCurrentValset(ctx sdk.Context) (types.Valset, error) { } // increment the nonce, since this potential future valset should be after the current valset - valsetNonce := k.GetLatestValsetNonce(ctx) + 1 + valsetNonce := k.GetLatestAttestationNonce(ctx) + 1 valset, err := types.NewValset(valsetNonce, uint64(ctx.BlockHeight()), bridgeValidators) if err != nil { @@ -232,3 +109,25 @@ func normalizeValidatorPower(rawPower uint64, totalValidatorPower sdk.Int) uint6 power.Quo(power, quotient) return power.Uint64() } + +// GetLastValsetBeforeNonce returns the previous valset before the provided `nonce`. +// the `nonce` can be a valset, but this method will return the previous one. +// If the provided nonce is 1. It will return an error. Because, there is no valset before nonce 1. +func (k Keeper) GetLastValsetBeforeNonce(ctx sdk.Context, nonce uint64) (*types.Valset, error) { + // starting at 1 because the current nonce can be a valset + // and we need the previous one. + for i := uint64(1); i < nonce; i++ { + at := k.GetAttestationByNonce(ctx, nonce-i) + if at.Type() == types.ValsetRequestType { + valset, ok := at.(*types.Valset) + if !ok { + return nil, sdkerrors.Wrap(types.ErrAttestationNotValsetRequest, "couldn't cast attestation to valset") + } + return valset, nil + } + } + return nil, sdkerrors.Wrap( + sdkerrors.ErrNotFound, + fmt.Sprintf("couldn't find valset before nonce %d", nonce), + ) +} diff --git a/x/qgb/keeper/keeper_valset_confirm.go b/x/qgb/keeper/keeper_valset_confirm.go index 6944d77249..b7c5c781fc 100644 --- a/x/qgb/keeper/keeper_valset_confirm.go +++ b/x/qgb/keeper/keeper_valset_confirm.go @@ -44,7 +44,7 @@ func (k Keeper) SetValsetConfirm(ctx sdk.Context, valsetConf types.MsgValsetConf // GetValsetConfirms get all ValsetConfirms with the provided nonce func (k Keeper) GetValsetConfirms(ctx sdk.Context, nonce uint64) (confirms []types.MsgValsetConfirm) { prefixStore := prefix.NewStore(ctx.KVStore(k.storeKey), []byte(types.ValsetConfirmKey)) - start, end := prefixRange([]byte(types.ConvertByteArrToString(types.UInt64Bytes(nonce)))) + start, end := PrefixRange([]byte(types.ConvertByteArrToString(types.UInt64Bytes(nonce)))) iterator := prefixStore.Iterator(start, end) defer iterator.Close() diff --git a/x/qgb/keeper/keeper_valset_test.go b/x/qgb/keeper/keeper_valset_test.go index 79815c12f9..715904c7c9 100644 --- a/x/qgb/keeper/keeper_valset_test.go +++ b/x/qgb/keeper/keeper_valset_test.go @@ -1,7 +1,8 @@ -package keeper +package keeper_test import ( "bytes" + "github.com/celestiaorg/celestia-app/x/qgb/keeper" "github.com/celestiaorg/celestia-app/x/qgb/types" gethcommon "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/assert" @@ -52,7 +53,7 @@ func TestCurrentValsetNormalization(t *testing.T) { for msg, spec := range specs { spec := spec t.Run(msg, func(t *testing.T) { - input, ctx := SetupTestChain(t, spec.srcPowers) + input, ctx := keeper.SetupTestChain(t, spec.srcPowers) r, err := input.QgbKeeper.GetCurrentValset(ctx) require.NoError(t, err) rMembers, err := types.BridgeValidators(r.Members).ToInternal() diff --git a/x/qgb/keeper/keystore/keycache.go b/x/qgb/keeper/keystore/keycache.go new file mode 100644 index 0000000000..4767d114ba --- /dev/null +++ b/x/qgb/keeper/keystore/keycache.go @@ -0,0 +1,153 @@ +package keystore + +import ( + "crypto/ecdsa" + // #nosec G505 + "crypto/sha1" + "io/ioutil" + "math/big" + "strings" + "sync" + + "github.com/ethereum/go-ethereum/accounts" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/accounts/keystore" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" + "github.com/pkg/errors" +) + +type KeyCache interface { + SetPath(account common.Address, path string) (existing bool) + UnsetPath(account common.Address) + PrivateKey(account common.Address, password string) (*ecdsa.PrivateKey, error) + SetPrivateKey(account common.Address, pk *ecdsa.PrivateKey) + UnsetKey(account common.Address, password string) + SignerFn(chainID uint64, account common.Address, password string) (SignerFn, error) + PersonalSignFn(account common.Address, password string) (PersonalSignFn, error) +} + +func NewKeyCache() KeyCache { + return &keyCache{ + paths: new(sync.Map), + keys: new(sync.Map), + guard: new(sync.Map), + } +} + +type keyCache struct { + paths *sync.Map // map[common.Address]string + keys *sync.Map // map[string]*ecdsa.PrivateKey + guard *sync.Map +} + +func (k *keyCache) SetPath(account common.Address, path string) (existing bool) { + _, existing = k.paths.LoadOrStore(account, path) + if existing { + // overwrite + k.paths.Store(account, path) + } + + return +} + +func (k *keyCache) UnsetPath(account common.Address) { + k.paths.Delete(account) +} + +func (k *keyCache) UnsetKey(account common.Address, password string) { + h := hashAccountPass(account, password) + k.keys.Delete(string(h)) +} + +func (k *keyCache) SetPrivateKey(account common.Address, pk *ecdsa.PrivateKey) { + h := hashAccountPass(account, "") + k.keys.Store(string(h), pk) +} + +func (k *keyCache) PrivateKey(account common.Address, password string) (*ecdsa.PrivateKey, error) { + h := hashAccountPass(account, password) + + mux, _ := k.guard.LoadOrStore(account, new(sync.Mutex)) + mux.(*sync.Mutex).Lock() + defer mux.(*sync.Mutex).Unlock() + + v, ok := k.keys.Load(string(h)) + if ok { + return v.(*ecdsa.PrivateKey), nil + } + + v, ok = k.paths.Load(account) + if !ok { + err := errors.Errorf("no keystore path set for account %s", account.String()) + return nil, err + } + + path := v.(string) + + path = strings.TrimPrefix(path, "keystore://") + + keyJSON, err := ioutil.ReadFile(path) + if err != nil { + err = errors.Wrap(err, "failed to load a file from keystore") + return nil, err + } + + pk, err := keystore.DecryptKey(keyJSON, password) + if err != nil { + err = errors.Wrap(err, "key decryption failed") + return nil, err + } + + k.keys.Store(string(h), pk.PrivateKey) + return pk.PrivateKey, nil +} + +func (k *keyCache) SignerFn(chainID uint64, account common.Address, password string) (SignerFn, error) { + key, err := k.PrivateKey(account, password) + if err != nil { + return nil, err + } + + txOpts, err := bind.NewKeyedTransactorWithChainID(key, new(big.Int).SetUint64(chainID)) + if err != nil { + err = errors.Wrap(err, "failed to init NewKeyedTransactorWithChainID") + return nil, err + } + + return txOpts.Signer, nil +} + +func (k *keyCache) PersonalSignFn(account common.Address, password string) (PersonalSignFn, error) { + key, err := k.PrivateKey(account, password) + if err != nil { + return nil, err + } + + keyAddress := crypto.PubkeyToAddress(key.PublicKey) + if keyAddress != account { + return nil, errors.New("account key address mismatch") + } + + signFn := func(from common.Address, data []byte) (sig []byte, err error) { + if from != keyAddress { + return nil, errors.New("from address mismatch") + } + + protectedHash := accounts.TextHash(data) + return crypto.Sign(protectedHash, key) + } + + return signFn, nil +} + +var hashSep = []byte("-") + +func hashAccountPass(account common.Address, password string) []byte { + // #nosec G401 + h := sha1.New() + h.Write(account[:]) + h.Write(hashSep) + h.Write([]byte(password)) + return h.Sum(nil) +} diff --git a/x/qgb/keeper/keystore/keystore.go b/x/qgb/keeper/keystore/keystore.go new file mode 100644 index 0000000000..236ad4f259 --- /dev/null +++ b/x/qgb/keeper/keystore/keystore.go @@ -0,0 +1,200 @@ +package keystore + +import ( + "crypto/ecdsa" + "encoding/json" + "errors" + "fmt" + "io/ioutil" + "os" + "path/filepath" + "sort" + "sync" + + "github.com/ethereum/go-ethereum/accounts" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" + "github.com/rs/zerolog" +) + +type PersonalSignFn func(account common.Address, data []byte) (sig []byte, err error) + +type SignerFn = bind.SignerFn + +type EthKeyStore interface { + PrivateKey(account common.Address, password string) (*ecdsa.PrivateKey, error) + SignerFn(chainID uint64, account common.Address, password string) (SignerFn, error) + PersonalSignFn(account common.Address, password string) (PersonalSignFn, error) + UnsetKey(account common.Address, password string) + Accounts() []common.Address + AddPath(keystorePath string) error + RemovePath(keystorePath string) + Paths() []string +} + +func New(logger zerolog.Logger, paths ...string) (EthKeyStore, error) { + ks := &keyStore{ + logger: logger.With().Str("module", "eth_key_store").Logger(), + cache: NewKeyCache(), + paths: make(map[string]struct{}), + pathsMux: new(sync.RWMutex), + } + + for _, path := range paths { + ks.paths[path] = struct{}{} + } + ks.reloadPathsCache() + + return ks, nil +} + +type keyStore struct { + logger zerolog.Logger + cache KeyCache + paths map[string]struct{} + pathsMux *sync.RWMutex +} + +func (ks *keyStore) PrivateKey(account common.Address, password string) (*ecdsa.PrivateKey, error) { + return ks.cache.PrivateKey(account, password) +} + +func (ks *keyStore) SignerFn(chainID uint64, account common.Address, password string) (SignerFn, error) { + return ks.cache.SignerFn(chainID, account, password) +} + +func (ks *keyStore) PersonalSignFn(account common.Address, password string) (PersonalSignFn, error) { + return ks.cache.PersonalSignFn(account, password) +} + +func (ks *keyStore) UnsetKey(account common.Address, password string) { + ks.cache.UnsetKey(account, password) +} + +func (ks *keyStore) Accounts() []common.Address { + paths := ks.Paths() + + var accounts []common.Address + for _, keystorePath := range paths { + if err := ks.forEachWallet(keystorePath, func(spec *WalletSpec) error { + accounts = append(accounts, spec.AddressFromHex()) + return nil + }); err != nil { + ks.logger.Err(err). + Str("keystore_path", keystorePath). + Msg("failed to read keystore files") + } + } + + return accounts +} + +func (ks *keyStore) forEachWallet(keystorePath string, fn func(spec *WalletSpec) error) error { + return filepath.Walk(keystorePath, func(path string, info os.FileInfo, err error) error { + switch { + case err != nil: + return err + case path == keystorePath: + return nil + case info.IsDir(): + return filepath.SkipDir + } + // Original + // if err != nil { + // return err + // } else if path == keystorePath { + // return nil + // } else if info.IsDir() { + // return filepath.SkipDir + // } + var spec *WalletSpec + if data, err := ioutil.ReadFile(path); err != nil { + return err + } else if err = json.Unmarshal(data, &spec); err != nil { + return err + } + if len(spec.Address) == 0 { + return fmt.Errorf("failed to load address from %s", path) + } else if !common.IsHexAddress(spec.Address) { + return fmt.Errorf("wrong (not hex) address from %s", path) + } + spec.Path = path + return fn(spec) + }) +} + +func (ks *keyStore) AddPath(keystorePath string) error { + f, err := os.Stat(keystorePath) + if err != nil { + return err + } else if !f.IsDir() { + return fmt.Errorf("%s is not a directory", keystorePath) + } + + ks.pathsMux.Lock() + ks.paths[keystorePath] = struct{}{} + ks.pathsMux.Unlock() + + ks.reloadPathsCache() + + return nil +} + +func (ks *keyStore) reloadPathsCache() { + paths := ks.Paths() + for _, keystorePath := range paths { + err := ks.forEachWallet(keystorePath, func(spec *WalletSpec) error { + _ = ks.cache.SetPath(spec.AddressFromHex(), spec.Path) + return nil + }) + if err != nil { + ks.logger.Err(err). + Str("keystore_path", keystorePath). + Msg("failed to read keystore files") + } + } +} + +func (ks *keyStore) RemovePath(keystorePath string) { + ks.pathsMux.Lock() + delete(ks.paths, keystorePath) + ks.pathsMux.Unlock() +} + +func (ks *keyStore) Paths() []string { + ks.pathsMux.RLock() + paths := make([]string, 0, len(ks.paths)) + for p := range ks.paths { + paths = append(paths, p) + } + ks.pathsMux.RUnlock() + sort.Strings(paths) + return paths +} + +type WalletSpec struct { + Address string `json:"address"` + ID string `json:"id"` + Version int `json:"version"` + Path string `json:"-"` +} + +func (spec *WalletSpec) AddressFromHex() common.Address { + return common.HexToAddress(spec.Address) +} + +func PrivateKeyPersonalSignFn(privKey *ecdsa.PrivateKey) (PersonalSignFn, error) { + keyAddress := crypto.PubkeyToAddress(privKey.PublicKey) + + signFn := func(from common.Address, data []byte) (sig []byte, err error) { + if from != keyAddress { + return nil, errors.New("from address mismatch") + } + + protectedHash := accounts.TextHash(data) + return crypto.Sign(protectedHash, privKey) + } + + return signFn, nil +} diff --git a/x/qgb/keeper/msg_server.go b/x/qgb/keeper/msg_server.go index 464bf6406b..a06b31e296 100644 --- a/x/qgb/keeper/msg_server.go +++ b/x/qgb/keeper/msg_server.go @@ -22,7 +22,7 @@ func NewMsgServerImpl(keeper Keeper) types.MsgServer { return &msgServer{Keeper: keeper} } -// ValsetConfirm handles MsgValsetConfirm +// ValsetConfirm handles MsgValsetConfirm. func (k msgServer) ValsetConfirm( c context.Context, msg *types.MsgValsetConfirm, @@ -30,9 +30,17 @@ func (k msgServer) ValsetConfirm( ctx := sdk.UnwrapSDKContext(c) // Get valset by nonce - valset := k.GetValset(ctx, msg.Nonce) - if valset == nil { - return nil, sdkerrors.Wrap(types.ErrInvalid, "couldn't find valset") + at := k.GetAttestationByNonce(ctx, msg.Nonce) + if at == nil { + return nil, types.ErrAttestationNotFound + } + if at.Type() != types.ValsetRequestType { + return nil, sdkerrors.Wrap(types.ErrAttestationNotValsetRequest, "attestation is not a valset request") + } + + valset, ok := at.(*types.Valset) + if !ok { + return nil, sdkerrors.Wrap(types.ErrAttestationNotValsetRequest, "couldn't cast attestation to valset") } // Get orchestrator account from message @@ -100,7 +108,7 @@ func (k msgServer) ValsetConfirm( return &types.MsgValsetConfirmResponse{}, nil } -// DataCommitmentConfirm handles MsgDataCommitmentConfirm +// DataCommitmentConfirm handles MsgDataCommitmentConfirm. func (k msgServer) DataCommitmentConfirm( c context.Context, msg *types.MsgDataCommitmentConfirm, @@ -134,12 +142,11 @@ func (k msgServer) DataCommitmentConfirm( } // Verify signature - nonce := msg.EndBlock / types.DataCommitmentWindow commitment, err := hex.DecodeString(msg.Commitment) if err != nil { return nil, err } - hash := types.DataCommitmentTupleRootSignBytes(types.BridgeId, big.NewInt(int64(nonce)), commitment) + hash := types.DataCommitmentTupleRootSignBytes(types.BridgeId, big.NewInt(int64(msg.Nonce)), commitment) err = types.ValidateEthereumSignature(hash.Bytes(), sigBytes, *ethAddress) if err != nil { return nil, sdkerrors.Wrap( diff --git a/x/qgb/keeper/query_attestation.go b/x/qgb/keeper/query_attestation.go new file mode 100644 index 0000000000..7ad7ae32d2 --- /dev/null +++ b/x/qgb/keeper/query_attestation.go @@ -0,0 +1,38 @@ +package keeper + +import ( + "context" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + + "github.com/celestiaorg/celestia-app/x/qgb/types" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func (k Keeper) AttestationRequestByNonce( + ctx context.Context, + request *types.QueryAttestationRequestByNonceRequest, +) (*types.QueryAttestationRequestByNonceResponse, error) { + attestation := k.GetAttestationByNonce( + sdk.UnwrapSDKContext(ctx), + request.Nonce, + ) + if attestation == nil { + return &types.QueryAttestationRequestByNonceResponse{}, types.ErrAttestationNotFound + } + val, err := codectypes.NewAnyWithValue(attestation) + if err != nil { + return nil, err + } + return &types.QueryAttestationRequestByNonceResponse{ + Attestation: val, + }, nil +} + +func (k Keeper) LatestAttestationNonce( + ctx context.Context, + request *types.QueryLatestAttestationNonceRequest, +) (*types.QueryLatestAttestationNonceResponse, error) { + return &types.QueryLatestAttestationNonceResponse{ + Nonce: k.GetLatestAttestationNonce(sdk.UnwrapSDKContext(ctx)), + }, nil +} diff --git a/x/qgb/keeper/query_data_commitment.go b/x/qgb/keeper/query_data_commitment.go deleted file mode 100644 index 9d6f5d12fb..0000000000 --- a/x/qgb/keeper/query_data_commitment.go +++ /dev/null @@ -1,46 +0,0 @@ -package keeper - -import ( - "context" - - "github.com/celestiaorg/celestia-app/x/qgb/types" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -const maxDataCommitmentRequestsReturned = 5 - -func (k Keeper) DataCommitmentRequestByNonce( - ctx context.Context, - request *types.QueryDataCommitmentRequestByNonceRequest, -) (*types.QueryDataCommitmentRequestByNonceResponse, error) { - return &types.QueryDataCommitmentRequestByNonceResponse{ - Commitment: k.GetDataCommitment( - sdk.UnwrapSDKContext(ctx), - request.Nonce, - ), - }, nil -} - -func (k Keeper) LastDataCommitmentRequests( - ctx context.Context, - request *types.QueryLastDataCommitmentRequestsRequest, -) (*types.QueryLastDataCommitmentRequestsResponse, error) { - dcReq := k.GetDataCommitments(sdk.UnwrapSDKContext(ctx)) - dcReqLen := len(dcReq) - retLen := 0 - if dcReqLen < maxDataCommitmentRequestsReturned { - retLen = dcReqLen - } else { - retLen = maxDataCommitmentRequestsReturned - } - return &types.QueryLastDataCommitmentRequestsResponse{Commitments: dcReq[0:retLen]}, nil -} - -func (k Keeper) LatestDataCommitmentNonce( - ctx context.Context, - request *types.QueryLatestDataCommitmentNonceRequest, -) (*types.QueryLatestDataCommitmentNonceResponse, error) { - return &types.QueryLatestDataCommitmentNonceResponse{ - Nonce: k.GetLatestDataCommitmentNonce(sdk.UnwrapSDKContext(ctx)), - }, nil -} diff --git a/x/qgb/keeper/query_data_commitment_confirm.go b/x/qgb/keeper/query_data_commitment_confirm.go index f87e0fa62c..2aa82440b3 100644 --- a/x/qgb/keeper/query_data_commitment_confirm.go +++ b/x/qgb/keeper/query_data_commitment_confirm.go @@ -27,22 +27,6 @@ func (k Keeper) DataCommitmentConfirm( }, nil } -func (k Keeper) DataCommitmentConfirmsByValidator( - ctx context.Context, - request *types.QueryDataCommitmentConfirmsByValidatorRequest, -) (*types.QueryDataCommitmentConfirmsByValidatorResponse, error) { - addr, err := sdk.AccAddressFromBech32(request.Address) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "address invalid") - } - return &types.QueryDataCommitmentConfirmsByValidatorResponse{ - Confirms: k.GetDataCommitmentConfirmsByValidator( - sdk.UnwrapSDKContext(ctx), - addr, - ), - }, nil -} - func (k Keeper) DataCommitmentConfirmsByCommitment( ctx context.Context, request *types.QueryDataCommitmentConfirmsByCommitmentRequest, @@ -55,19 +39,6 @@ func (k Keeper) DataCommitmentConfirmsByCommitment( }, nil } -func (k Keeper) DataCommitmentConfirmsByRange( - ctx context.Context, - request *types.QueryDataCommitmentConfirmsByRangeRequest, -) (*types.QueryDataCommitmentConfirmsByRangeResponse, error) { - return &types.QueryDataCommitmentConfirmsByRangeResponse{ - Confirms: k.GetDataCommitmentConfirmsByRange( - sdk.UnwrapSDKContext(ctx), - request.BeginBlock, - request.EndBlock, - ), - }, nil -} - func (k Keeper) DataCommitmentConfirmsByExactRange( ctx context.Context, request *types.QueryDataCommitmentConfirmsByExactRangeRequest, diff --git a/x/qgb/keeper/query_data_commitment_confirm_test.go b/x/qgb/keeper/query_data_commitment_confirm_test.go index f5a0873ba8..69837cef23 100644 --- a/x/qgb/keeper/query_data_commitment_confirm_test.go +++ b/x/qgb/keeper/query_data_commitment_confirm_test.go @@ -1,8 +1,9 @@ -package keeper +package keeper_test import ( "bytes" "fmt" + "github.com/celestiaorg/celestia-app/x/qgb/keeper" "github.com/celestiaorg/celestia-app/x/qgb/types" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -17,21 +18,26 @@ func TestQueryDataCommitment(t *testing.T) { addrStr = "cosmos1v4s3yfg8rujaz56yt5a3xznqjqgyeff4552l40" myValidatorCosmosAddr, err1 = sdk.AccAddressFromBech32(addrStr) myValidatorEthereumAddr, err2 = stakingtypes.NewEthAddress("0x3232323232323232323232323232323232323232") + nonce = uint64(20) ) require.NoError(t, err1) require.NoError(t, err2) - input := CreateTestEnv(t) + input := keeper.CreateTestEnv(t) sdkCtx := input.Context ctx := sdk.WrapSDKContext(input.Context) k := input.QgbKeeper - input.QgbKeeper.SetDataCommitmentConfirm(sdkCtx, types.MsgDataCommitmentConfirm{ - EthAddress: myValidatorEthereumAddr.GetAddress(), - Signature: "alksdjhflkasjdfoiasjdfiasjdfoiasdj", - ValidatorAddress: myValidatorCosmosAddr.String(), - Commitment: "commitment", - BeginBlock: 10, - EndBlock: 200, - }) + input.QgbKeeper.SetDataCommitmentConfirm( + sdkCtx, + *types.NewMsgDataCommitmentConfirm( + "commitment", + "alksdjhflkasjdfoiasjdfiasjdfoiasdj", + myValidatorCosmosAddr, + *myValidatorEthereumAddr, + 10, + 200, + nonce, + ), + ) specs := map[string]struct { src types.QueryDataCommitmentConfirmRequest @@ -52,6 +58,7 @@ func TestQueryDataCommitment(t *testing.T) { *myValidatorEthereumAddr, 10, 200, + nonce, ), }, expErr: false, @@ -99,251 +106,34 @@ func TestQueryDataCommitment(t *testing.T) { } } -func TestAllDataCommitmentsByValidator(t *testing.T) { - addr := "cosmos1v4s3yfg8rujaz56yt5a3xznqjqgyeff4552l40" - commitments := []string{ - "commitment1", - "commitment2", - "commitment3", - } - var ( - myValidatorCosmosAddr1, _ = sdk.AccAddressFromBech32(addr) - myValidatorEthereumAddr1, _ = stakingtypes.NewEthAddress("0x0101010101010101010101010101010101010101") - ) - - input := CreateTestEnv(t) - sdkCtx := input.Context - ctx := sdk.WrapSDKContext(input.Context) - k := input.QgbKeeper - - // seed commitments - for i := 0; i < 3; i++ { - addr, _ := sdk.AccAddressFromBech32(addr) - msg := types.MsgDataCommitmentConfirm{} - msg.EthAddress = myValidatorEthereumAddr1.GetAddress() - msg.Commitment = commitments[i] - msg.ValidatorAddress = addr.String() - msg.Signature = fmt.Sprintf("signature %d", i+1) - msg.BeginBlock = uint64(i * 10) - msg.EndBlock = uint64(i*10 + 10) - input.QgbKeeper.SetDataCommitmentConfirm(sdkCtx, msg) - } - - specs := map[string]struct { - src types.QueryDataCommitmentConfirmsByValidatorRequest - expErr bool - expResp types.QueryDataCommitmentConfirmsByValidatorResponse - }{ - "all good": { - src: types.QueryDataCommitmentConfirmsByValidatorRequest{Address: addr}, - expResp: types.QueryDataCommitmentConfirmsByValidatorResponse{Confirms: []types.MsgDataCommitmentConfirm{ - *types.NewMsgDataCommitmentConfirm( - commitments[0], - "signature 1", - myValidatorCosmosAddr1, - *myValidatorEthereumAddr1, - 0, - 10, - ), - *types.NewMsgDataCommitmentConfirm( - commitments[1], - "signature 2", - myValidatorCosmosAddr1, - *myValidatorEthereumAddr1, - 10, - 20, - ), - *types.NewMsgDataCommitmentConfirm( - commitments[2], - "signature 3", - myValidatorCosmosAddr1, - *myValidatorEthereumAddr1, - 20, - 30, - ), - }}, - }, - "unknown address": { - src: types.QueryDataCommitmentConfirmsByValidatorRequest{Address: "wrong address"}, - expResp: types.QueryDataCommitmentConfirmsByValidatorResponse{}, - expErr: true, - }, - } - for msg, spec := range specs { - t.Run(msg, func(t *testing.T) { - got, err := k.DataCommitmentConfirmsByValidator(ctx, &spec.src) - if spec.expErr { - require.Error(t, err) - return - } - require.NoError(t, err) - assert.Equal(t, len(got.Confirms), len(spec.expResp.Confirms)) - for i := 0; i < len(spec.expResp.Confirms); i++ { - assert.Contains(t, spec.expResp.Confirms, got.Confirms[i]) - } - }) - } -} - -func TestAllDataCommitmentsByRange(t *testing.T) { - commitment := "commitment" - addrs := []string{ - "cosmos1v4s3yfg8rujaz56yt5a3xznqjqgyeff4552l40", - "cosmos1dz6pu605p5x79dh5pz4dardhuzws6c0qqr0l6e", - "cosmos1er9mgk7x30aspqd2zwn970ywfls36ktdmgyzry", - } - type blockRange struct { - beginBlock uint64 - endBlock uint64 - } - ranges := []blockRange{ - {1, 101}, - {15, 120}, - {300, 450}, - } - var ( - myValidatorCosmosAddr1, _ = sdk.AccAddressFromBech32(addrs[0]) - myValidatorCosmosAddr2, _ = sdk.AccAddressFromBech32(addrs[1]) - myValidatorCosmosAddr3, _ = sdk.AccAddressFromBech32(addrs[2]) - myValidatorEthereumAddr1, _ = stakingtypes.NewEthAddress("0x0101010101010101010101010101010101010101") - myValidatorEthereumAddr2, _ = stakingtypes.NewEthAddress("0x0202020202020202020202020202020202020202") - myValidatorEthereumAddr3, _ = stakingtypes.NewEthAddress("0x0303030303030303030303030303030303030303") - ) - - input := CreateTestEnv(t) - sdkCtx := input.Context - ctx := sdk.WrapSDKContext(input.Context) - k := input.QgbKeeper - - // seed confirmations - for i := 0; i < 3; i++ { - addr, _ := sdk.AccAddressFromBech32(addrs[i]) - msg := types.MsgDataCommitmentConfirm{} - msg.EthAddress = gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(i + 1)}, 20)).String() - msg.Commitment = commitment - msg.BeginBlock = ranges[i].beginBlock - msg.EndBlock = ranges[i].endBlock - msg.ValidatorAddress = addr.String() - msg.Signature = fmt.Sprintf("signature %d", i+1) - input.QgbKeeper.SetDataCommitmentConfirm(sdkCtx, msg) - } - - specs := map[string]struct { - src types.QueryDataCommitmentConfirmsByRangeRequest - expErr bool - expResp types.QueryDataCommitmentConfirmsByRangeResponse - }{ - "all range": { - src: types.QueryDataCommitmentConfirmsByRangeRequest{BeginBlock: 1, EndBlock: 500}, - expResp: types.QueryDataCommitmentConfirmsByRangeResponse{Confirms: []types.MsgDataCommitmentConfirm{ - *types.NewMsgDataCommitmentConfirm( - commitment, - "signature 1", - myValidatorCosmosAddr1, - *myValidatorEthereumAddr1, - ranges[0].beginBlock, - ranges[0].endBlock, - ), - *types.NewMsgDataCommitmentConfirm( - commitment, - "signature 2", - myValidatorCosmosAddr2, - *myValidatorEthereumAddr2, - ranges[1].beginBlock, - ranges[1].endBlock, - ), - *types.NewMsgDataCommitmentConfirm( - commitment, - "signature 3", - myValidatorCosmosAddr3, - *myValidatorEthereumAddr3, - ranges[2].beginBlock, - ranges[2].endBlock, - ), - }}, - }, - "partial range 1 - 200": { - src: types.QueryDataCommitmentConfirmsByRangeRequest{BeginBlock: 1, EndBlock: 200}, - expResp: types.QueryDataCommitmentConfirmsByRangeResponse{Confirms: []types.MsgDataCommitmentConfirm{ - *types.NewMsgDataCommitmentConfirm( - commitment, - "signature 1", - myValidatorCosmosAddr1, - *myValidatorEthereumAddr1, - ranges[0].beginBlock, - ranges[0].endBlock, - ), - *types.NewMsgDataCommitmentConfirm( - commitment, - "signature 2", - myValidatorCosmosAddr2, - *myValidatorEthereumAddr2, - ranges[1].beginBlock, - ranges[1].endBlock, - ), - }}, - }, - "partial range 201 - 500": { - src: types.QueryDataCommitmentConfirmsByRangeRequest{BeginBlock: 201, EndBlock: 500}, - expResp: types.QueryDataCommitmentConfirmsByRangeResponse{Confirms: []types.MsgDataCommitmentConfirm{ - *types.NewMsgDataCommitmentConfirm( - commitment, - "signature 3", - myValidatorCosmosAddr3, - *myValidatorEthereumAddr3, - ranges[2].beginBlock, - ranges[2].endBlock, - ), - }}, - }, - "empty range": { - src: types.QueryDataCommitmentConfirmsByRangeRequest{BeginBlock: 800, EndBlock: 1000}, - expResp: types.QueryDataCommitmentConfirmsByRangeResponse{}, - }, - } - for msg, spec := range specs { - t.Run(msg, func(t *testing.T) { - got, err := k.DataCommitmentConfirmsByRange(ctx, &spec.src) - if spec.expErr { - require.Error(t, err) - return - } - require.NoError(t, err) - assert.Equal(t, len(got.Confirms), len(spec.expResp.Confirms)) - for i := 0; i < len(spec.expResp.Confirms); i++ { - assert.Contains(t, spec.expResp.Confirms, got.Confirms[i]) - } - }) - } -} - func TestAllDataCommitmentsByCommitment(t *testing.T) { - commitment := "commitment" - secondCommitment := "second commitment" - addrs := []string{ - "cosmos1v4s3yfg8rujaz56yt5a3xznqjqgyeff4552l40", - "cosmos1dz6pu605p5x79dh5pz4dardhuzws6c0qqr0l6e", - "cosmos1er9mgk7x30aspqd2zwn970ywfls36ktdmgyzry", - } type blockRange struct { beginBlock uint64 endBlock uint64 } - ranges := []blockRange{ - {1, 101}, - {15, 120}, - {300, 450}, - } var ( + commitment = "commitment" + secondCommitment = "second commitment" + addrs = []string{ + "cosmos1v4s3yfg8rujaz56yt5a3xznqjqgyeff4552l40", + "cosmos1dz6pu605p5x79dh5pz4dardhuzws6c0qqr0l6e", + "cosmos1er9mgk7x30aspqd2zwn970ywfls36ktdmgyzry", + } + ranges = []blockRange{ + {1, 101}, + {15, 120}, + {300, 450}, + } myValidatorCosmosAddr1, _ = sdk.AccAddressFromBech32(addrs[0]) myValidatorCosmosAddr2, _ = sdk.AccAddressFromBech32(addrs[1]) myValidatorCosmosAddr3, _ = sdk.AccAddressFromBech32(addrs[2]) myValidatorEthereumAddr1, _ = stakingtypes.NewEthAddress("0x0101010101010101010101010101010101010101") myValidatorEthereumAddr2, _ = stakingtypes.NewEthAddress("0x0202020202020202020202020202020202020202") myValidatorEthereumAddr3, _ = stakingtypes.NewEthAddress("0x0303030303030303030303030303030303030303") + nonce = uint64(20) ) - input := CreateTestEnv(t) + input := keeper.CreateTestEnv(t) sdkCtx := input.Context ctx := sdk.WrapSDKContext(input.Context) k := input.QgbKeeper @@ -351,26 +141,37 @@ func TestAllDataCommitmentsByCommitment(t *testing.T) { // seed confirmations for i := 0; i < 3; i++ { addr, _ := sdk.AccAddressFromBech32(addrs[i]) - msg := types.MsgDataCommitmentConfirm{} - msg.EthAddress = gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(i + 1)}, 20)).String() - msg.Commitment = commitment - msg.BeginBlock = ranges[i].beginBlock - msg.EndBlock = ranges[i].endBlock - msg.ValidatorAddress = addr.String() - msg.Signature = fmt.Sprintf("signature %d", i+1) - input.QgbKeeper.SetDataCommitmentConfirm(sdkCtx, msg) + ethAddr, _ := stakingtypes.NewEthAddress(gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(i + 1)}, 20)).String()) + input.QgbKeeper.SetDataCommitmentConfirm( + sdkCtx, + *types.NewMsgDataCommitmentConfirm( + commitment, + fmt.Sprintf("signature %d", i+1), + addr, + *ethAddr, + ranges[i].beginBlock, + ranges[i].endBlock, + nonce, + ), + ) } // seed a second commitment message addr, _ := sdk.AccAddressFromBech32(addrs[0]) - secondCommitmentMsg := types.MsgDataCommitmentConfirm{} - secondCommitmentMsg.EthAddress = gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(1)}, 20)).String() - secondCommitmentMsg.Commitment = secondCommitment - secondCommitmentMsg.BeginBlock = 800 - secondCommitmentMsg.EndBlock = 900 - secondCommitmentMsg.ValidatorAddress = addr.String() - secondCommitmentMsg.Signature = "signature 1" - input.QgbKeeper.SetDataCommitmentConfirm(sdkCtx, secondCommitmentMsg) + ethAddr, _ := stakingtypes.NewEthAddress(gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(1)}, 20)).String()) + + input.QgbKeeper.SetDataCommitmentConfirm( + sdkCtx, + *types.NewMsgDataCommitmentConfirm( + secondCommitment, + "signature 1", + addr, + *ethAddr, + 800, + 900, + nonce, + ), + ) specs := map[string]struct { src types.QueryDataCommitmentConfirmsByCommitmentRequest @@ -387,6 +188,7 @@ func TestAllDataCommitmentsByCommitment(t *testing.T) { *myValidatorEthereumAddr1, ranges[0].beginBlock, ranges[0].endBlock, + nonce, ), *types.NewMsgDataCommitmentConfirm( commitment, @@ -395,6 +197,7 @@ func TestAllDataCommitmentsByCommitment(t *testing.T) { *myValidatorEthereumAddr2, ranges[1].beginBlock, ranges[1].endBlock, + nonce, ), *types.NewMsgDataCommitmentConfirm( commitment, @@ -403,6 +206,7 @@ func TestAllDataCommitmentsByCommitment(t *testing.T) { *myValidatorEthereumAddr3, ranges[2].beginBlock, ranges[2].endBlock, + nonce, ), }}, }, diff --git a/x/qgb/keeper/query_valset.go b/x/qgb/keeper/query_valset.go index 54affa9409..712671b79e 100644 --- a/x/qgb/keeper/query_valset.go +++ b/x/qgb/keeper/query_valset.go @@ -2,63 +2,20 @@ package keeper import ( "context" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/celestiaorg/celestia-app/x/qgb/types" sdk "github.com/cosmos/cosmos-sdk/types" ) // TODO add unit tests for all of these requests -// LastValsetRequests queries the LastValsetRequests of the qgb module -func (k Keeper) LastValsetRequests( - c context.Context, - req *types.QueryLastValsetRequestsRequest) (*types.QueryLastValsetRequestsResponse, error) { - valReq := k.GetValsets(sdk.UnwrapSDKContext(c)) - valReqLen := len(valReq) - retLen := 0 - if valReqLen < maxValsetRequestsReturned { - retLen = valReqLen - } else { - retLen = maxValsetRequestsReturned - } - // TODO: check if we need the first ones or the last ones - return &types.QueryLastValsetRequestsResponse{Valsets: valReq[0:retLen]}, nil -} - -// ValsetRequestByNonce queries the Valset request of the qgb module by nonce -func (k Keeper) ValsetRequestByNonce( - c context.Context, - req *types.QueryValsetRequestByNonceRequest) (*types.QueryValsetRequestByNonceResponse, error) { - // TODO add test for this - return &types.QueryValsetRequestByNonceResponse{Valset: k.GetValset( - sdk.UnwrapSDKContext(c), - req.Nonce, - )}, nil -} // LastValsetBeforeHeight queries the last valset request before height -func (k Keeper) LastValsetBeforeHeight( +func (k Keeper) LastValsetRequestBeforeNonce( c context.Context, - req *types.QueryLastValsetBeforeHeightRequest) (*types.QueryLastValsetBeforeHeightResponse, error) { - valReq := k.GetValsets(sdk.UnwrapSDKContext(c)) - for _, valset := range valReq { - // The first check is correct because we will always have a valset at block 0. - // We're creating valsets: - // - If we have no valset - // - We're an unbonding height - // - There was a significant power difference in the validator set - // For more information, check qgb/abci.go.EndBlocker:42 - if valset.Height < req.Height && - (!k.HasValsetRequest(sdk.UnwrapSDKContext(c), valset.Nonce+1) || - (k.HasValsetRequest(sdk.UnwrapSDKContext(c), valset.Nonce+1) && - k.GetValset(sdk.UnwrapSDKContext(c), valset.Nonce+1).Height >= req.Height)) { - vs, err := types.CopyValset(valset) - if err != nil { - return nil, err - } - return &types.QueryLastValsetBeforeHeightResponse{Valset: vs}, nil - } + req *types.QueryLastValsetRequestBeforeNonceRequest, +) (*types.QueryLastValsetRequestBeforeNonceResponse, error) { + vs, err := k.GetLastValsetBeforeNonce(sdk.UnwrapSDKContext(c), req.Nonce) + if err != nil { + return nil, err } - - return nil, sdkerrors.Wrap(sdkerrors.ErrNotFound, "last valset request before height not found") + return &types.QueryLastValsetRequestBeforeNonceResponse{Valset: vs}, nil } diff --git a/x/qgb/keeper/query_valset_confirm.go b/x/qgb/keeper/query_valset_confirm.go index e0a7cd9883..d020cb29ad 100644 --- a/x/qgb/keeper/query_valset_confirm.go +++ b/x/qgb/keeper/query_valset_confirm.go @@ -27,8 +27,6 @@ func (k Keeper) ValsetConfirmsByNonce( return &types.QueryValsetConfirmsByNonceResponse{Confirms: confirms}, nil } -const maxValsetRequestsReturned = 5 - func (k Keeper) Params(c context.Context, request *types.QueryParamsRequest) (*types.QueryParamsResponse, error) { params := k.GetParams(sdk.UnwrapSDKContext(c)) return &types.QueryParamsResponse{ diff --git a/x/qgb/keeper/query_valset_confirm_test.go b/x/qgb/keeper/query_valset_confirm_test.go index 57a1a1058f..129f52c675 100644 --- a/x/qgb/keeper/query_valset_confirm_test.go +++ b/x/qgb/keeper/query_valset_confirm_test.go @@ -1,8 +1,9 @@ -package keeper +package keeper_test import ( "bytes" "fmt" + "github.com/celestiaorg/celestia-app/x/qgb/keeper" "github.com/celestiaorg/celestia-app/x/qgb/types" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -21,16 +22,16 @@ func TestQueryValsetConfirm(t *testing.T) { ) require.NoError(t, err1) require.NoError(t, err2) - input := CreateTestEnv(t) + input := keeper.CreateTestEnv(t) sdkCtx := input.Context ctx := sdk.WrapSDKContext(input.Context) k := input.QgbKeeper - input.QgbKeeper.SetValsetConfirm(sdkCtx, types.MsgValsetConfirm{ - Nonce: nonce, - Orchestrator: myValidatorCosmosAddr.String(), - EthAddress: myValidatorEthereumAddr.GetAddress(), - Signature: "alksdjhflkasjdfoiasjdfiasjdfoiasdj", - }) + input.QgbKeeper.SetValsetConfirm(sdkCtx, *types.NewMsgValsetConfirm( + nonce, + *myValidatorEthereumAddr, + myValidatorCosmosAddr, + "alksdjhflkasjdfoiasjdfiasjdfoiasdj", + )) specs := map[string]struct { src types.QueryValsetConfirmRequest @@ -91,7 +92,7 @@ func TestAllValsetConfirmsByNonce(t *testing.T) { myValidatorEthereumAddr3, _ = stakingtypes.NewEthAddress("0x0303030303030303030303030303030303030303") ) - input := CreateTestEnv(t) + input := keeper.CreateTestEnv(t) sdkCtx := input.Context ctx := sdk.WrapSDKContext(input.Context) k := input.QgbKeeper @@ -151,28 +152,28 @@ func TestQueryCurrentValset(t *testing.T) { Members: []types.BridgeValidator{ { Power: 858993459, - EthereumAddress: EthAddrs[0].GetAddress(), + EthereumAddress: keeper.EthAddrs[0].GetAddress(), }, { Power: 858993459, - EthereumAddress: EthAddrs[1].GetAddress(), + EthereumAddress: keeper.EthAddrs[1].GetAddress(), }, { Power: 858993459, - EthereumAddress: EthAddrs[2].GetAddress(), + EthereumAddress: keeper.EthAddrs[2].GetAddress(), }, { Power: 858993459, - EthereumAddress: EthAddrs[3].GetAddress(), + EthereumAddress: keeper.EthAddrs[3].GetAddress(), }, { Power: 858993459, - EthereumAddress: EthAddrs[4].GetAddress(), + EthereumAddress: keeper.EthAddrs[4].GetAddress(), }, }, } ) - input, _ := SetupFiveValChain(t) + input, _ := keeper.SetupFiveValChain(t) sdkCtx := input.Context currentValset, err := input.QgbKeeper.GetCurrentValset(sdkCtx) diff --git a/x/qgb/keeper/test_common.go b/x/qgb/keeper/test_common.go index 41c5addca0..7b96f66d7b 100644 --- a/x/qgb/keeper/test_common.go +++ b/x/qgb/keeper/test_common.go @@ -354,7 +354,7 @@ func CreateTestEnv(t *testing.T) TestInput { k.SetParams(ctx, *testQGBParams) // set gravityIDs for batches and tx items, simulating genesis setup - k.SetLatestValsetNonce(ctx, 0) + k.SetLatestAttestationNonce(ctx, 0) stakingKeeper = *stakingKeeper.SetHooks( stakingtypes.NewMultiStakingHooks( diff --git a/x/qgb/orchestrator/codec.go b/x/qgb/orchestrator/codec.go new file mode 100644 index 0000000000..1599ea6520 --- /dev/null +++ b/x/qgb/orchestrator/codec.go @@ -0,0 +1,30 @@ +package orchestrator + +import ( + types "github.com/celestiaorg/celestia-app/x/qgb/types" + "github.com/cosmos/cosmos-sdk/codec" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/cosmos/cosmos-sdk/std" + "github.com/cosmos/cosmos-sdk/x/auth/tx" + "github.com/tendermint/spm/cosmoscmd" +) + +// MakeEncodingConfig is copied here so that we don't have to have an +// import cycle. if possible, use cosmoscmd.MakeEncodingConfig +// TODO use the existing encoding config when merging to master. +// https://github.com/celestiaorg/celestia-app/issues/499 +func MakeEncodingConfig() cosmoscmd.EncodingConfig { + amino := codec.NewLegacyAmino() + interfaceRegistry := codectypes.NewInterfaceRegistry() + types.RegisterInterfaces(interfaceRegistry) + std.RegisterInterfaces(interfaceRegistry) + marshaler := codec.NewProtoCodec(interfaceRegistry) + txCfg := tx.NewTxConfig(marshaler, tx.DefaultSignModes) + + return cosmoscmd.EncodingConfig{ + InterfaceRegistry: interfaceRegistry, + Marshaler: marshaler, + TxConfig: txCfg, + Amino: amino, + } +} diff --git a/x/qgb/orchestrator/common_test.go b/x/qgb/orchestrator/common_test.go index 8b3d24680a..d18df8cb29 100644 --- a/x/qgb/orchestrator/common_test.go +++ b/x/qgb/orchestrator/common_test.go @@ -2,6 +2,7 @@ package orchestrator import ( "context" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" tmlog "github.com/tendermint/tendermint/libs/log" "os" "sync" @@ -11,7 +12,7 @@ import ( "github.com/celestiaorg/celestia-app/testutil" paytypes "github.com/celestiaorg/celestia-app/x/payment/types" "github.com/celestiaorg/celestia-app/x/qgb/types" - wrapper "github.com/celestiaorg/quantum-gravity-bridge/ethereum/solidity/wrappers/QuantumGravityBridge.sol" + wrapper "github.com/celestiaorg/quantum-gravity-bridge/wrappers/QuantumGravityBridge.sol" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" @@ -24,12 +25,17 @@ func setupTestOrchestrator(t *testing.T, bc Broadcaster) *orchestrator { if err != nil { panic(err) } + orchEthAddr, err := stakingtypes.NewEthAddress(crypto.PubkeyToAddress(priv.PublicKey).Hex()) + if err != nil { + panic(err) + } return &orchestrator{ broadcaster: bc, - orchestratorAddress: crypto.PubkeyToAddress(priv.PublicKey).Hex(), + orchestratorAddress: sdk.AccAddress(crypto.PubkeyToAddress(priv.PublicKey).Hex()), bridgeID: types.BridgeId, evmPrivateKey: *priv, logger: tmlog.NewTMLogger(os.Stdout), + orchEthAddress: *orchEthAddr, } } diff --git a/x/qgb/orchestrator/deploy_command.go b/x/qgb/orchestrator/deploy_command.go index 1de9cc45e9..587ee0fadf 100644 --- a/x/qgb/orchestrator/deploy_command.go +++ b/x/qgb/orchestrator/deploy_command.go @@ -6,7 +6,7 @@ import ( "os" "github.com/celestiaorg/celestia-app/x/qgb/types" - wrapper "github.com/celestiaorg/quantum-gravity-bridge/ethereum/solidity/wrappers/QuantumGravityBridge.sol" + wrapper "github.com/celestiaorg/quantum-gravity-bridge/wrappers/QuantumGravityBridge.sol" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/ethclient" "github.com/spf13/cobra" @@ -25,7 +25,7 @@ func DeployCmd() *cobra.Command { logger := tmlog.NewTMLogger(os.Stdout) - querier, err := NewQuerier(config.celesGRPC, config.tendermintRPC, logger) + querier, err := NewQuerier(config.celesGRPC, config.tendermintRPC, logger, MakeEncodingConfig()) if err != nil { return err } @@ -44,8 +44,9 @@ func DeployCmd() *cobra.Command { // init bridgeID var bridgeID [32]byte - copy(bridgeID[:], types.BridgeId.Bytes()) // is this safe? + copy(bridgeID[:], types.BridgeId.Bytes()) + // TODO change to get the current valaset // get the first valset vs, err := querier.QueryValsetByNonce(cmd.Context(), 1) if err != nil { @@ -66,6 +67,7 @@ func DeployCmd() *cobra.Command { auth, ethClient, bridgeID, + big.NewInt(0), // TODO get the latest instead or make it a parameter big.NewInt(int64(vs.TwoThirdsThreshold())), ethVsHash, ) diff --git a/x/qgb/orchestrator/encode_test.go b/x/qgb/orchestrator/encode_test.go index 59d3c72eb0..82e990a9d1 100644 --- a/x/qgb/orchestrator/encode_test.go +++ b/x/qgb/orchestrator/encode_test.go @@ -4,9 +4,9 @@ import ( "math/big" "testing" + "github.com/celestiaorg/celestia-app/x/qgb/keeper/keystore" "github.com/celestiaorg/celestia-app/x/qgb/types" - wrapper "github.com/celestiaorg/quantum-gravity-bridge/ethereum/solidity/wrappers/QuantumGravityBridge.sol" - "github.com/celestiaorg/quantum-gravity-bridge/orchestrator/ethereum/keystore" + wrapper "github.com/celestiaorg/quantum-gravity-bridge/wrappers/QuantumGravityBridge.sol" ethcmn "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" "github.com/stretchr/testify/assert" diff --git a/x/qgb/orchestrator/errors.go b/x/qgb/orchestrator/errors.go new file mode 100644 index 0000000000..7c8492a985 --- /dev/null +++ b/x/qgb/orchestrator/errors.go @@ -0,0 +1,13 @@ +package orchestrator + +import "errors" + +var ( + ErrValsetNotFound = errors.New("valset not found") + ErrDataCommitmentNotFound = errors.New("data commitment not found") + ErrUnmarshallValset = errors.New("couldn't unmarsall valset") + ErrUnmarshallDataCommitment = errors.New("couldn't unmarsall data commitment") + ErrConfirmSignatureNotFound = errors.New("confirm signature not found") + ErrNotEnoughValsetConfirms = errors.New("couldn't find enough valset confirms") + ErrNotEnoughDataCommitmentConfirms = errors.New("couldn't find enough data commitment confirms") +) diff --git a/x/qgb/orchestrator/evm_client.go b/x/qgb/orchestrator/evm_client.go index c481f4f83d..7367798fc8 100644 --- a/x/qgb/orchestrator/evm_client.go +++ b/x/qgb/orchestrator/evm_client.go @@ -13,10 +13,12 @@ import ( tmlog "github.com/tendermint/tendermint/libs/log" "github.com/celestiaorg/celestia-app/x/qgb/types" - wrapper "github.com/celestiaorg/quantum-gravity-bridge/ethereum/solidity/wrappers/QuantumGravityBridge.sol" + wrapper "github.com/celestiaorg/quantum-gravity-bridge/wrappers/QuantumGravityBridge.sol" "github.com/ethereum/go-ethereum/accounts/abi/bind" ) +var _ EVMClient = &evmClient{} + type EVMClient interface { UpdateValidatorSet( ctx context.Context, @@ -31,8 +33,7 @@ type EVMClient interface { currentValset types.Valset, sigs []wrapper.Signature, ) error - StateLastDataRootTupleRootNonce(opts *bind.CallOpts) (uint64, error) - StateLastValsetNonce(opts *bind.CallOpts) (uint64, error) + StateLastEventNonce(opts *bind.CallOpts) (uint64, error) } type evmClient struct { @@ -47,7 +48,7 @@ func NewEvmClient( wrapper wrapper.QuantumGravityBridge, privateKey *ecdsa.PrivateKey, evmRPC string, -) EVMClient { +) *evmClient { return &evmClient{ logger: logger, wrapper: wrapper, @@ -62,7 +63,9 @@ func (ec *evmClient) UpdateValidatorSet( currentValset, newValset types.Valset, sigs []wrapper.Signature, ) error { + // TODO in addition to the nonce, log more interesting information ec.logger.Info(fmt.Sprintf("relaying valset %d...", newNonce)) + // TODO gasLimit ? opts, err := ec.NewTransactOpts(ctx, 1000000) if err != nil { return err @@ -78,9 +81,17 @@ func (ec *evmClient) UpdateValidatorSet( return err } + var currentNonce uint64 + if newValset.Nonce == 1 { + currentNonce = 0 + } else { + currentNonce = currentValset.Nonce + } + tx, err := ec.wrapper.UpdateValidatorSet( opts, big.NewInt(int64(newNonce)), + big.NewInt(int64(currentNonce)), big.NewInt(int64(newThreshHold)), ethVsHash, ethVals, @@ -93,7 +104,7 @@ func (ec *evmClient) UpdateValidatorSet( // TODO put this in a separate function and listen for new EVM blocks instead of just sleeping for i := 0; i < 60; i++ { ec.logger.Debug(fmt.Sprintf("waiting for valset %d to be confirmed: %s", newNonce, tx.Hash().String())) - lastNonce, err := ec.StateLastValsetNonce(&bind.CallOpts{Context: ctx}) + lastNonce, err := ec.StateLastEventNonce(&bind.CallOpts{Context: ctx}) if err != nil { return err } @@ -115,11 +126,6 @@ func (ec *evmClient) SubmitDataRootTupleRoot( currentValset types.Valset, sigs []wrapper.Signature, ) error { - ec.logger.Info(fmt.Sprintf( - "relaying data commitment %d-%d...", - (newNonce-1)*types.DataCommitmentWindow, // because the nonce was already incremented - newNonce*types.DataCommitmentWindow, - )) opts, err := ec.NewTransactOpts(ctx, 1000000) if err != nil { return err @@ -130,10 +136,10 @@ func (ec *evmClient) SubmitDataRootTupleRoot( return err } - // todo: why are we using the last nonce here? shouldn't we just use the new nonce? tx, err := ec.wrapper.SubmitDataRootTupleRoot( opts, big.NewInt(int64(newNonce)), + big.NewInt(int64(currentValset.Nonce)), tupleRoot, ethVals, sigs, @@ -145,20 +151,16 @@ func (ec *evmClient) SubmitDataRootTupleRoot( // TODO put this in a separate function and listen for new EVM blocks instead of just sleeping for i := 0; i < 60; i++ { ec.logger.Debug(fmt.Sprintf( - "waiting for data commitment %d-%d to be confirmed: %s", - (newNonce-1)*types.DataCommitmentWindow, // because the nonce was already incremented - newNonce*types.DataCommitmentWindow, + "waiting for data commitment to be confirmed: %s", tx.Hash().String(), )) - lastNonce, err := ec.StateLastDataRootTupleRootNonce(&bind.CallOpts{Context: ctx}) + lastNonce, err := ec.StateLastEventNonce(&bind.CallOpts{Context: ctx}) if err != nil { return err } if lastNonce == newNonce { ec.logger.Info(fmt.Sprintf( - "relayed data commitment %d-%d: %s", - (newNonce-1)*types.DataCommitmentWindow, // because the nonce was already incremented - newNonce*types.DataCommitmentWindow, + "relayed data commitment: %s", tx.Hash().String(), )) return nil @@ -167,9 +169,7 @@ func (ec *evmClient) SubmitDataRootTupleRoot( } ec.logger.Error( fmt.Sprintf( - "failed to relay data commitment %d-%d: %s", - (newNonce-1)*types.DataCommitmentWindow, // because the nonce was already incremented - newNonce*types.DataCommitmentWindow, + "failed to relay data commitment: %s", tx.Hash().String(), ), ) @@ -191,16 +191,8 @@ func (ec *evmClient) NewTransactOpts(ctx context.Context, gasLim uint64) (*bind. return opts, nil } -func (ec *evmClient) StateLastDataRootTupleRootNonce(opts *bind.CallOpts) (uint64, error) { - nonce, err := ec.wrapper.StateLastDataRootTupleRootNonce(opts) - if err != nil { - return 0, err - } - return nonce.Uint64(), nil -} - -func (ec *evmClient) StateLastValsetNonce(opts *bind.CallOpts) (uint64, error) { - nonce, err := ec.wrapper.StateLastValidatorSetNonce(opts) +func (ec *evmClient) StateLastEventNonce(opts *bind.CallOpts) (uint64, error) { + nonce, err := ec.wrapper.StateEventNonce(opts) if err != nil { return 0, err } diff --git a/x/qgb/orchestrator/orchestrator.go b/x/qgb/orchestrator/orchestrator.go index 69bb756275..de20a30435 100644 --- a/x/qgb/orchestrator/orchestrator.go +++ b/x/qgb/orchestrator/orchestrator.go @@ -4,11 +4,11 @@ import ( "context" "crypto/ecdsa" "fmt" + sdk "github.com/cosmos/cosmos-sdk/types" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/tendermint/tendermint/libs/log" "math/big" - "github.com/ethereum/go-ethereum/crypto" - "github.com/celestiaorg/celestia-app/x/qgb/types" ethcmn "github.com/ethereum/go-ethereum/common" ) @@ -23,7 +23,8 @@ type orchestrator struct { bridgeID ethcmn.Hash // celestia related signing - orchestratorAddress string + orchestratorAddress sdk.AccAddress + orchEthAddress stakingtypes.EthAddress } func (oc *orchestrator) processValsetEvents(ctx context.Context, valsetChannel <-chan types.Valset) error { @@ -41,12 +42,12 @@ func (oc *orchestrator) processValsetEvents(ctx context.Context, valsetChannel < } // create and send the valset hash - msg := &types.MsgValsetConfirm{ - Orchestrator: oc.orchestratorAddress, - EthAddress: crypto.PubkeyToAddress(oc.evmPrivateKey.PublicKey).Hex(), - Nonce: valset.Nonce, - Signature: ethcmn.Bytes2Hex(signature), - } + msg := types.NewMsgValsetConfirm( + valset.Nonce, + oc.orchEthAddress, + oc.orchestratorAddress, + ethcmn.Bytes2Hex(signature), + ) hash, err := oc.broadcaster.BroadcastTx(ctx, msg) if err != nil { @@ -70,14 +71,15 @@ func (oc *orchestrator) processDataCommitmentEvents( continue } - msg := &types.MsgDataCommitmentConfirm{ - EthAddress: crypto.PubkeyToAddress(oc.evmPrivateKey.PublicKey).Hex(), - Commitment: dc.Commitment.String(), - BeginBlock: dc.Data.BeginBlock, - EndBlock: dc.Data.EndBlock, - ValidatorAddress: oc.orchestratorAddress, - Signature: ethcmn.Bytes2Hex(dcSig), - } + msg := types.NewMsgDataCommitmentConfirm( + dc.Commitment.String(), + ethcmn.Bytes2Hex(dcSig), + oc.orchestratorAddress, + oc.orchEthAddress, + dc.Data.BeginBlock, + dc.Data.EndBlock, + dc.Data.Nonce, + ) hash, err := oc.broadcaster.BroadcastTx(ctx, msg) if err != nil { diff --git a/x/qgb/orchestrator/orchestrator_client.go b/x/qgb/orchestrator/orchestrator_client.go index 9c9cac9e6f..90daeb9fee 100644 --- a/x/qgb/orchestrator/orchestrator_client.go +++ b/x/qgb/orchestrator/orchestrator_client.go @@ -2,12 +2,12 @@ package orchestrator import ( "context" + "errors" "fmt" "sync" "time" "github.com/celestiaorg/celestia-app/x/qgb/types" - sdk "github.com/cosmos/cosmos-sdk/types" tmlog "github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/rpc/client/http" ) @@ -46,7 +46,7 @@ func NewOrchestratorClient( }, nil } -// TODO this will be removed when we use the new job/worker design for the client +// TODO this will be removed when we use the new job/worker design for the client. func contains(s []uint64, nonce uint64) bool { for _, v := range s { if v == nonce { @@ -56,56 +56,52 @@ func contains(s []uint64, nonce uint64) bool { return false } +var nonces = make([]uint64, 10000) + func (oc *orchestratorClient) SubscribeValset(ctx context.Context) (<-chan types.Valset, error) { valsetsChan := make(chan types.Valset, 100) // will change once we have the new design go oc.addOldValsetAttestations(ctx, valsetsChan) - results, err := oc.tendermintRPC.Subscribe( - ctx, - "valset-changes", - fmt.Sprintf("%s.%s='%s'", types.EventTypeValsetRequest, sdk.AttributeKeyModule, types.ModuleName), - ) + latestNonce, err := oc.querier.QueryLatestAttestationNonce(ctx) if err != nil { - return nil, err + oc.logger.Error(err.Error()) + time.Sleep(1 * time.Second) + } + if latestNonce == 0 { + latestNonce++ } - - nonces := make([]uint64, 10000) - go func() { defer close(valsetsChan) for { select { case <-ctx.Done(): return - case <-results: - // TODO add query for LatestValsetNonce and use it instead of this - valsets, err := oc.querier.QueryLastValsets(ctx) + default: + valset, err := oc.querier.QueryValsetByNonce(ctx, latestNonce) if err != nil { - oc.logger.Error(err.Error()) - continue - } - - // todo: double check that the first validator set is found - if len(valsets) < 1 { - oc.logger.Error("no validator sets found") + if errors.Is(err, types.ErrAttestationNotValsetRequest) { + latestNonce++ + continue + } + time.Sleep(1 * time.Second) continue } - valset := valsets[0] - // Checking if we already signed this valset resp, err := oc.querier.QueryValsetConfirm(ctx, valset.Nonce, oc.orchestratorAddress) if err != nil { oc.logger.Error(err.Error()) + time.Sleep(1 * time.Second) continue } if resp == nil && !contains(nonces, valset.Nonce) { - valsetsChan <- valset + valsetsChan <- *valset nonces = append(nonces, valset.Nonce) } + latestNonce++ } } }() @@ -122,37 +118,32 @@ func (oc *orchestratorClient) addOldValsetAttestations(ctx context.Context, vals return } - // TODO add query for LatestValsetNonce and use it instead of this - valsets, err := oc.querier.QueryLastValsets(ctx) + latestNonce, err := oc.querier.QueryLatestAttestationNonce(ctx) if err != nil { oc.logger.Error(err.Error()) return } - // todo: double check that the first validator set is found - if len(valsets) < 1 { - oc.logger.Error("no validator sets found") - return - } - valsetsChan <- valsets[0] - - previousNonce := valsets[0].Nonce - for { - if previousNonce == 1 { - return + previousNonce := latestNonce - 1 + for previousNonce < latestNonce { + if previousNonce == 0 { + break } - previousNonce = previousNonce - 1 lastVsConfirm, err := oc.querier.QueryValsetConfirm(ctx, previousNonce, oc.orchestratorAddress) if err != nil { oc.logger.Error(err.Error()) - return + time.Sleep(1 * time.Second) + continue } // The valset signed by the orchestrator to get lastVsConfirm // Used to get the height that valset was first introduced correspondingVs, err := oc.querier.QueryValsetByNonce(ctx, previousNonce) if err != nil { - oc.logger.Error(err.Error()) - return + if !errors.Is(err, types.ErrAttestationNotValsetRequest) { + oc.logger.Error(fmt.Sprintf("nonce %d: %s", previousNonce, err.Error())) + } + previousNonce-- + continue } if correspondingVs.Height < lastUnbondingHeight { // Most likely, we're up to date and don't need to catchup anymore @@ -160,12 +151,17 @@ func (oc *orchestratorClient) addOldValsetAttestations(ctx context.Context, vals } if lastVsConfirm != nil { // in case we have holes in the signatures + previousNonce-- continue } // valsetChan is the ordinary valset channel used above. The orchestrator keeps adding to it // old attestations same as with new ones when listening. - valsetsChan <- *correspondingVs + if !contains(nonces, correspondingVs.Nonce) { + valsetsChan <- *correspondingVs + nonces = append(nonces, correspondingVs.Nonce) + } + previousNonce-- } } @@ -175,17 +171,17 @@ func (oc *orchestratorClient) SubscribeDataCommitment(ctx context.Context) (<-ch // will change once we have the new design go oc.addOldDataCommitmentAttestations(ctx, dataCommitments) //nolint:errcheck - // queryClient := types.NewQueryClient(orchestratorClient.celesGRPC) - - // resp, err := queryClient.Params(ctx, &types.QueryParamsRequest{}) - // if err != nil { - // return nil, err - // } - - // params := resp.Params - nonces := make([]uint64, 10000) + // TODO retry + latestNonce, err := oc.querier.QueryLatestAttestationNonce(ctx) + if err != nil { + oc.logger.Error(err.Error()) + } + if latestNonce == 0 { + latestNonce++ + } + go func() { defer close(dataCommitments) @@ -194,22 +190,17 @@ func (oc *orchestratorClient) SubscribeDataCommitment(ctx context.Context) (<-ch case <-ctx.Done(): return default: - latestDCNonce, err := oc.querier.QueryLatestDataCommitmentNonce(ctx) - if err != nil { - oc.logger.Error(err.Error()) - time.Sleep(5 * time.Second) - continue - } - // query data commitment request - dc, err := oc.querier.QueryDataCommitmentByNonce(ctx, latestDCNonce) + dc, err := oc.querier.QueryDataCommitmentByNonce(ctx, latestNonce) if err != nil { - oc.logger.Error(err.Error()) - time.Sleep(5 * time.Second) + if errors.Is(err, types.ErrAttestationNotDataCommitmentRequest) { + latestNonce++ + } + time.Sleep(1 * time.Second) continue } if dc == nil { - time.Sleep(5 * time.Second) + time.Sleep(1 * time.Second) continue } @@ -217,11 +208,11 @@ func (oc *orchestratorClient) SubscribeDataCommitment(ctx context.Context) (<-ch signed, err := oc.querier.QueryDataCommitmentConfirm(ctx, dc.EndBlock, dc.BeginBlock, oc.orchestratorAddress) if err != nil { oc.logger.Error(err.Error()) - time.Sleep(5 * time.Second) + time.Sleep(1 * time.Second) continue } if signed != nil { - time.Sleep(5 * time.Second) + time.Sleep(1 * time.Second) continue } @@ -235,6 +226,7 @@ func (oc *orchestratorClient) SubscribeDataCommitment(ctx context.Context) (<-ch ) if err != nil { oc.logger.Error(err.Error()) + time.Sleep(1 * time.Second) continue } if !contains(nonces, dc.Nonce) { @@ -245,6 +237,7 @@ func (oc *orchestratorClient) SubscribeDataCommitment(ctx context.Context) (<-ch nonces = append(nonces, dc.Nonce) } time.Sleep(5 * time.Second) + latestNonce++ } } }() @@ -264,22 +257,26 @@ func (oc *orchestratorClient) addOldDataCommitmentAttestations( return } - latestDCNonce, err := oc.querier.QueryLatestDataCommitmentNonce(ctx) + latestNonce, err := oc.querier.QueryLatestAttestationNonce(ctx) if err != nil { oc.logger.Error(err.Error()) return } - for n := uint64(0); n <= latestDCNonce; n++ { + n := uint64(0) + for n <= latestNonce { // To start signing from new to old - nonce := latestDCNonce - n + nonce := latestNonce - n // query data commitment request dc, err := oc.querier.QueryDataCommitmentByNonce(ctx, nonce) if err != nil { - oc.logger.Error(err.Error()) - return + if !errors.Is(err, types.ErrAttestationNotDataCommitmentRequest) { + oc.logger.Error(fmt.Sprintf("dc nonce %d: %s", nonce, err.Error())) + } + n++ + continue } if dc == nil { return @@ -293,6 +290,7 @@ func (oc *orchestratorClient) addOldDataCommitmentAttestations( ) if err != nil { oc.logger.Error(err.Error()) + time.Sleep(1 * time.Second) continue } @@ -302,6 +300,8 @@ func (oc *orchestratorClient) addOldDataCommitmentAttestations( } if existingConfirm != nil { // In case we have holes in the signatures + n++ + time.Sleep(1 * time.Second) continue } @@ -314,6 +314,7 @@ func (oc *orchestratorClient) addOldDataCommitmentAttestations( ) if err != nil { oc.logger.Error(err.Error()) + time.Sleep(1 * time.Second) continue } @@ -321,5 +322,6 @@ func (oc *orchestratorClient) addOldDataCommitmentAttestations( Commitment: previousCommitment.DataCommitment, Data: *dc, } + n++ } } diff --git a/x/qgb/orchestrator/orchestrator_command.go b/x/qgb/orchestrator/orchestrator_command.go index 870c0d4aef..33c8fbcdff 100644 --- a/x/qgb/orchestrator/orchestrator_command.go +++ b/x/qgb/orchestrator/orchestrator_command.go @@ -2,6 +2,8 @@ package orchestrator import ( "context" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + "github.com/ethereum/go-ethereum/crypto" "os" "strings" "sync" @@ -41,7 +43,7 @@ func OrchestratorCmd() *cobra.Command { config.celestiaChainID, ) - querier, err := NewQuerier(config.celesGRPC, config.tendermintRPC, logger) + querier, err := NewQuerier(config.celesGRPC, config.tendermintRPC, logger, MakeEncodingConfig()) if err != nil { return err } @@ -61,11 +63,17 @@ func OrchestratorCmd() *cobra.Command { return nil } + orchEthAddr, err := stakingtypes.NewEthAddress(crypto.PubkeyToAddress(config.privateKey.PublicKey).Hex()) + if err != nil { + return err + } + orch := orchestrator{ broadcaster: broadcaster, evmPrivateKey: *config.privateKey, bridgeID: types.BridgeId, - orchestratorAddress: signer.GetSignerInfo().GetAddress().String(), + orchestratorAddress: signer.GetSignerInfo().GetAddress(), + orchEthAddress: *orchEthAddr, logger: logger, } diff --git a/x/qgb/orchestrator/querier.go b/x/qgb/orchestrator/querier.go index f91a7f9cee..234e0aa175 100644 --- a/x/qgb/orchestrator/querier.go +++ b/x/qgb/orchestrator/querier.go @@ -2,8 +2,10 @@ package orchestrator import ( "context" - "errors" "fmt" + cdctypes "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/tendermint/spm/cosmoscmd" "time" "github.com/tendermint/tendermint/rpc/client/http" @@ -16,9 +18,14 @@ import ( var _ Querier = &querier{} type Querier interface { - QueryLatestDataCommitmentNonce(ctx context.Context) (uint64, error) - QueryLastDataCommitments(ctx context.Context) ([]types.DataCommitment, error) + // attestation queries + QueryAttestationByNonce(ctx context.Context, nonce uint64) (types.AttestationRequestI, error) + QueryLatestAttestationNonce(ctx context.Context) (uint64, error) + + // data commitment queries QueryDataCommitmentByNonce(ctx context.Context, nonce uint64) (*types.DataCommitment, error) + + // data commitment confirm queries QueryDataCommitmentConfirms(ctx context.Context, commit string) ([]types.MsgDataCommitmentConfirm, error) QueryDataCommitmentConfirm( ctx context.Context, @@ -26,40 +33,50 @@ type Querier interface { beginBlock uint64, address string, ) (*types.MsgDataCommitmentConfirm, error) - QueryLastValset(ctx context.Context) (types.Valset, error) + QueryDataCommitmentConfirmsByExactRange( + ctx context.Context, + start uint64, + end uint64, + ) ([]types.MsgDataCommitmentConfirm, error) QueryTwoThirdsDataCommitmentConfirms( ctx context.Context, timeout time.Duration, - dc ExtendedDataCommitment, + dc types.DataCommitment, ) ([]types.MsgDataCommitmentConfirm, error) + + // valset queries + QueryValsetByNonce(ctx context.Context, nonce uint64) (*types.Valset, error) + QueryLatestValset(ctx context.Context) (*types.Valset, error) + QueryLastValsetBeforeNonce( + ctx context.Context, + nonce uint64, + ) (*types.Valset, error) + + // valset confirm queries QueryTwoThirdsValsetConfirms( ctx context.Context, timeout time.Duration, valset types.Valset, ) ([]types.MsgValsetConfirm, error) - QueryLastValsets(ctx context.Context) ([]types.Valset, error) QueryValsetConfirm(ctx context.Context, nonce uint64, address string) (*types.MsgValsetConfirm, error) - QueryValsetByNonce(ctx context.Context, nonce uint64) (*types.Valset, error) - QueryLastUnbondingHeight(ctx context.Context) (uint64, error) + + // misc queries QueryHeight(ctx context.Context) (uint64, error) - QueryLastValsetBeforeHeight( - ctx context.Context, - height uint64, - ) (*types.Valset, error) - QueryDataCommitmentConfirmsByExactRange( - ctx context.Context, - start uint64, - end uint64, - ) ([]types.MsgDataCommitmentConfirm, error) + QueryLastUnbondingHeight(ctx context.Context) (uint64, error) } type querier struct { qgbRPC *grpc.ClientConn logger tmlog.Logger tendermintRPC *http.HTTP + encCfg cosmoscmd.EncodingConfig } -func NewQuerier(qgbRPCAddr, tendermintRPC string, logger tmlog.Logger) (*querier, error) { +func NewQuerier( + qgbRPCAddr, tendermintRPC string, + logger tmlog.Logger, + encCft cosmoscmd.EncodingConfig, +) (*querier, error) { qgbGRPC, err := grpc.Dial(qgbRPCAddr, grpc.WithInsecure()) if err != nil { return nil, err @@ -78,10 +95,11 @@ func NewQuerier(qgbRPCAddr, tendermintRPC string, logger tmlog.Logger) (*querier qgbRPC: qgbGRPC, logger: logger, tendermintRPC: trpc, + encCfg: encCft, }, nil } -// TODO add the other stop methods for other clients +// TODO add the other stop methods for other clients. func (q *querier) Stop() { err := q.qgbRPC.Close() if err != nil { @@ -115,9 +133,9 @@ func (q *querier) QueryDataCommitmentConfirms( func (q *querier) QueryTwoThirdsDataCommitmentConfirms( ctx context.Context, timeout time.Duration, - dc ExtendedDataCommitment, + dc types.DataCommitment, ) ([]types.MsgDataCommitmentConfirm, error) { - valset, err := q.QueryLastValsetBeforeHeight(ctx, dc.Data.EndBlock) + valset, err := q.QueryLastValsetBeforeNonce(ctx, dc.Nonce) if err != nil { return nil, err } @@ -135,10 +153,13 @@ func (q *querier) QueryTwoThirdsDataCommitmentConfirms( case <-ctx.Done(): return nil, nil case <-time.After(timeout): - return nil, fmt.Errorf("failure to query for majority validator set confirms: timout %s", timeout) + return nil, errors.Wrap( + ErrNotEnoughDataCommitmentConfirms, + fmt.Sprintf("failure to query for majority validator set confirms: timout %s", timeout), + ) default: currThreshHold := uint64(0) - confirms, err := q.QueryDataCommitmentConfirmsByExactRange(ctx, dc.Data.BeginBlock, dc.Data.EndBlock) + confirms, err := q.QueryDataCommitmentConfirmsByExactRange(ctx, dc.BeginBlock, dc.EndBlock) if err != nil { return nil, err } @@ -148,7 +169,7 @@ func (q *querier) QueryTwoThirdsDataCommitmentConfirms( val, has := vals[dataCommitmentConfirm.EthAddress] if !has { // currently, the orchestrators sign everything even if they didn't exist during a certain valset - // thus, the relayer finds correct confirms and also incorrect ones. By incorrect, I mean signatures from + // thus, the Relayer finds correct confirms and also incorrect ones. By incorrect, I mean signatures from // orchestrators that didn't belong to the valset in question, but they still signed it // as part of their catching up mechanism. // should be fixed with the new design and https://github.com/celestiaorg/celestia-app/issues/406 @@ -188,7 +209,7 @@ func (q *querier) QueryTwoThirdsValsetConfirms( if valset.Nonce == 1 { currentValset = valset } else { - vs, err := q.QueryValsetByNonce(ctx, valset.Nonce-1) + vs, err := q.QueryLastValsetBeforeNonce(ctx, valset.Nonce) if err != nil { return nil, err } @@ -208,7 +229,10 @@ func (q *querier) QueryTwoThirdsValsetConfirms( return nil, nil // TODO: remove this extra case, and we can instead rely on the caller to pass a context with a timeout case <-time.After(timeout): - return nil, fmt.Errorf("failure to query for majority validator set confirms: timout %s", timeout) + return nil, errors.Wrap( + ErrNotEnoughValsetConfirms, + fmt.Sprintf("failure to query for majority validator set confirms: timout %s", timeout), + ) default: currThreshHold := uint64(0) queryClient := types.NewQueryClient(q.qgbRPC) @@ -224,7 +248,7 @@ func (q *querier) QueryTwoThirdsValsetConfirms( val, has := vals[valsetConfirm.EthAddress] if !has { // currently, the orchestrators sign everything even if they didn't exist during a certain valset - // thus, the relayer finds correct confirms and also incorrect ones. By incorrect, I mean signatures from + // thus, the Relayer finds correct confirms and also incorrect ones. By incorrect, I mean signatures from // orchestrators that didn't belong to the valset in question, but they still signed it // as part of their catching up mechanism. // should be fixed with the new design. and https://github.com/celestiaorg/celestia-app/issues/406 @@ -257,46 +281,20 @@ func (q *querier) QueryTwoThirdsValsetConfirms( } } -// QueryLastValset TODO change name to reflect the functionality correctly -// TODO make this return a pointer -func (q *querier) QueryLastValset(ctx context.Context) (types.Valset, error) { - queryClient := types.NewQueryClient(q.qgbRPC) - lastValsetResp, err := queryClient.LastValsetRequests(ctx, &types.QueryLastValsetRequestsRequest{}) - if err != nil { - return types.Valset{}, err - } - - if len(lastValsetResp.Valsets) == 1 { - // genesis case - return lastValsetResp.Valsets[0], nil - } - - if len(lastValsetResp.Valsets) < 2 { - return types.Valset{}, errors.New("no validator sets found") - } - - valset := lastValsetResp.Valsets[1] - return valset, nil -} - -func (q *querier) QueryLastValsets(ctx context.Context) ([]types.Valset, error) { - queryClient := types.NewQueryClient(q.qgbRPC) - lastValsetResp, err := queryClient.LastValsetRequests(ctx, &types.QueryLastValsetRequestsRequest{}) - if err != nil { - return nil, err - } - - return lastValsetResp.Valsets, nil -} - -func (q *querier) QueryValsetByNonce(ctx context.Context, nonce uint64) (*types.Valset, error) { +// QueryLastValsetBeforeNonce returns the last valset before nonce. +// the provided `nonce` can be a valset, but this will return the valset before it. +// If nonce is 1, it will return an error. Because, there is no valset before nonce 1. +func (q *querier) QueryLastValsetBeforeNonce(ctx context.Context, nonce uint64) (*types.Valset, error) { queryClient := types.NewQueryClient(q.qgbRPC) - lastValsetResp, err := queryClient.ValsetRequestByNonce(ctx, &types.QueryValsetRequestByNonceRequest{Nonce: nonce}) + resp, err := queryClient.LastValsetRequestBeforeNonce( + ctx, + &types.QueryLastValsetRequestBeforeNonceRequest{Nonce: nonce}, + ) if err != nil { return nil, err } - return lastValsetResp.Valset, nil + return resp.Valset, nil } func (q *querier) QueryValsetConfirm( @@ -305,6 +303,8 @@ func (q *querier) QueryValsetConfirm( address string, ) (*types.MsgValsetConfirm, error) { queryClient := types.NewQueryClient(q.qgbRPC) + // FIXME this is not always a valset confirm (the nonce can be of a data commitment) + // and might return an empty list. Should we worry? resp, err := queryClient.ValsetConfirm(ctx, &types.QueryValsetConfirmRequest{Nonce: nonce, Address: address}) if err != nil { return nil, err @@ -313,23 +313,6 @@ func (q *querier) QueryValsetConfirm( return resp.Confirm, nil } -func (q *querier) QueryLastValsetBeforeHeight( - ctx context.Context, - height uint64, -) (*types.Valset, error) { - queryClient := types.NewQueryClient(q.qgbRPC) - lastValsetResp, err := queryClient.LastValsetBeforeHeight( - ctx, - &types.QueryLastValsetBeforeHeightRequest{ - Height: height, - }, - ) - if err != nil { - return nil, err - } - return lastValsetResp.Valset, nil -} - func (q *querier) QueryHeight(ctx context.Context) (uint64, error) { resp, err := q.tendermintRPC.Status(ctx) if err != nil { @@ -392,43 +375,102 @@ func (q *querier) QueryDataCommitmentConfirmsByExactRange( } func (q *querier) QueryDataCommitmentByNonce(ctx context.Context, nonce uint64) (*types.DataCommitment, error) { - queryClient := types.NewQueryClient(q.qgbRPC) + attestation, err := q.QueryAttestationByNonce(ctx, nonce) + if err != nil { + return nil, err + } + + if attestation.Type() != types.DataCommitmentRequestType { + return nil, types.ErrAttestationNotDataCommitmentRequest + } + + dcc, ok := attestation.(*types.DataCommitment) + if !ok { + return nil, types.ErrAttestationNotDataCommitmentRequest + } - dc, err := queryClient.DataCommitmentRequestByNonce( + return dcc, nil +} + +func (q *querier) QueryAttestationByNonce( + ctx context.Context, + nonce uint64, +) (types.AttestationRequestI, error) { // FIXME is it alright to return interface? + queryClient := types.NewQueryClient(q.qgbRPC) + atResp, err := queryClient.AttestationRequestByNonce( ctx, - &types.QueryDataCommitmentRequestByNonceRequest{Nonce: nonce}, + &types.QueryAttestationRequestByNonceRequest{Nonce: nonce}, ) if err != nil { return nil, err } + if atResp.Attestation == nil { + return nil, types.ErrAttestationNotFound + } + + unmarshalledAttestation, err := q.unmarshallAttestation(atResp.Attestation) + if err != nil { + return nil, err + } - return dc.Commitment, nil + return unmarshalledAttestation, nil } -func (q *querier) QueryLastDataCommitments(ctx context.Context) ([]types.DataCommitment, error) { - queryClient := types.NewQueryClient(q.qgbRPC) +func (q *querier) QueryValsetByNonce(ctx context.Context, nonce uint64) (*types.Valset, error) { + attestation, err := q.QueryAttestationByNonce(ctx, nonce) + if err != nil { + return nil, err + } - dcs, err := queryClient.LastDataCommitmentRequests( - ctx, - &types.QueryLastDataCommitmentRequestsRequest{}, - ) + if attestation.Type() != types.ValsetRequestType { + return nil, types.ErrAttestationNotValsetRequest + } + + value, ok := attestation.(*types.Valset) + if !ok { + return nil, ErrUnmarshallValset + } + + return value, nil +} + +func (q *querier) QueryLatestValset(ctx context.Context) (*types.Valset, error) { + latestNonce, err := q.QueryLatestAttestationNonce(ctx) if err != nil { return nil, err } - return dcs.Commitments, nil + var latestValset *types.Valset + if vs, err := q.QueryValsetByNonce(ctx, latestNonce); err == nil { + latestValset = vs + } else { + latestValset, err = q.QueryLastValsetBeforeNonce(ctx, latestNonce) + if err != nil { + return nil, err + } + } + return latestValset, nil } -func (q *querier) QueryLatestDataCommitmentNonce(ctx context.Context) (uint64, error) { +func (q *querier) QueryLatestAttestationNonce(ctx context.Context) (uint64, error) { queryClient := types.NewQueryClient(q.qgbRPC) - dc, err := queryClient.LatestDataCommitmentNonce( + resp, err := queryClient.LatestAttestationNonce( ctx, - &types.QueryLatestDataCommitmentNonceRequest{}, + &types.QueryLatestAttestationNonceRequest{}, ) if err != nil { return 0, err } - return dc.Nonce, nil + return resp.Nonce, nil +} + +func (q *querier) unmarshallAttestation(attestation *cdctypes.Any) (types.AttestationRequestI, error) { + var unmarshalledAttestation types.AttestationRequestI + err := q.encCfg.InterfaceRegistry.UnpackAny(attestation, &unmarshalledAttestation) + if err != nil { + return nil, err + } + return unmarshalledAttestation, nil } diff --git a/x/qgb/orchestrator/relayer.go b/x/qgb/orchestrator/relayer.go index 882aa56607..b3da67796c 100644 --- a/x/qgb/orchestrator/relayer.go +++ b/x/qgb/orchestrator/relayer.go @@ -3,96 +3,125 @@ package orchestrator import ( "context" "fmt" + "github.com/cosmos/cosmos-sdk/types/errors" + tmlog "github.com/tendermint/tendermint/libs/log" "time" "github.com/celestiaorg/celestia-app/x/qgb/types" - wrapper "github.com/celestiaorg/quantum-gravity-bridge/ethereum/solidity/wrappers/QuantumGravityBridge.sol" + wrapper "github.com/celestiaorg/quantum-gravity-bridge/wrappers/QuantumGravityBridge.sol" "github.com/ethereum/go-ethereum/accounts/abi/bind" ethcmn "github.com/ethereum/go-ethereum/common" ) -type relayer struct { - // client - querier Querier - - // relayer - bridgeID ethcmn.Hash +type Relayer struct { + querier Querier evmClient EVMClient + bridgeID ethcmn.Hash + logger tmlog.Logger } -func NewRelayer(querier Querier, evmClient EVMClient) (*relayer, error) { - return &relayer{ +func NewRelayer(querier Querier, evmClient EVMClient, logger tmlog.Logger) (*Relayer, error) { + return &Relayer{ querier: querier, bridgeID: types.BridgeId, evmClient: evmClient, + logger: logger, }, nil } -func (r *relayer) processValsetEvents(ctx context.Context, valSetChannel <-chan types.Valset) error { - for valset := range valSetChannel { - - confirms, err := r.querier.QueryTwoThirdsValsetConfirms(ctx, time.Minute*30, valset) +func (r *Relayer) processEvents(ctx context.Context) error { + for { + lastContractNonce, err := r.evmClient.StateLastEventNonce(&bind.CallOpts{}) if err != nil { - return err + r.logger.Error(err.Error()) + continue } - // FIXME: arguments to be verified - err = r.updateValidatorSet(ctx, valset, valset.TwoThirdsThreshold(), confirms) + latestNonce, err := r.querier.QueryLatestAttestationNonce(ctx) if err != nil { - return err + r.logger.Error(err.Error()) + continue } - } - return nil -} - -func (r *relayer) processDataCommitmentEvents( - ctx context.Context, - dataCommitmentChannel <-chan ExtendedDataCommitment, -) error { - for dc := range dataCommitmentChannel { - // todo: make times configurable - confirms, err := r.querier.QueryTwoThirdsDataCommitmentConfirms(ctx, time.Minute*30, dc) - if err != nil { - return err + // If the contract has already the last version, no need to relay anything + if lastContractNonce >= latestNonce { + time.Sleep(10 * time.Second) + continue } - // todo: make gas limit configurable - valset, err := r.querier.QueryLastValsetBeforeHeight(ctx, dc.Data.EndBlock) + att, err := r.querier.QueryAttestationByNonce(ctx, lastContractNonce+1) if err != nil { - return err + r.logger.Error(err.Error()) + continue } - - err = r.submitDataRootTupleRoot(ctx, *valset, dc.Commitment.String(), confirms) - if err != nil { - return err + if att.Type() == types.ValsetRequestType { + vs, ok := att.(*types.Valset) + if !ok { + return types.ErrAttestationNotValsetRequest + } + confirms, err := r.querier.QueryTwoThirdsValsetConfirms(ctx, time.Minute*30, *vs) + if err != nil { + return err + } + + // FIXME: arguments to be verified + err = r.updateValidatorSet(ctx, *vs, vs.TwoThirdsThreshold(), confirms) + if err != nil { + return err + } + } else { + dc, ok := att.(*types.DataCommitment) + if !ok { + return types.ErrAttestationNotDataCommitmentRequest + } + // todo: make times configurable + confirms, err := r.querier.QueryTwoThirdsDataCommitmentConfirms(ctx, time.Minute*30, *dc) + if err != nil { + return err + } + + // todo: make gas limit configurable + valset, err := r.querier.QueryLastValsetBeforeNonce(ctx, dc.Nonce) + if err != nil { + return err + } + + err = r.submitDataRootTupleRoot(ctx, *valset, confirms[0].Commitment, confirms) + if err != nil { + return err + } } } - return nil } -func (r *relayer) updateValidatorSet( +func (r *Relayer) updateValidatorSet( ctx context.Context, valset types.Valset, newThreshhold uint64, confirms []types.MsgValsetConfirm, ) error { - sigs, err := matchValsetConfirmSigs(confirms) - if err != nil { - return err - } - var currentValset types.Valset if valset.Nonce == 1 { currentValset = valset } else { - vs, err := r.querier.QueryValsetByNonce(ctx, valset.Nonce-1) + vs, err := r.querier.QueryLastValsetBeforeNonce(ctx, valset.Nonce) if err != nil { return err } currentValset = *vs } + sigsMap := make(map[string]string) + // to fetch the signatures easilly by eth address + for _, c := range confirms { + sigsMap[c.EthAddress] = c.Signature + } + + sigs, err := matchAttestationConfirmSigs(sigsMap, currentValset) + if err != nil { + return err + } + err = r.evmClient.UpdateValidatorSet( ctx, valset.Nonce, @@ -107,26 +136,31 @@ func (r *relayer) updateValidatorSet( return nil } -func (r *relayer) submitDataRootTupleRoot( +func (r *Relayer) submitDataRootTupleRoot( ctx context.Context, currentValset types.Valset, commitment string, confirms []types.MsgDataCommitmentConfirm, ) error { - - sigs, err := matchDataCommitmentConfirmSigs(confirms) - if err != nil { - return err + sigsMap := make(map[string]string) + // to fetch the signatures easilly by eth address + for _, c := range confirms { + sigsMap[c.EthAddress] = c.Signature } - // TODO: don't assume that the evm contracts are up to date with the latest nonce - lastDataCommitmentNonce, err := r.evmClient.StateLastDataRootTupleRootNonce(&bind.CallOpts{}) + sigs, err := matchAttestationConfirmSigs(sigsMap, currentValset) if err != nil { return err } - // increment the nonce before submitting the new tuple root - newDataCommitmentNonce := lastDataCommitmentNonce + 1 + // the confirm carries the correct nonce to be submitted + newDataCommitmentNonce := confirms[0].Nonce + + r.logger.Info(fmt.Sprintf( + "relaying data commitment %d-%d...", + confirms[0].BeginBlock, + confirms[0].EndBlock, + )) err = r.evmClient.SubmitDataRootTupleRoot( ctx, @@ -141,19 +175,22 @@ func (r *relayer) submitDataRootTupleRoot( return nil } -func matchValsetConfirmSigs(confirms []types.MsgValsetConfirm) ([]wrapper.Signature, error) { - vals := make(map[string]string) - for _, v := range confirms { - vals[v.EthAddress] = v.Signature - } - - sigs := make([]wrapper.Signature, len(confirms)) - for i, c := range confirms { - sig, has := vals[c.EthAddress] +// matchAttestationConfirmSigs matches and sorts the confirm signatures with the valset +// members as expected by the QGB contract. +func matchAttestationConfirmSigs( + signatures map[string]string, + currentValset types.Valset, +) ([]wrapper.Signature, error) { + sigs := make([]wrapper.Signature, len(signatures)) + // the QGB contract expects the signatures to be ordered by validators in valset + for i, val := range currentValset.Members { + sig, has := signatures[val.EthereumAddress] if !has { - return nil, fmt.Errorf("missing orchestrator eth address: %s", c.EthAddress) + return nil, errors.Wrap( + ErrConfirmSignatureNotFound, + fmt.Sprintf("missing signature for orchestrator eth address: %s", val.EthereumAddress), + ) } - v, r, s := SigToVRS(sig) sigs[i] = wrapper.Signature{ @@ -162,29 +199,6 @@ func matchValsetConfirmSigs(confirms []types.MsgValsetConfirm) ([]wrapper.Signat S: s, } } - return sigs, nil -} - -func matchDataCommitmentConfirmSigs(confirms []types.MsgDataCommitmentConfirm) ([]wrapper.Signature, error) { - vals := make(map[string]string) - for _, v := range confirms { - vals[v.EthAddress] = v.Signature - } - - sigs := make([]wrapper.Signature, len(confirms)) - for i, c := range confirms { - sig, has := vals[c.EthAddress] - if !has { - return nil, fmt.Errorf("missing orchestrator eth address: %s", c.EthAddress) - } - - v, r, s := SigToVRS(sig) - sigs[i] = wrapper.Signature{ - V: v, - R: r, - S: s, - } - } return sigs, nil } diff --git a/x/qgb/orchestrator/relayer_client.go b/x/qgb/orchestrator/relayer_client.go deleted file mode 100644 index 4554dd86c2..0000000000 --- a/x/qgb/orchestrator/relayer_client.go +++ /dev/null @@ -1,173 +0,0 @@ -package orchestrator - -import ( - "context" - "fmt" - "sync" - "time" - - "github.com/ethereum/go-ethereum/accounts/abi/bind" - - "github.com/celestiaorg/celestia-app/x/qgb/types" - tmlog "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/rpc/client/http" -) - -var _ AppClient = &relayerClient{} - -type relayerClient struct { - tendermintRPC *http.HTTP - logger tmlog.Logger - querier Querier - mutex *sync.Mutex // TODO check if we need the mutex here - evmClient EVMClient -} - -func NewRelayerClient( - logger tmlog.Logger, - tendermintRPC string, - querier Querier, - evmClient EVMClient, -) (AppClient, error) { - trpc, err := http.New(tendermintRPC, "/websocket") - if err != nil { - return nil, err - } - err = trpc.Start() - if err != nil { - return nil, err - } - - return &relayerClient{ - tendermintRPC: trpc, - logger: logger, - querier: querier, - mutex: &sync.Mutex{}, - evmClient: evmClient, - }, nil -} - -func (oc *relayerClient) SubscribeValset(ctx context.Context) (<-chan types.Valset, error) { - valsetsChan := make(chan types.Valset, 10) - - go func() { - defer close(valsetsChan) - for { - select { - case <-ctx.Done(): - return - default: - lastContractNonce, err := oc.evmClient.StateLastValsetNonce(&bind.CallOpts{}) - if err != nil { - oc.logger.Error(err.Error()) - continue - } - valsets, err := oc.querier.QueryLastValsets(ctx) - if err != nil { - oc.logger.Error(err.Error()) - continue - } - - // todo: double check that the first validator set is found - if len(valsets) < 1 { - oc.logger.Error("no validator sets found") - continue - } - - valset := valsets[0] - - // If the contract has already the last version, no need to relay anything - if lastContractNonce >= valset.Nonce { - time.Sleep(10 * time.Second) - continue - } - - // we're incrementing by 1 since we still don't support heights - // instead of nonce: https://github.com/celestiaorg/quantum-gravity-bridge/issues/104 - newVs, err := oc.querier.QueryValsetByNonce(ctx, lastContractNonce+1) - if err != nil { - oc.logger.Error(err.Error()) - continue - } - valsetsChan <- *newVs - // Give some time for newVs to be committed before we continue - // This will change with the worker pool design pattern we will adopt - time.Sleep(10 * time.Second) - } - } - }() - - return valsetsChan, nil -} - -func (oc *relayerClient) SubscribeDataCommitment(ctx context.Context) (<-chan ExtendedDataCommitment, error) { - dataCommitments := make(chan ExtendedDataCommitment) - - go func() { - defer close(dataCommitments) - - for { - select { - case <-ctx.Done(): - return - default: - lastContractNonce, err := oc.evmClient.StateLastDataRootTupleRootNonce(&bind.CallOpts{}) - if err != nil { - oc.logger.Error(err.Error()) - continue - } - - latestDCNonce, err := oc.querier.QueryLatestDataCommitmentNonce(ctx) - if err != nil { - oc.logger.Error(err.Error()) - time.Sleep(5 * time.Second) - continue - } - - // If we're at the latest nonce, we sleep - if lastContractNonce >= latestDCNonce { - time.Sleep(10 * time.Second) - continue - } - - // query data commitment request - dc, err := oc.querier.QueryDataCommitmentByNonce(ctx, lastContractNonce+1) - if err != nil { - oc.logger.Error(err.Error()) - time.Sleep(5 * time.Second) - continue - } - if dc == nil { - time.Sleep(5 * time.Second) - continue - } - - // create and send the data commitment - dcResp, err := oc.tendermintRPC.DataCommitment( - ctx, - fmt.Sprintf("block.height >= %d AND block.height <= %d", - dc.BeginBlock, - dc.EndBlock, - ), - ) - if err != nil { - oc.logger.Error(err.Error()) - continue - } - - dataCommitments <- ExtendedDataCommitment{ - Commitment: dcResp.DataCommitment, - Data: *types.NewDataCommitment( - dc.Nonce, - dc.BeginBlock, - dc.EndBlock, - ), - } - time.Sleep(10 * time.Second) - } - } - - }() - - return dataCommitments, nil -} diff --git a/x/qgb/orchestrator/relayer_command.go b/x/qgb/orchestrator/relayer_command.go index c828505f14..5e1f82bbd0 100644 --- a/x/qgb/orchestrator/relayer_command.go +++ b/x/qgb/orchestrator/relayer_command.go @@ -1,12 +1,11 @@ package orchestrator import ( - "fmt" "os" "sync" "time" - wrapper "github.com/celestiaorg/quantum-gravity-bridge/ethereum/solidity/wrappers/QuantumGravityBridge.sol" + wrapper "github.com/celestiaorg/quantum-gravity-bridge/wrappers/QuantumGravityBridge.sol" "github.com/ethereum/go-ethereum/ethclient" tmlog "github.com/tendermint/tendermint/libs/log" @@ -33,22 +32,7 @@ func RelayerCmd() *cobra.Command { return err } - querier, err := NewQuerier(config.celesGRPC, config.tendermintRPC, logger) - if err != nil { - return err - } - - client, err := NewRelayerClient( - logger, - config.tendermintRPC, - querier, - NewEvmClient( - tmlog.NewTMLogger(os.Stdout), - *qgbWrapper, - config.privateKey, - config.evmRPC, - ), - ) + querier, err := NewQuerier(config.celesGRPC, config.tendermintRPC, logger, MakeEncodingConfig()) if err != nil { return err } @@ -61,6 +45,7 @@ func RelayerCmd() *cobra.Command { config.privateKey, config.evmRPC, ), + logger, ) if err != nil { return err @@ -76,39 +61,7 @@ func RelayerCmd() *cobra.Command { case <-cmd.Context().Done(): return default: - valsetChan, err := client.SubscribeValset(cmd.Context()) - if err != nil { - // TODO is this the correct way ? - logger.Error(err.Error()) - return - } - err = relay.processValsetEvents(cmd.Context(), valsetChan) - if err != nil { - logger.Error(err.Error()) - time.Sleep(time.Second * 30) - continue - } - return - } - } - - }() - - wg.Add(1) - go func() { - defer wg.Done() - for { - select { - case <-cmd.Context().Done(): - return - default: - dcChan, err := client.SubscribeDataCommitment(cmd.Context()) - if err != nil { - // TODO is this the correct way ? - fmt.Println(err.Error()) - return - } - err = relay.processDataCommitmentEvents(cmd.Context(), dcChan) + err = relay.processEvents(cmd.Context()) if err != nil { logger.Error(err.Error()) time.Sleep(time.Second * 30) diff --git a/x/qgb/orchestrator/test/contract_interaction_test.go b/x/qgb/orchestrator/test/contract_interaction_test.go index 7663aed006..50b94f7608 100644 --- a/x/qgb/orchestrator/test/contract_interaction_test.go +++ b/x/qgb/orchestrator/test/contract_interaction_test.go @@ -5,10 +5,10 @@ import ( "math/big" "testing" + "github.com/celestiaorg/celestia-app/x/qgb/keeper/keystore" "github.com/celestiaorg/celestia-app/x/qgb/orchestrator" "github.com/celestiaorg/celestia-app/x/qgb/types" - wrapper "github.com/celestiaorg/quantum-gravity-bridge/ethereum/solidity/wrappers/QuantumGravityBridge.sol" - "github.com/celestiaorg/quantum-gravity-bridge/orchestrator/ethereum/keystore" + wrapper "github.com/celestiaorg/quantum-gravity-bridge/wrappers/QuantumGravityBridge.sol" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/accounts/abi/bind/backends" ethcmn "github.com/ethereum/go-ethereum/common" @@ -82,6 +82,7 @@ func (s *QGBTestSuite) SetupTest() { s.auth, s.sim, bID, + big.NewInt(int64(initialValSet.Nonce)), big.NewInt(int64(initialValSet.TwoThirdsThreshold())), vsHash, ) @@ -120,6 +121,7 @@ func (s *QGBTestSuite) TestSubmitDataCommitment() { tx, err := s.wrapper.SubmitDataRootTupleRoot( s.auth, big.NewInt(1), + big.NewInt(0), // TODO get this from the setup commitment, ethVals, []wrapper.Signature{ @@ -137,7 +139,7 @@ func (s *QGBTestSuite) TestSubmitDataCommitment() { s.NoError(err) s.Assert().Equal(uint64(1), recp.Status) - dcNonce, err := s.wrapper.StateLastDataRootTupleRootNonce(nil) + dcNonce, err := s.wrapper.StateEventNonce(nil) s.NoError(err) s.Assert().Equal(0, dcNonce.Cmp(big.NewInt(1))) } @@ -185,6 +187,7 @@ func (s *QGBTestSuite) TestUpdateValset() { tx, err := s.wrapper.UpdateValidatorSet( s.auth, big.NewInt(1), + big.NewInt(0), big.NewInt(int64(thresh)), newVsHash, ethVals, diff --git a/x/qgb/types/abi_consts.go b/x/qgb/types/abi_consts.go index 9a453bd78a..6d3c7f2bec 100644 --- a/x/qgb/types/abi_consts.go +++ b/x/qgb/types/abi_consts.go @@ -4,7 +4,7 @@ import ( "log" "strings" - wrapper "github.com/celestiaorg/quantum-gravity-bridge/ethereum/solidity/wrappers/QuantumGravityBridge.sol" + wrapper "github.com/celestiaorg/quantum-gravity-bridge/wrappers/QuantumGravityBridge.sol" "github.com/ethereum/go-ethereum/accounts/abi" ethcmn "github.com/ethereum/go-ethereum/common" ) diff --git a/x/qgb/types/attestation.go b/x/qgb/types/attestation.go new file mode 100644 index 0000000000..e9d2167fc1 --- /dev/null +++ b/x/qgb/types/attestation.go @@ -0,0 +1,23 @@ +package types + +import ( + "github.com/cosmos/cosmos-sdk/codec" + "github.com/gogo/protobuf/proto" +) + +type AttestationType int64 + +const ( + DataCommitmentRequestType AttestationType = iota + ValsetRequestType +) + +// AttestationRequestI is either a DataCommitment or a Valset. +// This was decided as part of the universal nonce approach under: +// https://github.com/celestiaorg/celestia-app/issues/468#issuecomment-1156887715 +type AttestationRequestI interface { + proto.Message + codec.ProtoMarshaler + Type() AttestationType + GetNonce() uint64 +} diff --git a/x/qgb/types/codec.go b/x/qgb/types/codec.go index 621137fe64..88981d01a9 100644 --- a/x/qgb/types/codec.go +++ b/x/qgb/types/codec.go @@ -2,10 +2,9 @@ package types import ( "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/types/msgservice" - cdctypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/msgservice" ) func RegisterCodec(cdc *codec.LegacyAmino) { @@ -15,10 +14,18 @@ func RegisterCodec(cdc *codec.LegacyAmino) { } func RegisterInterfaces(registry cdctypes.InterfaceRegistry) { - registry.RegisterImplementations((*sdk.Msg)(nil), + registry.RegisterImplementations( + (*sdk.Msg)(nil), &MsgDataCommitmentConfirm{}, &MsgValsetConfirm{}, ) + registry.RegisterInterface( + "AttestationRequestI", + (*AttestationRequestI)(nil), + &DataCommitment{}, + &Valset{}, + ) + msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) } diff --git a/x/qgb/types/data_commitment.go b/x/qgb/types/data_commitment.go index 517fd3a1db..bf31046945 100644 --- a/x/qgb/types/data_commitment.go +++ b/x/qgb/types/data_commitment.go @@ -1,5 +1,7 @@ package types +var _ AttestationRequestI = &DataCommitment{} + // NewDataCommitment creates a new DataCommitment func NewDataCommitment( nonce uint64, @@ -13,17 +15,6 @@ func NewDataCommitment( } } -// DataCommitments is a collection of DataCommitment -type DataCommitments []DataCommitment - -func (dc DataCommitments) Len() int { - return len(dc) -} - -func (dc DataCommitments) Less(i, j int) bool { - return dc[i].Nonce > dc[j].Nonce -} - -func (dc DataCommitments) Swap(i, j int) { - dc[i], dc[j] = dc[j], dc[i] +func (m *DataCommitment) Type() AttestationType { + return DataCommitmentRequestType } diff --git a/x/qgb/types/data_commitment_confirm.go b/x/qgb/types/data_commitment_confirm.go index 845b1da058..5db7c8881e 100644 --- a/x/qgb/types/data_commitment_confirm.go +++ b/x/qgb/types/data_commitment_confirm.go @@ -20,6 +20,7 @@ func NewMsgDataCommitmentConfirm( ethAddress stakingtypes.EthAddress, beginBlock uint64, endBlock uint64, + nonce uint64, ) *MsgDataCommitmentConfirm { return &MsgDataCommitmentConfirm{ Commitment: commitment, @@ -28,6 +29,7 @@ func NewMsgDataCommitmentConfirm( EthAddress: ethAddress.GetAddress(), BeginBlock: beginBlock, EndBlock: endBlock, + Nonce: nonce, } } diff --git a/x/qgb/types/data_commitment_confirm_test.go b/x/qgb/types/data_commitment_confirm_test.go index 550678cfa9..efbdda187c 100644 --- a/x/qgb/types/data_commitment_confirm_test.go +++ b/x/qgb/types/data_commitment_confirm_test.go @@ -1,8 +1,9 @@ -package types +package types_test import ( "bytes" "fmt" + "github.com/celestiaorg/celestia-app/x/qgb/types" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/stretchr/testify/assert" @@ -33,13 +34,14 @@ func TestValidateMsgDataCommitmentConfirm(t *testing.T) { for msg, spec := range specs { t.Run(msg, func(t *testing.T) { println(fmt.Sprintf("Spec is %v", msg)) - msg := NewMsgDataCommitmentConfirm( + msg := types.NewMsgDataCommitmentConfirm( "commitment", "signature", cosmosAddress, *ethAddress, spec.beginBlock, spec.endBlock, + 20, ) // when err := msg.ValidateBasic() diff --git a/x/qgb/types/errors.go b/x/qgb/types/errors.go index af156a9718..5faeb8f266 100644 --- a/x/qgb/types/errors.go +++ b/x/qgb/types/errors.go @@ -3,13 +3,18 @@ package types import sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" var ( - ErrInvalid = sdkerrors.Register(ModuleName, 3, "invalid") - ErrDuplicate = sdkerrors.Register(ModuleName, 2, "duplicate") - ErrUnknown = sdkerrors.Register(ModuleName, 5, "unknown") - ErrEmpty = sdkerrors.Register(ModuleName, 6, "empty") - ErrResetDelegateKeys = sdkerrors.Register(ModuleName, 10, "can not set orchestrator addresses more than once") - ErrNoValidators = sdkerrors.Register(ModuleName, 12, "no bonded validators in active set") - ErrInvalidValAddress = sdkerrors.Register(ModuleName, 13, "invalid validator address in current valset %v") - ErrInvalidEthAddress = sdkerrors.Register(ModuleName, 14, "discovered invalid eth address stored for validator %v") - ErrInvalidValset = sdkerrors.Register(ModuleName, 15, "generated invalid valset") + ErrInvalid = sdkerrors.Register(ModuleName, 3, "invalid") + ErrDuplicate = sdkerrors.Register(ModuleName, 2, "duplicate") + ErrUnknown = sdkerrors.Register(ModuleName, 5, "unknown") + ErrEmpty = sdkerrors.Register(ModuleName, 6, "empty") + ErrResetDelegateKeys = sdkerrors.Register(ModuleName, 10, "can not set orchestrator addresses more than once") + ErrNoValidators = sdkerrors.Register(ModuleName, 12, "no bonded validators in active set") + ErrInvalidValAddress = sdkerrors.Register(ModuleName, 13, "invalid validator address in current valset %v") + ErrInvalidEthAddress = sdkerrors.Register(ModuleName, 14, "discovered invalid eth address stored for validator %v") + ErrInvalidValset = sdkerrors.Register(ModuleName, 15, "generated invalid valset") + ErrAttestationNotValsetRequest = sdkerrors.Register(ModuleName, 16, "attestation is not a valset request") + ErrAttestationNotDataCommitmentRequest = sdkerrors.Register(ModuleName, 17, "attestation is not a data commitment request") + ErrAttestationNotFound = sdkerrors.Register(ModuleName, 18, "attestation not found") + ErrNilDataCommitmentRequest = sdkerrors.Register(ModuleName, 19, "data commitment cannot be nil when setting attestation") //nolint:lll + ErrNilValsetRequest = sdkerrors.Register(ModuleName, 20, "valset cannot be nil when setting attestation") ) diff --git a/x/qgb/types/ethereum_signer_test.go b/x/qgb/types/ethereum_signer_test.go index b904a39663..722689e70d 100644 --- a/x/qgb/types/ethereum_signer_test.go +++ b/x/qgb/types/ethereum_signer_test.go @@ -1,7 +1,8 @@ -package types +package types_test import ( "encoding/hex" + "github.com/celestiaorg/celestia-app/x/qgb/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "testing" @@ -77,7 +78,7 @@ func TestValsetConfirmSig(t *testing.T) { // when ethAddr, err := stakingtypes.NewEthAddress(spec.srcETHAddr) assert.NoError(t, err) - err = ValidateEthereumSignature(hashBytes, sigBytes, *ethAddr) + err = types.ValidateEthereumSignature(hashBytes, sigBytes, *ethAddr) if spec.expErr { assert.Error(t, err) return diff --git a/x/qgb/types/events.go b/x/qgb/types/events.go index 5bbee1e324..2c46a0233a 100644 --- a/x/qgb/types/events.go +++ b/x/qgb/types/events.go @@ -1,8 +1,7 @@ package types const ( - EventTypeValsetRequest = "ValsetRequest" - EventTypeDataCommitmentRequest = "DataCommitmentRequest" + EventTypeAttestationRequest = "AttestationRequest" AttributeKeyValsetConfirmKey = "valset_confirm_key" AttributeKeySetOperatorAddr = "set_operator_address" diff --git a/x/qgb/types/genesis_test.go b/x/qgb/types/genesis_test.go index c13b520b20..6b48d5f22d 100644 --- a/x/qgb/types/genesis_test.go +++ b/x/qgb/types/genesis_test.go @@ -1,6 +1,7 @@ -package types +package types_test import ( + "github.com/celestiaorg/celestia-app/x/qgb/types" "testing" "github.com/stretchr/testify/require" @@ -8,17 +9,17 @@ import ( func TestGenesisStateValidate(t *testing.T) { specs := map[string]struct { - src *GenesisState + src *types.GenesisState expErr bool }{ - "default params": {src: DefaultGenesis(), expErr: false}, - "empty params": {src: &GenesisState{ - Params: &Params{ + "default params": {src: types.DefaultGenesis(), expErr: false}, + "empty params": {src: &types.GenesisState{ + Params: &types.Params{ DataCommitmentWindow: 0, }, }, expErr: true}, - "invalid params: short block time": {src: &GenesisState{ - Params: &Params{ + "invalid params: short block time": {src: &types.GenesisState{ + Params: &types.Params{ DataCommitmentWindow: 10, }, }, expErr: true}, diff --git a/x/qgb/types/keys.go b/x/qgb/types/keys.go index 806c518c6e..565697c20c 100644 --- a/x/qgb/types/keys.go +++ b/x/qgb/types/keys.go @@ -28,9 +28,7 @@ const ( const ( // ValsetRequestKey indexes valset requests by nonce - ValsetRequestKey = "ValsetRequestKey" - // ValsetRequestKey indexes valset requests by nonce - DataCommitmentRequestKey = "DataCommitmentRequestKey" + AttestationRequestKey = "AttestationRequestKey" // ValsetConfirmKey indexes valset confirmations by nonce and the validator account address // i.e celes1ahx7f8wyertuus9r20284ej0asrs085ceqtfnm @@ -49,10 +47,8 @@ const ( // LastUnBondingBlockHeight indexes the last validator unbonding block height LastUnBondingBlockHeight = "LastUnBondingBlockHeight" - // LatestValsetNonce indexes the latest valset nonce - LatestValsetNonce = "LatestValsetNonce" - // LatestDataCommitmentNonce indexes the latest data commitment nonce - LatestDataCommitmentNonce = "LatestDataCommitmentNonce" + // LatestAttestationtNonce indexes the latest attestation request nonce + LatestAttestationtNonce = "LatestAttestationNonce" ) // GetValsetConfirmKey returns the following key format @@ -65,18 +61,11 @@ func GetValsetConfirmKey(nonce uint64, validator sdk.AccAddress) string { return ValsetConfirmKey + ConvertByteArrToString(UInt64Bytes(nonce)) + string(validator.Bytes()) } -// GetValsetKey returns the following key format -// prefix nonce -// [0x0][0 0 0 0 0 0 0 1] -func GetValsetKey(nonce uint64) string { - return ValsetRequestKey + string(UInt64Bytes(nonce)) -} - -// GetDataCommitmentKey returns the following key format +// GetAttestationKey returns the following key format // prefix nonce // [0x0][0 0 0 0 0 0 0 1] -func GetDataCommitmentKey(nonce uint64) string { - return DataCommitmentRequestKey + string(UInt64Bytes(nonce)) +func GetAttestationKey(nonce uint64) string { + return AttestationRequestKey + string(UInt64Bytes(nonce)) } func ConvertByteArrToString(value []byte) string { diff --git a/x/qgb/types/msgs.pb.go b/x/qgb/types/msgs.pb.go index f24cb41048..6063a1e074 100644 --- a/x/qgb/types/msgs.pb.go +++ b/x/qgb/types/msgs.pb.go @@ -45,7 +45,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // chain store and submit them to Ethereum to update the validator set // ------------- type MsgValsetConfirm struct { - // Unique number referencing the `ValSet`. + // Universal nonce referencing the `ValSet`. Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` // Orchestrator `celes1` account address. Orchestrator string `protobuf:"bytes,2,opt,name=orchestrator,proto3" json:"orchestrator,omitempty"` @@ -157,23 +157,25 @@ var xxx_messageInfo_MsgValsetConfirmResponse proto.InternalMessageInfo // MsgDataCommitmentConfirm describes a data commitment for a set of blocks. type MsgDataCommitmentConfirm struct { + // Universal nonce referencing the Data Commitment. + Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` // Signature over the commitment, the range of blocks, the validator address // and the Ethereum address. - Signature string `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` + Signature string `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` // Orchestrator account address who will be signing the message. - ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"` + ValidatorAddress string `protobuf:"bytes,3,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"` // Hex `0x` encoded Ethereum public key that will be used by this validator on // Ethereum. - EthAddress string `protobuf:"bytes,3,opt,name=eth_address,json=ethAddress,proto3" json:"eth_address,omitempty"` + EthAddress string `protobuf:"bytes,4,opt,name=eth_address,json=ethAddress,proto3" json:"eth_address,omitempty"` // Merkle root over a merkle tree containing the data roots of a set of // blocks. - Commitment string `protobuf:"bytes,4,opt,name=commitment,proto3" json:"commitment,omitempty"` + Commitment string `protobuf:"bytes,5,opt,name=commitment,proto3" json:"commitment,omitempty"` // First block defining the ordered set of blocks used to create the // commitment. - BeginBlock uint64 `protobuf:"varint,5,opt,name=begin_block,json=beginBlock,proto3" json:"begin_block,omitempty"` + BeginBlock uint64 `protobuf:"varint,6,opt,name=begin_block,json=beginBlock,proto3" json:"begin_block,omitempty"` // Last block defining the ordered set of blocks used to create the // commitment. - EndBlock uint64 `protobuf:"varint,6,opt,name=end_block,json=endBlock,proto3" json:"end_block,omitempty"` + EndBlock uint64 `protobuf:"varint,7,opt,name=end_block,json=endBlock,proto3" json:"end_block,omitempty"` } func (m *MsgDataCommitmentConfirm) Reset() { *m = MsgDataCommitmentConfirm{} } @@ -209,6 +211,13 @@ func (m *MsgDataCommitmentConfirm) XXX_DiscardUnknown() { var xxx_messageInfo_MsgDataCommitmentConfirm proto.InternalMessageInfo +func (m *MsgDataCommitmentConfirm) GetNonce() uint64 { + if m != nil { + return m.Nonce + } + return 0 +} + func (m *MsgDataCommitmentConfirm) GetSignature() string { if m != nil { return m.Signature @@ -299,35 +308,36 @@ func init() { func init() { proto.RegisterFile("qgb/msgs.proto", fileDescriptor_c696c358dc748aba) } var fileDescriptor_c696c358dc748aba = []byte{ - // 446 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4f, 0x6f, 0xd3, 0x30, - 0x18, 0xc6, 0xeb, 0x75, 0x9b, 0xe8, 0xcb, 0x1f, 0x8d, 0xb0, 0x4a, 0x51, 0x56, 0x42, 0x15, 0x81, - 0x34, 0x09, 0xd1, 0x48, 0xf0, 0x09, 0xd8, 0xb8, 0x70, 0xd8, 0xa5, 0x07, 0x0e, 0x5c, 0x2a, 0x27, - 0x79, 0x71, 0x2d, 0x12, 0xbf, 0xa9, 0xed, 0x4d, 0x70, 0x85, 0x23, 0x17, 0x24, 0xbe, 0x14, 0xc7, - 0x49, 0x5c, 0x38, 0xa2, 0x76, 0x77, 0xbe, 0x02, 0x8a, 0x9b, 0x7a, 0xb4, 0x2a, 0xec, 0x66, 0x3f, - 0x3f, 0xe7, 0xf1, 0xf3, 0x3e, 0x31, 0xdc, 0x9b, 0x89, 0x2c, 0xad, 0x8c, 0x30, 0xa3, 0x5a, 0x93, - 0xa5, 0xa0, 0x3b, 0x13, 0x59, 0x74, 0x28, 0x48, 0x90, 0xdb, 0xa7, 0xcd, 0x6a, 0x89, 0xa2, 0x81, - 0x20, 0x12, 0x25, 0xa6, 0xbc, 0x96, 0x29, 0x57, 0x8a, 0x2c, 0xb7, 0x92, 0x54, 0xfb, 0x61, 0xf2, - 0x85, 0xc1, 0xc1, 0x99, 0x11, 0x6f, 0x78, 0x69, 0xd0, 0x9e, 0x92, 0x7a, 0x27, 0x75, 0x15, 0x1c, - 0xc2, 0x9e, 0x22, 0x95, 0x63, 0xc8, 0x86, 0xec, 0x78, 0x77, 0xbc, 0xdc, 0x04, 0x09, 0xdc, 0x21, - 0x9d, 0x4f, 0xd1, 0x58, 0xcd, 0x2d, 0xe9, 0x70, 0x67, 0xc8, 0x8e, 0x7b, 0xe3, 0x35, 0x2d, 0x78, - 0x04, 0xb7, 0xd1, 0x4e, 0x27, 0xbc, 0x28, 0x34, 0x1a, 0x13, 0x76, 0xdd, 0x11, 0x40, 0x3b, 0x7d, - 0xb9, 0x54, 0x82, 0x01, 0xf4, 0x8c, 0x14, 0x8a, 0xdb, 0x73, 0x8d, 0xe1, 0xae, 0xc3, 0xd7, 0x42, - 0x12, 0x41, 0xb8, 0x19, 0x66, 0x8c, 0xa6, 0x26, 0x65, 0x30, 0xb9, 0x62, 0x0e, 0xbe, 0xe2, 0x96, - 0x9f, 0x52, 0x55, 0x49, 0x5b, 0xa1, 0xf2, 0x89, 0xd7, 0x6c, 0xd9, 0x86, 0x6d, 0xf0, 0x14, 0xee, - 0x5f, 0xf0, 0x52, 0x16, 0x4d, 0x44, 0x9f, 0x6d, 0x19, 0xff, 0xc0, 0x83, 0x55, 0xc2, 0x1b, 0x47, - 0x88, 0x01, 0x72, 0x1f, 0xa0, 0x9d, 0xe1, 0x2f, 0xa5, 0x31, 0xc8, 0x50, 0x48, 0x35, 0xc9, 0x4a, - 0xca, 0xdf, 0x87, 0x7b, 0xae, 0x43, 0x70, 0xd2, 0x49, 0xa3, 0x04, 0x47, 0xd0, 0x43, 0x55, 0xb4, - 0x78, 0xdf, 0xe1, 0x5b, 0xa8, 0x0a, 0x07, 0x93, 0x04, 0x86, 0xff, 0x9a, 0x72, 0x55, 0xc5, 0xf3, - 0xdf, 0x0c, 0xba, 0x67, 0x46, 0x04, 0x19, 0xdc, 0x5d, 0xff, 0x71, 0xfd, 0xd1, 0x4c, 0x64, 0xa3, - 0xcd, 0x0a, 0xa3, 0x87, 0x5b, 0x65, 0xdf, 0xec, 0xd1, 0xa7, 0x1f, 0x57, 0xdf, 0x76, 0xfa, 0xc9, - 0x83, 0xb4, 0x79, 0x55, 0x17, 0xee, 0xcc, 0x24, 0x6f, 0x2d, 0x3f, 0x33, 0xe8, 0x6f, 0xef, 0xdc, - 0xbb, 0x6e, 0xc5, 0xd1, 0x93, 0xff, 0x62, 0x7f, 0xf9, 0x63, 0x77, 0x79, 0x9c, 0x0c, 0xdc, 0xe5, - 0x05, 0xb7, 0x7c, 0x72, 0xdd, 0xe5, 0x2a, 0xc5, 0xc9, 0xeb, 0xef, 0xf3, 0x98, 0x5d, 0xce, 0x63, - 0xf6, 0x6b, 0x1e, 0xb3, 0xaf, 0x8b, 0xb8, 0x73, 0xb9, 0x88, 0x3b, 0x3f, 0x17, 0x71, 0xe7, 0x6d, - 0x2a, 0xa4, 0x9d, 0x9e, 0x67, 0xa3, 0x9c, 0xaa, 0x34, 0xc7, 0x12, 0x8d, 0x95, 0x9c, 0xb4, 0xf0, - 0xeb, 0x67, 0xbc, 0xae, 0xd3, 0x0f, 0xce, 0xdc, 0x7e, 0xac, 0xd1, 0x64, 0xfb, 0xee, 0xe1, 0xbf, - 0xf8, 0x13, 0x00, 0x00, 0xff, 0xff, 0x79, 0x9d, 0x6f, 0x0a, 0x43, 0x03, 0x00, 0x00, + // 450 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xbf, 0x8f, 0xd3, 0x30, + 0x14, 0xc7, 0xeb, 0xb6, 0x77, 0xd0, 0xc7, 0x0f, 0x1d, 0xe1, 0x2a, 0x45, 0xb9, 0x12, 0xaa, 0x08, + 0xa4, 0x93, 0x10, 0x8d, 0x04, 0x7f, 0x01, 0x77, 0x2c, 0x0c, 0xb7, 0x74, 0x60, 0x60, 0xa9, 0x9c, + 0xe4, 0xe1, 0x5a, 0x24, 0x7e, 0xa9, 0xed, 0x3b, 0xc1, 0x0a, 0x23, 0x0b, 0x12, 0xff, 0x14, 0x63, + 0x25, 0x16, 0x46, 0xd4, 0xb2, 0xb3, 0x33, 0xa1, 0xb8, 0x6d, 0xaa, 0x86, 0x02, 0x9b, 0xfd, 0xfd, + 0x38, 0xef, 0xfb, 0x7d, 0xcf, 0x31, 0xdc, 0x9e, 0x89, 0x24, 0x2e, 0x8c, 0x30, 0xa3, 0x52, 0x93, + 0x25, 0xaf, 0x33, 0x13, 0x49, 0x70, 0x2c, 0x48, 0x90, 0xdb, 0xc7, 0xd5, 0x6a, 0x85, 0x82, 0x81, + 0x20, 0x12, 0x39, 0xc6, 0xbc, 0x94, 0x31, 0x57, 0x8a, 0x2c, 0xb7, 0x92, 0xd4, 0xfa, 0xc3, 0xe8, + 0x23, 0x83, 0xa3, 0x0b, 0x23, 0x5e, 0xf2, 0xdc, 0xa0, 0x3d, 0x27, 0xf5, 0x5a, 0xea, 0xc2, 0x3b, + 0x86, 0x03, 0x45, 0x2a, 0x45, 0x9f, 0x0d, 0xd9, 0x69, 0x77, 0xbc, 0xda, 0x78, 0x11, 0xdc, 0x24, + 0x9d, 0x4e, 0xd1, 0x58, 0xcd, 0x2d, 0x69, 0xbf, 0x3d, 0x64, 0xa7, 0xbd, 0xf1, 0x8e, 0xe6, 0xdd, + 0x87, 0x1b, 0x68, 0xa7, 0x13, 0x9e, 0x65, 0x1a, 0x8d, 0xf1, 0x3b, 0xee, 0x08, 0xa0, 0x9d, 0x3e, + 0x5b, 0x29, 0xde, 0x00, 0x7a, 0x46, 0x0a, 0xc5, 0xed, 0xa5, 0x46, 0xbf, 0xeb, 0xf0, 0x56, 0x88, + 0x02, 0xf0, 0x9b, 0x61, 0xc6, 0x68, 0x4a, 0x52, 0x06, 0xa3, 0x5f, 0xcc, 0xc1, 0xe7, 0xdc, 0xf2, + 0x73, 0x2a, 0x0a, 0x69, 0x0b, 0x54, 0xff, 0x49, 0xbc, 0x63, 0xd6, 0x6e, 0x98, 0x79, 0x8f, 0xe0, + 0xce, 0x15, 0xcf, 0x65, 0x56, 0x05, 0x6f, 0x24, 0x3e, 0xaa, 0xc1, 0x26, 0x77, 0xa3, 0xb1, 0xee, + 0x1f, 0x8d, 0x85, 0x00, 0x69, 0x1d, 0xcb, 0x3f, 0x58, 0xf1, 0xad, 0x52, 0x15, 0x48, 0x50, 0x48, + 0x35, 0x49, 0x72, 0x4a, 0xdf, 0xf8, 0x87, 0x2e, 0x27, 0x38, 0xe9, 0xac, 0x52, 0xbc, 0x13, 0xe8, + 0xa1, 0xca, 0xd6, 0xf8, 0x9a, 0xc3, 0xd7, 0x51, 0x65, 0x0e, 0x46, 0x11, 0x0c, 0xff, 0xd6, 0xfb, + 0x66, 0x40, 0x4f, 0x7e, 0x32, 0xe8, 0x5c, 0x18, 0xe1, 0x25, 0x70, 0x6b, 0xf7, 0x3a, 0xfb, 0xa3, + 0x99, 0x48, 0x46, 0xcd, 0xc1, 0x06, 0xf7, 0xf6, 0xca, 0xf5, 0xbc, 0x4f, 0xde, 0x7f, 0xfd, 0xf1, + 0xb9, 0xdd, 0x8f, 0xee, 0xc6, 0xd5, 0xbf, 0x76, 0xe5, 0xce, 0x4c, 0xd2, 0x75, 0xc9, 0x0f, 0x0c, + 0xfa, 0xfb, 0x6f, 0xa2, 0xae, 0xba, 0x17, 0x07, 0x0f, 0xff, 0x89, 0x6b, 0xf3, 0x07, 0xce, 0x3c, + 0x8c, 0x06, 0xce, 0x3c, 0xe3, 0x96, 0x4f, 0xb6, 0xb3, 0xdc, 0xa4, 0x38, 0x7b, 0xf1, 0x65, 0x11, + 0xb2, 0xf9, 0x22, 0x64, 0xdf, 0x17, 0x21, 0xfb, 0xb4, 0x0c, 0x5b, 0xf3, 0x65, 0xd8, 0xfa, 0xb6, + 0x0c, 0x5b, 0xaf, 0x62, 0x21, 0xed, 0xf4, 0x32, 0x19, 0xa5, 0x54, 0xc4, 0x29, 0xe6, 0x68, 0xac, + 0xe4, 0xa4, 0x45, 0xbd, 0x7e, 0xcc, 0xcb, 0x32, 0x7e, 0xeb, 0x8a, 0xdb, 0x77, 0x25, 0x9a, 0xe4, + 0xd0, 0x3d, 0x87, 0xa7, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xe6, 0xb0, 0xbd, 0xe7, 0x59, 0x03, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -549,40 +559,45 @@ func (m *MsgDataCommitmentConfirm) MarshalToSizedBuffer(dAtA []byte) (int, error if m.EndBlock != 0 { i = encodeVarintMsgs(dAtA, i, uint64(m.EndBlock)) i-- - dAtA[i] = 0x30 + dAtA[i] = 0x38 } if m.BeginBlock != 0 { i = encodeVarintMsgs(dAtA, i, uint64(m.BeginBlock)) i-- - dAtA[i] = 0x28 + dAtA[i] = 0x30 } if len(m.Commitment) > 0 { i -= len(m.Commitment) copy(dAtA[i:], m.Commitment) i = encodeVarintMsgs(dAtA, i, uint64(len(m.Commitment))) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x2a } if len(m.EthAddress) > 0 { i -= len(m.EthAddress) copy(dAtA[i:], m.EthAddress) i = encodeVarintMsgs(dAtA, i, uint64(len(m.EthAddress))) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x22 } if len(m.ValidatorAddress) > 0 { i -= len(m.ValidatorAddress) copy(dAtA[i:], m.ValidatorAddress) i = encodeVarintMsgs(dAtA, i, uint64(len(m.ValidatorAddress))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a } if len(m.Signature) > 0 { i -= len(m.Signature) copy(dAtA[i:], m.Signature) i = encodeVarintMsgs(dAtA, i, uint64(len(m.Signature))) i-- - dAtA[i] = 0xa + dAtA[i] = 0x12 + } + if m.Nonce != 0 { + i = encodeVarintMsgs(dAtA, i, uint64(m.Nonce)) + i-- + dAtA[i] = 0x8 } return len(dAtA) - i, nil } @@ -660,6 +675,9 @@ func (m *MsgDataCommitmentConfirm) Size() (n int) { } var l int _ = l + if m.Nonce != 0 { + n += 1 + sovMsgs(uint64(m.Nonce)) + } l = len(m.Signature) if l > 0 { n += 1 + l + sovMsgs(uint64(l)) @@ -945,6 +963,25 @@ func (m *MsgDataCommitmentConfirm) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) + } + m.Nonce = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Nonce |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Signature", wireType) } @@ -976,7 +1013,7 @@ func (m *MsgDataCommitmentConfirm) Unmarshal(dAtA []byte) error { } m.Signature = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType) } @@ -1008,7 +1045,7 @@ func (m *MsgDataCommitmentConfirm) Unmarshal(dAtA []byte) error { } m.ValidatorAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field EthAddress", wireType) } @@ -1040,7 +1077,7 @@ func (m *MsgDataCommitmentConfirm) Unmarshal(dAtA []byte) error { } m.EthAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 4: + case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) } @@ -1072,7 +1109,7 @@ func (m *MsgDataCommitmentConfirm) Unmarshal(dAtA []byte) error { } m.Commitment = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: + case 6: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType) } @@ -1091,7 +1128,7 @@ func (m *MsgDataCommitmentConfirm) Unmarshal(dAtA []byte) error { break } } - case 6: + case 7: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType) } diff --git a/x/qgb/types/query.pb.go b/x/qgb/types/query.pb.go index fd75b02a3e..057eedc323 100644 --- a/x/qgb/types/query.pb.go +++ b/x/qgb/types/query.pb.go @@ -6,10 +6,12 @@ package types import ( context "context" fmt "fmt" + types "github.com/cosmos/cosmos-sdk/codec/types" _ "github.com/cosmos/cosmos-sdk/types/query" _ "github.com/gogo/protobuf/gogoproto" grpc1 "github.com/gogo/protobuf/grpc" proto "github.com/gogo/protobuf/proto" + _ "github.com/regen-network/cosmos-proto" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -112,22 +114,23 @@ func (m *QueryParamsResponse) GetParams() Params { return Params{} } -// QueryLastValsetRequestsRequest -type QueryLastValsetRequestsRequest struct { +// QueryAttestationRequestByNonceRequest +type QueryAttestationRequestByNonceRequest struct { + Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` } -func (m *QueryLastValsetRequestsRequest) Reset() { *m = QueryLastValsetRequestsRequest{} } -func (m *QueryLastValsetRequestsRequest) String() string { return proto.CompactTextString(m) } -func (*QueryLastValsetRequestsRequest) ProtoMessage() {} -func (*QueryLastValsetRequestsRequest) Descriptor() ([]byte, []int) { +func (m *QueryAttestationRequestByNonceRequest) Reset() { *m = QueryAttestationRequestByNonceRequest{} } +func (m *QueryAttestationRequestByNonceRequest) String() string { return proto.CompactTextString(m) } +func (*QueryAttestationRequestByNonceRequest) ProtoMessage() {} +func (*QueryAttestationRequestByNonceRequest) Descriptor() ([]byte, []int) { return fileDescriptor_f3c1fd86445aad81, []int{2} } -func (m *QueryLastValsetRequestsRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryAttestationRequestByNonceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryLastValsetRequestsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryAttestationRequestByNonceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryLastValsetRequestsRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryAttestationRequestByNonceRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -137,35 +140,47 @@ func (m *QueryLastValsetRequestsRequest) XXX_Marshal(b []byte, deterministic boo return b[:n], nil } } -func (m *QueryLastValsetRequestsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLastValsetRequestsRequest.Merge(m, src) +func (m *QueryAttestationRequestByNonceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAttestationRequestByNonceRequest.Merge(m, src) } -func (m *QueryLastValsetRequestsRequest) XXX_Size() int { +func (m *QueryAttestationRequestByNonceRequest) XXX_Size() int { return m.Size() } -func (m *QueryLastValsetRequestsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLastValsetRequestsRequest.DiscardUnknown(m) +func (m *QueryAttestationRequestByNonceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAttestationRequestByNonceRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryLastValsetRequestsRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryAttestationRequestByNonceRequest proto.InternalMessageInfo + +func (m *QueryAttestationRequestByNonceRequest) GetNonce() uint64 { + if m != nil { + return m.Nonce + } + return 0 +} -// QueryLastValsetRequestsResponse -type QueryLastValsetRequestsResponse struct { - Valsets []Valset `protobuf:"bytes,1,rep,name=valsets,proto3" json:"valsets"` +// QueryAttestationRequestByNonceResponse +type QueryAttestationRequestByNonceResponse struct { + // AttestationRequestI is either a Data Commitment or a Valset. + // This was decided as part of the universal nonce approach under: + // https://github.com/celestiaorg/celestia-app/issues/468#issuecomment-1156887715 + Attestation *types.Any `protobuf:"bytes,1,opt,name=attestation,proto3" json:"attestation,omitempty"` } -func (m *QueryLastValsetRequestsResponse) Reset() { *m = QueryLastValsetRequestsResponse{} } -func (m *QueryLastValsetRequestsResponse) String() string { return proto.CompactTextString(m) } -func (*QueryLastValsetRequestsResponse) ProtoMessage() {} -func (*QueryLastValsetRequestsResponse) Descriptor() ([]byte, []int) { +func (m *QueryAttestationRequestByNonceResponse) Reset() { + *m = QueryAttestationRequestByNonceResponse{} +} +func (m *QueryAttestationRequestByNonceResponse) String() string { return proto.CompactTextString(m) } +func (*QueryAttestationRequestByNonceResponse) ProtoMessage() {} +func (*QueryAttestationRequestByNonceResponse) Descriptor() ([]byte, []int) { return fileDescriptor_f3c1fd86445aad81, []int{3} } -func (m *QueryLastValsetRequestsResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryAttestationRequestByNonceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryLastValsetRequestsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryAttestationRequestByNonceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryLastValsetRequestsResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryAttestationRequestByNonceResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -175,42 +190,41 @@ func (m *QueryLastValsetRequestsResponse) XXX_Marshal(b []byte, deterministic bo return b[:n], nil } } -func (m *QueryLastValsetRequestsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLastValsetRequestsResponse.Merge(m, src) +func (m *QueryAttestationRequestByNonceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAttestationRequestByNonceResponse.Merge(m, src) } -func (m *QueryLastValsetRequestsResponse) XXX_Size() int { +func (m *QueryAttestationRequestByNonceResponse) XXX_Size() int { return m.Size() } -func (m *QueryLastValsetRequestsResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLastValsetRequestsResponse.DiscardUnknown(m) +func (m *QueryAttestationRequestByNonceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAttestationRequestByNonceResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryLastValsetRequestsResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryAttestationRequestByNonceResponse proto.InternalMessageInfo -func (m *QueryLastValsetRequestsResponse) GetValsets() []Valset { +func (m *QueryAttestationRequestByNonceResponse) GetAttestation() *types.Any { if m != nil { - return m.Valsets + return m.Attestation } return nil } -// QueryValsetRequestByNonceRequest -type QueryValsetRequestByNonceRequest struct { - Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` +// QueryLatestAttestationNonceRequest Latest attestation nonce request +type QueryLatestAttestationNonceRequest struct { } -func (m *QueryValsetRequestByNonceRequest) Reset() { *m = QueryValsetRequestByNonceRequest{} } -func (m *QueryValsetRequestByNonceRequest) String() string { return proto.CompactTextString(m) } -func (*QueryValsetRequestByNonceRequest) ProtoMessage() {} -func (*QueryValsetRequestByNonceRequest) Descriptor() ([]byte, []int) { +func (m *QueryLatestAttestationNonceRequest) Reset() { *m = QueryLatestAttestationNonceRequest{} } +func (m *QueryLatestAttestationNonceRequest) String() string { return proto.CompactTextString(m) } +func (*QueryLatestAttestationNonceRequest) ProtoMessage() {} +func (*QueryLatestAttestationNonceRequest) Descriptor() ([]byte, []int) { return fileDescriptor_f3c1fd86445aad81, []int{4} } -func (m *QueryValsetRequestByNonceRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryLatestAttestationNonceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryValsetRequestByNonceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryLatestAttestationNonceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryValsetRequestByNonceRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryLatestAttestationNonceRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -220,42 +234,35 @@ func (m *QueryValsetRequestByNonceRequest) XXX_Marshal(b []byte, deterministic b return b[:n], nil } } -func (m *QueryValsetRequestByNonceRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryValsetRequestByNonceRequest.Merge(m, src) +func (m *QueryLatestAttestationNonceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryLatestAttestationNonceRequest.Merge(m, src) } -func (m *QueryValsetRequestByNonceRequest) XXX_Size() int { +func (m *QueryLatestAttestationNonceRequest) XXX_Size() int { return m.Size() } -func (m *QueryValsetRequestByNonceRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryValsetRequestByNonceRequest.DiscardUnknown(m) +func (m *QueryLatestAttestationNonceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryLatestAttestationNonceRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryValsetRequestByNonceRequest proto.InternalMessageInfo - -func (m *QueryValsetRequestByNonceRequest) GetNonce() uint64 { - if m != nil { - return m.Nonce - } - return 0 -} +var xxx_messageInfo_QueryLatestAttestationNonceRequest proto.InternalMessageInfo -// QueryValsetRequestByNonceResponse -type QueryValsetRequestByNonceResponse struct { - Valset *Valset `protobuf:"bytes,1,opt,name=valset,proto3" json:"valset,omitempty"` +// QueryLatestAttestationNonceResponse Latest attestation nonce response +type QueryLatestAttestationNonceResponse struct { + Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` } -func (m *QueryValsetRequestByNonceResponse) Reset() { *m = QueryValsetRequestByNonceResponse{} } -func (m *QueryValsetRequestByNonceResponse) String() string { return proto.CompactTextString(m) } -func (*QueryValsetRequestByNonceResponse) ProtoMessage() {} -func (*QueryValsetRequestByNonceResponse) Descriptor() ([]byte, []int) { +func (m *QueryLatestAttestationNonceResponse) Reset() { *m = QueryLatestAttestationNonceResponse{} } +func (m *QueryLatestAttestationNonceResponse) String() string { return proto.CompactTextString(m) } +func (*QueryLatestAttestationNonceResponse) ProtoMessage() {} +func (*QueryLatestAttestationNonceResponse) Descriptor() ([]byte, []int) { return fileDescriptor_f3c1fd86445aad81, []int{5} } -func (m *QueryValsetRequestByNonceResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryLatestAttestationNonceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryValsetRequestByNonceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryLatestAttestationNonceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryValsetRequestByNonceResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryLatestAttestationNonceResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -265,23 +272,23 @@ func (m *QueryValsetRequestByNonceResponse) XXX_Marshal(b []byte, deterministic return b[:n], nil } } -func (m *QueryValsetRequestByNonceResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryValsetRequestByNonceResponse.Merge(m, src) +func (m *QueryLatestAttestationNonceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryLatestAttestationNonceResponse.Merge(m, src) } -func (m *QueryValsetRequestByNonceResponse) XXX_Size() int { +func (m *QueryLatestAttestationNonceResponse) XXX_Size() int { return m.Size() } -func (m *QueryValsetRequestByNonceResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryValsetRequestByNonceResponse.DiscardUnknown(m) +func (m *QueryLatestAttestationNonceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryLatestAttestationNonceResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryValsetRequestByNonceResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryLatestAttestationNonceResponse proto.InternalMessageInfo -func (m *QueryValsetRequestByNonceResponse) GetValset() *Valset { +func (m *QueryLatestAttestationNonceResponse) GetNonce() uint64 { if m != nil { - return m.Valset + return m.Nonce } - return nil + return 0 } // QueryValsetConfirmsByNonceRequest @@ -472,24 +479,26 @@ func (m *QueryValsetConfirmResponse) GetConfirm() *MsgValsetConfirm { return nil } -// QueryLastValsetRequestBeforeHeightRequest last Valset request before height -// request -type QueryLastValsetBeforeHeightRequest struct { - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` +// QueryLastValsetRequestBeforeNonceRequest last Valset request before universal +// nonce request +type QueryLastValsetRequestBeforeNonceRequest struct { + Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` } -func (m *QueryLastValsetBeforeHeightRequest) Reset() { *m = QueryLastValsetBeforeHeightRequest{} } -func (m *QueryLastValsetBeforeHeightRequest) String() string { return proto.CompactTextString(m) } -func (*QueryLastValsetBeforeHeightRequest) ProtoMessage() {} -func (*QueryLastValsetBeforeHeightRequest) Descriptor() ([]byte, []int) { +func (m *QueryLastValsetRequestBeforeNonceRequest) Reset() { + *m = QueryLastValsetRequestBeforeNonceRequest{} +} +func (m *QueryLastValsetRequestBeforeNonceRequest) String() string { return proto.CompactTextString(m) } +func (*QueryLastValsetRequestBeforeNonceRequest) ProtoMessage() {} +func (*QueryLastValsetRequestBeforeNonceRequest) Descriptor() ([]byte, []int) { return fileDescriptor_f3c1fd86445aad81, []int{10} } -func (m *QueryLastValsetBeforeHeightRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryLastValsetRequestBeforeNonceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryLastValsetBeforeHeightRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryLastValsetRequestBeforeNonceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryLastValsetBeforeHeightRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryLastValsetRequestBeforeNonceRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -499,43 +508,47 @@ func (m *QueryLastValsetBeforeHeightRequest) XXX_Marshal(b []byte, deterministic return b[:n], nil } } -func (m *QueryLastValsetBeforeHeightRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLastValsetBeforeHeightRequest.Merge(m, src) +func (m *QueryLastValsetRequestBeforeNonceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryLastValsetRequestBeforeNonceRequest.Merge(m, src) } -func (m *QueryLastValsetBeforeHeightRequest) XXX_Size() int { +func (m *QueryLastValsetRequestBeforeNonceRequest) XXX_Size() int { return m.Size() } -func (m *QueryLastValsetBeforeHeightRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLastValsetBeforeHeightRequest.DiscardUnknown(m) +func (m *QueryLastValsetRequestBeforeNonceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryLastValsetRequestBeforeNonceRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryLastValsetBeforeHeightRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryLastValsetRequestBeforeNonceRequest proto.InternalMessageInfo -func (m *QueryLastValsetBeforeHeightRequest) GetHeight() uint64 { +func (m *QueryLastValsetRequestBeforeNonceRequest) GetNonce() uint64 { if m != nil { - return m.Height + return m.Nonce } return 0 } -// QueryLastValsetRequestBeforeHeightResponse last Valset request before height +// QueryLastValsetRequestBeforeNonceResponse last Valset request before height // response -type QueryLastValsetBeforeHeightResponse struct { +type QueryLastValsetRequestBeforeNonceResponse struct { Valset *Valset `protobuf:"bytes,1,opt,name=valset,proto3" json:"valset,omitempty"` } -func (m *QueryLastValsetBeforeHeightResponse) Reset() { *m = QueryLastValsetBeforeHeightResponse{} } -func (m *QueryLastValsetBeforeHeightResponse) String() string { return proto.CompactTextString(m) } -func (*QueryLastValsetBeforeHeightResponse) ProtoMessage() {} -func (*QueryLastValsetBeforeHeightResponse) Descriptor() ([]byte, []int) { +func (m *QueryLastValsetRequestBeforeNonceResponse) Reset() { + *m = QueryLastValsetRequestBeforeNonceResponse{} +} +func (m *QueryLastValsetRequestBeforeNonceResponse) String() string { + return proto.CompactTextString(m) +} +func (*QueryLastValsetRequestBeforeNonceResponse) ProtoMessage() {} +func (*QueryLastValsetRequestBeforeNonceResponse) Descriptor() ([]byte, []int) { return fileDescriptor_f3c1fd86445aad81, []int{11} } -func (m *QueryLastValsetBeforeHeightResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryLastValsetRequestBeforeNonceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryLastValsetBeforeHeightResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryLastValsetRequestBeforeNonceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryLastValsetBeforeHeightResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryLastValsetRequestBeforeNonceResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -545,19 +558,19 @@ func (m *QueryLastValsetBeforeHeightResponse) XXX_Marshal(b []byte, deterministi return b[:n], nil } } -func (m *QueryLastValsetBeforeHeightResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLastValsetBeforeHeightResponse.Merge(m, src) +func (m *QueryLastValsetRequestBeforeNonceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryLastValsetRequestBeforeNonceResponse.Merge(m, src) } -func (m *QueryLastValsetBeforeHeightResponse) XXX_Size() int { +func (m *QueryLastValsetRequestBeforeNonceResponse) XXX_Size() int { return m.Size() } -func (m *QueryLastValsetBeforeHeightResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLastValsetBeforeHeightResponse.DiscardUnknown(m) +func (m *QueryLastValsetRequestBeforeNonceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryLastValsetRequestBeforeNonceResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryLastValsetBeforeHeightResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryLastValsetRequestBeforeNonceResponse proto.InternalMessageInfo -func (m *QueryLastValsetBeforeHeightResponse) GetValset() *Valset { +func (m *QueryLastValsetRequestBeforeNonceResponse) GetValset() *Valset { if m != nil { return m.Valset } @@ -772,114 +785,6 @@ func (m *QueryDataCommitmentConfirmsByCommitmentResponse) GetConfirms() []MsgDat return nil } -// QueryDataCommitmentConfirmsByRangeRequest Data commitment confirms by range -// request -type QueryDataCommitmentConfirmsByRangeRequest struct { - BeginBlock uint64 `protobuf:"varint,1,opt,name=begin_block,json=beginBlock,proto3" json:"begin_block,omitempty"` - EndBlock uint64 `protobuf:"varint,2,opt,name=end_block,json=endBlock,proto3" json:"end_block,omitempty"` -} - -func (m *QueryDataCommitmentConfirmsByRangeRequest) Reset() { - *m = QueryDataCommitmentConfirmsByRangeRequest{} -} -func (m *QueryDataCommitmentConfirmsByRangeRequest) String() string { - return proto.CompactTextString(m) -} -func (*QueryDataCommitmentConfirmsByRangeRequest) ProtoMessage() {} -func (*QueryDataCommitmentConfirmsByRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{16} -} -func (m *QueryDataCommitmentConfirmsByRangeRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryDataCommitmentConfirmsByRangeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryDataCommitmentConfirmsByRangeRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryDataCommitmentConfirmsByRangeRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryDataCommitmentConfirmsByRangeRequest.Merge(m, src) -} -func (m *QueryDataCommitmentConfirmsByRangeRequest) XXX_Size() int { - return m.Size() -} -func (m *QueryDataCommitmentConfirmsByRangeRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryDataCommitmentConfirmsByRangeRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryDataCommitmentConfirmsByRangeRequest proto.InternalMessageInfo - -func (m *QueryDataCommitmentConfirmsByRangeRequest) GetBeginBlock() uint64 { - if m != nil { - return m.BeginBlock - } - return 0 -} - -func (m *QueryDataCommitmentConfirmsByRangeRequest) GetEndBlock() uint64 { - if m != nil { - return m.EndBlock - } - return 0 -} - -// QueryDataCommitmentConfirmsByRangeResponse Data commitment confirms by range -// response -type QueryDataCommitmentConfirmsByRangeResponse struct { - Confirms []MsgDataCommitmentConfirm `protobuf:"bytes,1,rep,name=confirms,proto3" json:"confirms"` -} - -func (m *QueryDataCommitmentConfirmsByRangeResponse) Reset() { - *m = QueryDataCommitmentConfirmsByRangeResponse{} -} -func (m *QueryDataCommitmentConfirmsByRangeResponse) String() string { - return proto.CompactTextString(m) -} -func (*QueryDataCommitmentConfirmsByRangeResponse) ProtoMessage() {} -func (*QueryDataCommitmentConfirmsByRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{17} -} -func (m *QueryDataCommitmentConfirmsByRangeResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryDataCommitmentConfirmsByRangeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryDataCommitmentConfirmsByRangeResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryDataCommitmentConfirmsByRangeResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryDataCommitmentConfirmsByRangeResponse.Merge(m, src) -} -func (m *QueryDataCommitmentConfirmsByRangeResponse) XXX_Size() int { - return m.Size() -} -func (m *QueryDataCommitmentConfirmsByRangeResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryDataCommitmentConfirmsByRangeResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryDataCommitmentConfirmsByRangeResponse proto.InternalMessageInfo - -func (m *QueryDataCommitmentConfirmsByRangeResponse) GetConfirms() []MsgDataCommitmentConfirm { - if m != nil { - return m.Confirms - } - return nil -} - // QueryDataCommitmentConfirmsByExactRangeRequest Data commitment confirms by // exact range request type QueryDataCommitmentConfirmsByExactRangeRequest struct { @@ -895,7 +800,7 @@ func (m *QueryDataCommitmentConfirmsByExactRangeRequest) String() string { } func (*QueryDataCommitmentConfirmsByExactRangeRequest) ProtoMessage() {} func (*QueryDataCommitmentConfirmsByExactRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{18} + return fileDescriptor_f3c1fd86445aad81, []int{16} } func (m *QueryDataCommitmentConfirmsByExactRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -952,7 +857,7 @@ func (m *QueryDataCommitmentConfirmsByExactRangeResponse) String() string { } func (*QueryDataCommitmentConfirmsByExactRangeResponse) ProtoMessage() {} func (*QueryDataCommitmentConfirmsByExactRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{19} + return fileDescriptor_f3c1fd86445aad81, []int{17} } func (m *QueryDataCommitmentConfirmsByExactRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -988,106 +893,6 @@ func (m *QueryDataCommitmentConfirmsByExactRangeResponse) GetConfirms() []MsgDat return nil } -// QueryDataCommitmentConfirmsByValidatorRequest Data commitment confirms by -// validator address request -type QueryDataCommitmentConfirmsByValidatorRequest struct { - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` -} - -func (m *QueryDataCommitmentConfirmsByValidatorRequest) Reset() { - *m = QueryDataCommitmentConfirmsByValidatorRequest{} -} -func (m *QueryDataCommitmentConfirmsByValidatorRequest) String() string { - return proto.CompactTextString(m) -} -func (*QueryDataCommitmentConfirmsByValidatorRequest) ProtoMessage() {} -func (*QueryDataCommitmentConfirmsByValidatorRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{20} -} -func (m *QueryDataCommitmentConfirmsByValidatorRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryDataCommitmentConfirmsByValidatorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryDataCommitmentConfirmsByValidatorRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryDataCommitmentConfirmsByValidatorRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryDataCommitmentConfirmsByValidatorRequest.Merge(m, src) -} -func (m *QueryDataCommitmentConfirmsByValidatorRequest) XXX_Size() int { - return m.Size() -} -func (m *QueryDataCommitmentConfirmsByValidatorRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryDataCommitmentConfirmsByValidatorRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryDataCommitmentConfirmsByValidatorRequest proto.InternalMessageInfo - -func (m *QueryDataCommitmentConfirmsByValidatorRequest) GetAddress() string { - if m != nil { - return m.Address - } - return "" -} - -// QueryDataCommitmentConfirmsByValidatorResponse Data commitment confirms by -// validator address response -type QueryDataCommitmentConfirmsByValidatorResponse struct { - Confirms []MsgDataCommitmentConfirm `protobuf:"bytes,1,rep,name=confirms,proto3" json:"confirms"` -} - -func (m *QueryDataCommitmentConfirmsByValidatorResponse) Reset() { - *m = QueryDataCommitmentConfirmsByValidatorResponse{} -} -func (m *QueryDataCommitmentConfirmsByValidatorResponse) String() string { - return proto.CompactTextString(m) -} -func (*QueryDataCommitmentConfirmsByValidatorResponse) ProtoMessage() {} -func (*QueryDataCommitmentConfirmsByValidatorResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{21} -} -func (m *QueryDataCommitmentConfirmsByValidatorResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryDataCommitmentConfirmsByValidatorResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryDataCommitmentConfirmsByValidatorResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryDataCommitmentConfirmsByValidatorResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryDataCommitmentConfirmsByValidatorResponse.Merge(m, src) -} -func (m *QueryDataCommitmentConfirmsByValidatorResponse) XXX_Size() int { - return m.Size() -} -func (m *QueryDataCommitmentConfirmsByValidatorResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryDataCommitmentConfirmsByValidatorResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryDataCommitmentConfirmsByValidatorResponse proto.InternalMessageInfo - -func (m *QueryDataCommitmentConfirmsByValidatorResponse) GetConfirms() []MsgDataCommitmentConfirm { - if m != nil { - return m.Confirms - } - return nil -} - // QueryLastUnbondingHeightRequest type QueryLastUnbondingHeightRequest struct { } @@ -1096,7 +901,7 @@ func (m *QueryLastUnbondingHeightRequest) Reset() { *m = QueryLastUnbond func (m *QueryLastUnbondingHeightRequest) String() string { return proto.CompactTextString(m) } func (*QueryLastUnbondingHeightRequest) ProtoMessage() {} func (*QueryLastUnbondingHeightRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{22} + return fileDescriptor_f3c1fd86445aad81, []int{18} } func (m *QueryLastUnbondingHeightRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1134,7 +939,7 @@ func (m *QueryLastUnbondingHeightResponse) Reset() { *m = QueryLastUnbon func (m *QueryLastUnbondingHeightResponse) String() string { return proto.CompactTextString(m) } func (*QueryLastUnbondingHeightResponse) ProtoMessage() {} func (*QueryLastUnbondingHeightResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{23} + return fileDescriptor_f3c1fd86445aad81, []int{19} } func (m *QueryLastUnbondingHeightResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1170,479 +975,170 @@ func (m *QueryLastUnbondingHeightResponse) GetHeight() uint64 { return 0 } -// QueryDataCommitmentRequestRequest Data commitment by nonce request -type QueryDataCommitmentRequestByNonceRequest struct { - // Unique number referencing the `DataCommitment`. - Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` +func init() { + proto.RegisterType((*QueryParamsRequest)(nil), "qgb.QueryParamsRequest") + proto.RegisterType((*QueryParamsResponse)(nil), "qgb.QueryParamsResponse") + proto.RegisterType((*QueryAttestationRequestByNonceRequest)(nil), "qgb.QueryAttestationRequestByNonceRequest") + proto.RegisterType((*QueryAttestationRequestByNonceResponse)(nil), "qgb.QueryAttestationRequestByNonceResponse") + proto.RegisterType((*QueryLatestAttestationNonceRequest)(nil), "qgb.QueryLatestAttestationNonceRequest") + proto.RegisterType((*QueryLatestAttestationNonceResponse)(nil), "qgb.QueryLatestAttestationNonceResponse") + proto.RegisterType((*QueryValsetConfirmsByNonceRequest)(nil), "qgb.QueryValsetConfirmsByNonceRequest") + proto.RegisterType((*QueryValsetConfirmsByNonceResponse)(nil), "qgb.QueryValsetConfirmsByNonceResponse") + proto.RegisterType((*QueryValsetConfirmRequest)(nil), "qgb.QueryValsetConfirmRequest") + proto.RegisterType((*QueryValsetConfirmResponse)(nil), "qgb.QueryValsetConfirmResponse") + proto.RegisterType((*QueryLastValsetRequestBeforeNonceRequest)(nil), "qgb.QueryLastValsetRequestBeforeNonceRequest") + proto.RegisterType((*QueryLastValsetRequestBeforeNonceResponse)(nil), "qgb.QueryLastValsetRequestBeforeNonceResponse") + proto.RegisterType((*QueryDataCommitmentConfirmRequest)(nil), "qgb.QueryDataCommitmentConfirmRequest") + proto.RegisterType((*QueryDataCommitmentConfirmResponse)(nil), "qgb.QueryDataCommitmentConfirmResponse") + proto.RegisterType((*QueryDataCommitmentConfirmsByCommitmentRequest)(nil), "qgb.QueryDataCommitmentConfirmsByCommitmentRequest") + proto.RegisterType((*QueryDataCommitmentConfirmsByCommitmentResponse)(nil), "qgb.QueryDataCommitmentConfirmsByCommitmentResponse") + proto.RegisterType((*QueryDataCommitmentConfirmsByExactRangeRequest)(nil), "qgb.QueryDataCommitmentConfirmsByExactRangeRequest") + proto.RegisterType((*QueryDataCommitmentConfirmsByExactRangeResponse)(nil), "qgb.QueryDataCommitmentConfirmsByExactRangeResponse") + proto.RegisterType((*QueryLastUnbondingHeightRequest)(nil), "qgb.QueryLastUnbondingHeightRequest") + proto.RegisterType((*QueryLastUnbondingHeightResponse)(nil), "qgb.QueryLastUnbondingHeightResponse") } -func (m *QueryDataCommitmentRequestByNonceRequest) Reset() { - *m = QueryDataCommitmentRequestByNonceRequest{} -} -func (m *QueryDataCommitmentRequestByNonceRequest) String() string { return proto.CompactTextString(m) } -func (*QueryDataCommitmentRequestByNonceRequest) ProtoMessage() {} -func (*QueryDataCommitmentRequestByNonceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{24} -} -func (m *QueryDataCommitmentRequestByNonceRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryDataCommitmentRequestByNonceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryDataCommitmentRequestByNonceRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryDataCommitmentRequestByNonceRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryDataCommitmentRequestByNonceRequest.Merge(m, src) +func init() { proto.RegisterFile("qgb/query.proto", fileDescriptor_f3c1fd86445aad81) } + +var fileDescriptor_f3c1fd86445aad81 = []byte{ + // 1062 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x97, 0xcd, 0x6f, 0x1b, 0x45, + 0x14, 0xc0, 0xb3, 0x49, 0x9b, 0x36, 0xcf, 0xb4, 0xc0, 0xe4, 0xcb, 0xd9, 0xb6, 0x8e, 0xbb, 0x4d, + 0x53, 0x37, 0x28, 0x1e, 0x35, 0x05, 0x55, 0x80, 0x2a, 0x5a, 0x17, 0x24, 0x2a, 0x28, 0x04, 0x43, + 0x39, 0x14, 0xa1, 0x68, 0xd6, 0x9e, 0x6c, 0x56, 0xd8, 0x33, 0xb6, 0x67, 0x5d, 0xd5, 0x58, 0xbe, + 0x70, 0xe1, 0x8a, 0xd4, 0x7f, 0x80, 0x2b, 0x77, 0x4e, 0x9c, 0x39, 0x54, 0x1c, 0x50, 0x25, 0x2e, + 0x9c, 0x10, 0x4a, 0x38, 0xf2, 0x47, 0x20, 0xcf, 0xbe, 0xfd, 0x70, 0x77, 0xbd, 0x6b, 0xa4, 0xde, + 0x76, 0xde, 0xd7, 0xfc, 0xde, 0xbc, 0x99, 0x37, 0xb3, 0xf0, 0x6a, 0xd7, 0xb1, 0x69, 0xb7, 0xcf, + 0x7b, 0x83, 0x6a, 0xa7, 0x27, 0x3d, 0x49, 0x16, 0xba, 0x8e, 0x6d, 0xbe, 0x3e, 0x96, 0x3a, 0x5c, + 0x70, 0xe5, 0x2a, 0x5f, 0x6e, 0x6a, 0x43, 0x6f, 0xd0, 0xe1, 0x81, 0xe0, 0xa2, 0x23, 0xa5, 0xd3, + 0xe2, 0x94, 0x75, 0x5c, 0xca, 0x84, 0x90, 0x1e, 0xf3, 0x5c, 0x29, 0x02, 0xed, 0x4e, 0x43, 0xaa, + 0xb6, 0x54, 0xd4, 0x66, 0x8a, 0xfb, 0xf1, 0xe9, 0xe3, 0x1b, 0x36, 0xf7, 0xd8, 0x0d, 0xda, 0x61, + 0x8e, 0x2b, 0xb4, 0x31, 0xda, 0x9e, 0x1f, 0x87, 0x6e, 0x2b, 0x27, 0xf0, 0x5d, 0x71, 0xa4, 0x23, + 0xf5, 0x27, 0x1d, 0x7f, 0xa1, 0x74, 0xc3, 0x8f, 0x78, 0xe0, 0x2b, 0xfc, 0x41, 0xa0, 0x42, 0x14, + 0x3d, 0xb2, 0xfb, 0x87, 0x94, 0x09, 0x4c, 0xc7, 0x5a, 0x01, 0xf2, 0xd9, 0x78, 0xf6, 0x7d, 0xd6, + 0x63, 0x6d, 0x55, 0xe7, 0xdd, 0x3e, 0x57, 0x9e, 0x75, 0x07, 0x96, 0x27, 0xa4, 0xaa, 0x23, 0x85, + 0xe2, 0xe4, 0x3a, 0x2c, 0x76, 0xb4, 0xa4, 0x68, 0x94, 0x8d, 0x4a, 0x61, 0xaf, 0x50, 0xed, 0x3a, + 0x76, 0xd5, 0x37, 0xaa, 0x9d, 0x7a, 0xf6, 0xd7, 0xe6, 0x5c, 0x1d, 0x0d, 0xac, 0xdb, 0x70, 0x55, + 0x47, 0xb8, 0xeb, 0x79, 0x5c, 0xf9, 0xa9, 0x63, 0xf0, 0xda, 0xe0, 0x13, 0x29, 0x1a, 0x1c, 0x47, + 0x64, 0x05, 0x4e, 0x8b, 0xf1, 0x58, 0x87, 0x3c, 0x55, 0xf7, 0x07, 0xd6, 0x00, 0xb6, 0xf3, 0xdc, + 0x91, 0xe9, 0x53, 0x28, 0xb0, 0xc8, 0x08, 0xc1, 0x56, 0xaa, 0x7e, 0xc6, 0xd5, 0x20, 0xe3, 0xea, + 0x5d, 0x31, 0xa8, 0xad, 0xff, 0xf6, 0xf3, 0xee, 0x72, 0x32, 0xe2, 0xfd, 0x7a, 0x3c, 0x82, 0xb5, + 0x05, 0x96, 0x9e, 0xfa, 0x63, 0x36, 0x96, 0xc5, 0xcc, 0xe3, 0xd8, 0xd6, 0xbb, 0x70, 0x25, 0xd3, + 0x0a, 0xe9, 0xd2, 0xb3, 0x7b, 0x1b, 0x2e, 0x6b, 0xe7, 0x2f, 0x59, 0x4b, 0x71, 0xef, 0x9e, 0x14, + 0x87, 0x6e, 0xaf, 0xad, 0x66, 0x5a, 0x98, 0xaf, 0x91, 0x6e, 0x8a, 0x2b, 0x4e, 0x7b, 0x0b, 0xce, + 0x36, 0x50, 0x55, 0x34, 0xca, 0x0b, 0x95, 0xc2, 0xde, 0xaa, 0x2e, 0xd5, 0x03, 0xe5, 0x4c, 0x38, + 0x62, 0xd1, 0x42, 0x63, 0xeb, 0x23, 0xd8, 0x48, 0x86, 0xcf, 0x24, 0x22, 0x45, 0x38, 0xc3, 0x9a, + 0xcd, 0x1e, 0x57, 0xaa, 0x38, 0x5f, 0x36, 0x2a, 0x4b, 0xf5, 0x60, 0x68, 0x3d, 0x00, 0x33, 0x2d, + 0x18, 0x32, 0x52, 0x38, 0x83, 0xd3, 0x62, 0xd1, 0xd2, 0x11, 0xeb, 0x81, 0x95, 0x75, 0x07, 0x2a, + 0xb8, 0xe4, 0xca, 0xf3, 0x4d, 0x82, 0x2d, 0xc1, 0x0f, 0x65, 0x8f, 0xcf, 0xb0, 0x78, 0xfb, 0x70, + 0x7d, 0x86, 0x08, 0xc8, 0x77, 0x05, 0x16, 0x1f, 0x6b, 0x9b, 0x89, 0xcd, 0x8e, 0x6e, 0xa8, 0xb2, + 0x86, 0x58, 0xc9, 0xf7, 0x99, 0xc7, 0xee, 0xc9, 0x76, 0xdb, 0xf5, 0xda, 0x5c, 0xbc, 0xb8, 0x6e, + 0x9b, 0x50, 0xb0, 0xb9, 0xe3, 0x8a, 0x03, 0xbb, 0x25, 0x1b, 0xdf, 0x20, 0x12, 0x68, 0x51, 0x6d, + 0x2c, 0x21, 0x17, 0x60, 0x89, 0x8b, 0x26, 0xaa, 0xe7, 0xb5, 0xfa, 0x2c, 0x17, 0x4d, 0x5f, 0x19, + 0x5b, 0xdf, 0x85, 0xc9, 0xf5, 0x0d, 0xf6, 0xc2, 0x94, 0xc9, 0xc3, 0xbd, 0xf0, 0xc2, 0x3a, 0x5f, + 0x0a, 0xd6, 0x39, 0xdd, 0x2f, 0x5c, 0xef, 0x7d, 0xa8, 0x4e, 0x0f, 0xaf, 0x6a, 0x83, 0x48, 0x16, + 0x24, 0x5a, 0x02, 0x68, 0x84, 0x42, 0x3d, 0xdb, 0x52, 0x3d, 0x26, 0xb1, 0x7a, 0x40, 0x67, 0x8e, + 0x88, 0xf4, 0xef, 0x25, 0x76, 0x72, 0x36, 0x7e, 0x62, 0x47, 0x8b, 0x9c, 0x2c, 0x3e, 0x78, 0xc2, + 0x1a, 0x5e, 0x9d, 0x09, 0x87, 0xbf, 0x94, 0x72, 0xe5, 0xe6, 0x18, 0x9f, 0xef, 0x65, 0xe5, 0x78, + 0x19, 0x36, 0xc3, 0x7d, 0xfd, 0x50, 0xd8, 0x52, 0x34, 0x5d, 0xe1, 0x7c, 0xc8, 0x5d, 0xe7, 0x28, + 0x28, 0x8d, 0xf5, 0x0e, 0x94, 0xa7, 0x9b, 0x20, 0xc7, 0x1a, 0x2c, 0x1e, 0x69, 0x09, 0xe6, 0x8c, + 0xa3, 0xbd, 0x5f, 0x5e, 0x81, 0xd3, 0xda, 0x99, 0xec, 0xc3, 0xa2, 0xdf, 0xed, 0xc9, 0xba, 0x26, + 0x4c, 0x5e, 0x1d, 0x66, 0x31, 0xa9, 0xf0, 0xc3, 0x5b, 0xcb, 0xdf, 0xfd, 0xf1, 0xcf, 0xd3, 0xf9, + 0x73, 0xa4, 0x40, 0xc7, 0xf7, 0x99, 0x7f, 0x4f, 0x90, 0x1f, 0x0d, 0xd8, 0x98, 0xda, 0xe4, 0xc9, + 0x4e, 0x14, 0x2c, 0xef, 0x22, 0x31, 0xdf, 0x98, 0xc9, 0x16, 0x59, 0x76, 0x34, 0xcb, 0x16, 0xb1, + 0x34, 0x4b, 0xac, 0xfd, 0x2b, 0xda, 0xf3, 0x3d, 0x14, 0x1d, 0xea, 0xa6, 0x31, 0x22, 0x4f, 0x0d, + 0x58, 0x4b, 0x6f, 0xf3, 0xe4, 0x5a, 0x34, 0x67, 0xe6, 0x75, 0x61, 0x56, 0xf2, 0x0d, 0x91, 0x6c, + 0x5b, 0x93, 0x95, 0x49, 0x29, 0x49, 0xa6, 0x79, 0x68, 0x4b, 0xfb, 0x93, 0x5f, 0x0d, 0x58, 0x4d, + 0xdd, 0x1d, 0x64, 0x3b, 0x9a, 0x2b, 0xab, 0x2d, 0x99, 0xd7, 0x72, 0xed, 0x10, 0xe9, 0x91, 0x46, + 0xfa, 0x82, 0xd4, 0x35, 0x52, 0x93, 0x79, 0xec, 0x20, 0x3a, 0xd4, 0x14, 0x77, 0x21, 0xd5, 0x07, + 0x84, 0x0e, 0x63, 0x47, 0x67, 0x44, 0xb9, 0x68, 0xd2, 0x61, 0x78, 0x56, 0x46, 0x14, 0x3b, 0x17, + 0x1d, 0xe2, 0xc7, 0x88, 0xfc, 0x6e, 0x80, 0x95, 0xdf, 0x0e, 0xc8, 0xcd, 0x1c, 0xd6, 0xb4, 0x76, + 0x64, 0xbe, 0xf9, 0xff, 0x9c, 0x30, 0xdb, 0xdb, 0x3a, 0xdb, 0x5b, 0xe4, 0xad, 0xac, 0x6c, 0x15, + 0x8d, 0xc9, 0x86, 0xd1, 0xf7, 0x88, 0xfc, 0x9b, 0x91, 0x50, 0x74, 0xf6, 0x67, 0x49, 0x28, 0xd1, + 0x99, 0x66, 0x49, 0x28, 0xd9, 0x5e, 0xac, 0xaf, 0x74, 0x42, 0x0f, 0xc9, 0xe7, 0xd9, 0x09, 0xf1, + 0xb1, 0x27, 0x8d, 0x95, 0x2f, 0x59, 0xcb, 0x40, 0x1e, 0x55, 0x94, 0xb4, 0xe1, 0xdc, 0xc4, 0x75, + 0x4d, 0x4a, 0x11, 0x63, 0xda, 0x23, 0xc2, 0xdc, 0x9c, 0xaa, 0x47, 0xdc, 0x0b, 0x1a, 0x77, 0x95, + 0x2c, 0x6b, 0x5c, 0xff, 0x9e, 0x0d, 0x28, 0xc9, 0x4f, 0x06, 0x5c, 0xcc, 0xba, 0xbd, 0xc9, 0x6e, + 0xfc, 0xa0, 0xe5, 0xbe, 0x13, 0xcc, 0xea, 0xac, 0xe6, 0xa9, 0x7d, 0x03, 0xe1, 0xb0, 0x63, 0x50, + 0x5b, 0x3b, 0x84, 0x7d, 0xe3, 0x7b, 0x03, 0x56, 0x53, 0x9f, 0x69, 0xf1, 0x13, 0x9a, 0xf5, 0x04, + 0x8c, 0x9f, 0xd0, 0xcc, 0xf7, 0x9e, 0x75, 0x49, 0x63, 0xad, 0x93, 0x55, 0x8d, 0x15, 0x96, 0x34, + 0x20, 0xf9, 0x16, 0x96, 0x53, 0xfa, 0x3e, 0xd9, 0x9a, 0x4c, 0x3e, 0xfd, 0xe6, 0x30, 0xaf, 0xe6, + 0x58, 0x21, 0xc2, 0x9a, 0x46, 0x78, 0x8d, 0x9c, 0xd7, 0x08, 0xfd, 0xc0, 0xaa, 0x76, 0xff, 0xd9, + 0x71, 0xc9, 0x78, 0x7e, 0x5c, 0x32, 0xfe, 0x3e, 0x2e, 0x19, 0x3f, 0x9c, 0x94, 0xe6, 0x9e, 0x9f, + 0x94, 0xe6, 0xfe, 0x3c, 0x29, 0xcd, 0x3d, 0xa2, 0x8e, 0xeb, 0x1d, 0xf5, 0xed, 0x6a, 0x43, 0xb6, + 0x69, 0x83, 0xb7, 0xb8, 0xf2, 0x5c, 0x26, 0x7b, 0x4e, 0xf8, 0xbd, 0xcb, 0x3a, 0x1d, 0xfa, 0x84, + 0x86, 0xff, 0x55, 0xf6, 0xa2, 0x7e, 0xcd, 0xdf, 0xfc, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x81, 0xe2, + 0xc2, 0x58, 0x94, 0x0d, 0x00, 0x00, } -func (m *QueryDataCommitmentRequestByNonceRequest) XXX_Size() int { - return m.Size() + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// QueryClient is the client API for Query service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type QueryClient interface { + // Params Queries the current parameters for the qgb module + Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // AttestationRequestByNonce Queries attestation request by nonce. + AttestationRequestByNonce(ctx context.Context, in *QueryAttestationRequestByNonceRequest, opts ...grpc.CallOption) (*QueryAttestationRequestByNonceResponse, error) + // LatestAttestationNonce Queries latest attestation nonce. + LatestAttestationNonce(ctx context.Context, in *QueryLatestAttestationNonceRequest, opts ...grpc.CallOption) (*QueryLatestAttestationNonceResponse, error) + // DataCommitmentConfirm Queries the data commitment confirm by the commitment + // and the validator address + DataCommitmentConfirm(ctx context.Context, in *QueryDataCommitmentConfirmRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmResponse, error) + // DataCommitmentConfirms Queries data commitment confirms by the actual + // commitment + DataCommitmentConfirmsByCommitment(ctx context.Context, in *QueryDataCommitmentConfirmsByCommitmentRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmsByCommitmentResponse, error) + // DataCommitmentConfirmsByExactRange Queries data commitment confirms by an + // exact block range + DataCommitmentConfirmsByExactRange(ctx context.Context, in *QueryDataCommitmentConfirmsByExactRangeRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmsByExactRangeResponse, error) + // ValsetConfirm Queries ValSetConfirm + ValsetConfirm(ctx context.Context, in *QueryValsetConfirmRequest, opts ...grpc.CallOption) (*QueryValsetConfirmResponse, error) + // LastValsetRequestBeforeNonce Queries last Valset request before nonce. + // And, even if the current nonce is a valset, if will return the previous + // one. + LastValsetRequestBeforeNonce(ctx context.Context, in *QueryLastValsetRequestBeforeNonceRequest, opts ...grpc.CallOption) (*QueryLastValsetRequestBeforeNonceResponse, error) + // ValsetConfirmsByNonce + ValsetConfirmsByNonce(ctx context.Context, in *QueryValsetConfirmsByNonceRequest, opts ...grpc.CallOption) (*QueryValsetConfirmsByNonceResponse, error) + // LastUnbondingHeight + LastUnbondingHeight(ctx context.Context, in *QueryLastUnbondingHeightRequest, opts ...grpc.CallOption) (*QueryLastUnbondingHeightResponse, error) } -func (m *QueryDataCommitmentRequestByNonceRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryDataCommitmentRequestByNonceRequest.DiscardUnknown(m) + +type queryClient struct { + cc grpc1.ClientConn } -var xxx_messageInfo_QueryDataCommitmentRequestByNonceRequest proto.InternalMessageInfo +func NewQueryClient(cc grpc1.ClientConn) QueryClient { + return &queryClient{cc} +} -func (m *QueryDataCommitmentRequestByNonceRequest) GetNonce() uint64 { - if m != nil { - return m.Nonce +func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { + out := new(QueryParamsResponse) + err := c.cc.Invoke(ctx, "/qgb.Query/Params", in, out, opts...) + if err != nil { + return nil, err } - return 0 + return out, nil } -// QueryDataCommitmentRequestResponse Data commitment by nonce response -type QueryDataCommitmentRequestByNonceResponse struct { - Commitment *DataCommitment `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` +func (c *queryClient) AttestationRequestByNonce(ctx context.Context, in *QueryAttestationRequestByNonceRequest, opts ...grpc.CallOption) (*QueryAttestationRequestByNonceResponse, error) { + out := new(QueryAttestationRequestByNonceResponse) + err := c.cc.Invoke(ctx, "/qgb.Query/AttestationRequestByNonce", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil } -func (m *QueryDataCommitmentRequestByNonceResponse) Reset() { - *m = QueryDataCommitmentRequestByNonceResponse{} -} -func (m *QueryDataCommitmentRequestByNonceResponse) String() string { - return proto.CompactTextString(m) -} -func (*QueryDataCommitmentRequestByNonceResponse) ProtoMessage() {} -func (*QueryDataCommitmentRequestByNonceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{25} -} -func (m *QueryDataCommitmentRequestByNonceResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryDataCommitmentRequestByNonceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryDataCommitmentRequestByNonceResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryDataCommitmentRequestByNonceResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryDataCommitmentRequestByNonceResponse.Merge(m, src) -} -func (m *QueryDataCommitmentRequestByNonceResponse) XXX_Size() int { - return m.Size() -} -func (m *QueryDataCommitmentRequestByNonceResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryDataCommitmentRequestByNonceResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryDataCommitmentRequestByNonceResponse proto.InternalMessageInfo - -func (m *QueryDataCommitmentRequestByNonceResponse) GetCommitment() *DataCommitment { - if m != nil { - return m.Commitment - } - return nil -} - -// QueryLastDataCommitmentRequestsRequest Last data commitment request -type QueryLastDataCommitmentRequestsRequest struct { -} - -func (m *QueryLastDataCommitmentRequestsRequest) Reset() { - *m = QueryLastDataCommitmentRequestsRequest{} -} -func (m *QueryLastDataCommitmentRequestsRequest) String() string { return proto.CompactTextString(m) } -func (*QueryLastDataCommitmentRequestsRequest) ProtoMessage() {} -func (*QueryLastDataCommitmentRequestsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{26} -} -func (m *QueryLastDataCommitmentRequestsRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryLastDataCommitmentRequestsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryLastDataCommitmentRequestsRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryLastDataCommitmentRequestsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLastDataCommitmentRequestsRequest.Merge(m, src) -} -func (m *QueryLastDataCommitmentRequestsRequest) XXX_Size() int { - return m.Size() -} -func (m *QueryLastDataCommitmentRequestsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLastDataCommitmentRequestsRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryLastDataCommitmentRequestsRequest proto.InternalMessageInfo - -// QueryLastDataCommitmentRequestsResponse Last data commitment response -type QueryLastDataCommitmentRequestsResponse struct { - Commitments []DataCommitment `protobuf:"bytes,1,rep,name=commitments,proto3" json:"commitments"` -} - -func (m *QueryLastDataCommitmentRequestsResponse) Reset() { - *m = QueryLastDataCommitmentRequestsResponse{} -} -func (m *QueryLastDataCommitmentRequestsResponse) String() string { return proto.CompactTextString(m) } -func (*QueryLastDataCommitmentRequestsResponse) ProtoMessage() {} -func (*QueryLastDataCommitmentRequestsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{27} -} -func (m *QueryLastDataCommitmentRequestsResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryLastDataCommitmentRequestsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryLastDataCommitmentRequestsResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryLastDataCommitmentRequestsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLastDataCommitmentRequestsResponse.Merge(m, src) -} -func (m *QueryLastDataCommitmentRequestsResponse) XXX_Size() int { - return m.Size() -} -func (m *QueryLastDataCommitmentRequestsResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLastDataCommitmentRequestsResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryLastDataCommitmentRequestsResponse proto.InternalMessageInfo - -func (m *QueryLastDataCommitmentRequestsResponse) GetCommitments() []DataCommitment { - if m != nil { - return m.Commitments - } - return nil -} - -// QueryLatestDataCommitmentNonceRequest Latest data commitment nonce request -type QueryLatestDataCommitmentNonceRequest struct { -} - -func (m *QueryLatestDataCommitmentNonceRequest) Reset() { *m = QueryLatestDataCommitmentNonceRequest{} } -func (m *QueryLatestDataCommitmentNonceRequest) String() string { return proto.CompactTextString(m) } -func (*QueryLatestDataCommitmentNonceRequest) ProtoMessage() {} -func (*QueryLatestDataCommitmentNonceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{28} -} -func (m *QueryLatestDataCommitmentNonceRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryLatestDataCommitmentNonceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryLatestDataCommitmentNonceRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryLatestDataCommitmentNonceRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLatestDataCommitmentNonceRequest.Merge(m, src) -} -func (m *QueryLatestDataCommitmentNonceRequest) XXX_Size() int { - return m.Size() -} -func (m *QueryLatestDataCommitmentNonceRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLatestDataCommitmentNonceRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryLatestDataCommitmentNonceRequest proto.InternalMessageInfo - -// QueryLatestDataCommitmentNonceResponse Latest data commitment nonce response -type QueryLatestDataCommitmentNonceResponse struct { - Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` -} - -func (m *QueryLatestDataCommitmentNonceResponse) Reset() { - *m = QueryLatestDataCommitmentNonceResponse{} -} -func (m *QueryLatestDataCommitmentNonceResponse) String() string { return proto.CompactTextString(m) } -func (*QueryLatestDataCommitmentNonceResponse) ProtoMessage() {} -func (*QueryLatestDataCommitmentNonceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f3c1fd86445aad81, []int{29} -} -func (m *QueryLatestDataCommitmentNonceResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *QueryLatestDataCommitmentNonceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_QueryLatestDataCommitmentNonceResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *QueryLatestDataCommitmentNonceResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLatestDataCommitmentNonceResponse.Merge(m, src) -} -func (m *QueryLatestDataCommitmentNonceResponse) XXX_Size() int { - return m.Size() -} -func (m *QueryLatestDataCommitmentNonceResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLatestDataCommitmentNonceResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryLatestDataCommitmentNonceResponse proto.InternalMessageInfo - -func (m *QueryLatestDataCommitmentNonceResponse) GetNonce() uint64 { - if m != nil { - return m.Nonce - } - return 0 -} - -func init() { - proto.RegisterType((*QueryParamsRequest)(nil), "qgb.QueryParamsRequest") - proto.RegisterType((*QueryParamsResponse)(nil), "qgb.QueryParamsResponse") - proto.RegisterType((*QueryLastValsetRequestsRequest)(nil), "qgb.QueryLastValsetRequestsRequest") - proto.RegisterType((*QueryLastValsetRequestsResponse)(nil), "qgb.QueryLastValsetRequestsResponse") - proto.RegisterType((*QueryValsetRequestByNonceRequest)(nil), "qgb.QueryValsetRequestByNonceRequest") - proto.RegisterType((*QueryValsetRequestByNonceResponse)(nil), "qgb.QueryValsetRequestByNonceResponse") - proto.RegisterType((*QueryValsetConfirmsByNonceRequest)(nil), "qgb.QueryValsetConfirmsByNonceRequest") - proto.RegisterType((*QueryValsetConfirmsByNonceResponse)(nil), "qgb.QueryValsetConfirmsByNonceResponse") - proto.RegisterType((*QueryValsetConfirmRequest)(nil), "qgb.QueryValsetConfirmRequest") - proto.RegisterType((*QueryValsetConfirmResponse)(nil), "qgb.QueryValsetConfirmResponse") - proto.RegisterType((*QueryLastValsetBeforeHeightRequest)(nil), "qgb.QueryLastValsetBeforeHeightRequest") - proto.RegisterType((*QueryLastValsetBeforeHeightResponse)(nil), "qgb.QueryLastValsetBeforeHeightResponse") - proto.RegisterType((*QueryDataCommitmentConfirmRequest)(nil), "qgb.QueryDataCommitmentConfirmRequest") - proto.RegisterType((*QueryDataCommitmentConfirmResponse)(nil), "qgb.QueryDataCommitmentConfirmResponse") - proto.RegisterType((*QueryDataCommitmentConfirmsByCommitmentRequest)(nil), "qgb.QueryDataCommitmentConfirmsByCommitmentRequest") - proto.RegisterType((*QueryDataCommitmentConfirmsByCommitmentResponse)(nil), "qgb.QueryDataCommitmentConfirmsByCommitmentResponse") - proto.RegisterType((*QueryDataCommitmentConfirmsByRangeRequest)(nil), "qgb.QueryDataCommitmentConfirmsByRangeRequest") - proto.RegisterType((*QueryDataCommitmentConfirmsByRangeResponse)(nil), "qgb.QueryDataCommitmentConfirmsByRangeResponse") - proto.RegisterType((*QueryDataCommitmentConfirmsByExactRangeRequest)(nil), "qgb.QueryDataCommitmentConfirmsByExactRangeRequest") - proto.RegisterType((*QueryDataCommitmentConfirmsByExactRangeResponse)(nil), "qgb.QueryDataCommitmentConfirmsByExactRangeResponse") - proto.RegisterType((*QueryDataCommitmentConfirmsByValidatorRequest)(nil), "qgb.QueryDataCommitmentConfirmsByValidatorRequest") - proto.RegisterType((*QueryDataCommitmentConfirmsByValidatorResponse)(nil), "qgb.QueryDataCommitmentConfirmsByValidatorResponse") - proto.RegisterType((*QueryLastUnbondingHeightRequest)(nil), "qgb.QueryLastUnbondingHeightRequest") - proto.RegisterType((*QueryLastUnbondingHeightResponse)(nil), "qgb.QueryLastUnbondingHeightResponse") - proto.RegisterType((*QueryDataCommitmentRequestByNonceRequest)(nil), "qgb.QueryDataCommitmentRequestByNonceRequest") - proto.RegisterType((*QueryDataCommitmentRequestByNonceResponse)(nil), "qgb.QueryDataCommitmentRequestByNonceResponse") - proto.RegisterType((*QueryLastDataCommitmentRequestsRequest)(nil), "qgb.QueryLastDataCommitmentRequestsRequest") - proto.RegisterType((*QueryLastDataCommitmentRequestsResponse)(nil), "qgb.QueryLastDataCommitmentRequestsResponse") - proto.RegisterType((*QueryLatestDataCommitmentNonceRequest)(nil), "qgb.QueryLatestDataCommitmentNonceRequest") - proto.RegisterType((*QueryLatestDataCommitmentNonceResponse)(nil), "qgb.QueryLatestDataCommitmentNonceResponse") -} - -func init() { proto.RegisterFile("qgb/query.proto", fileDescriptor_f3c1fd86445aad81) } - -var fileDescriptor_f3c1fd86445aad81 = []byte{ - // 1280 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4b, 0x6f, 0x1b, 0xd5, - 0x17, 0xcf, 0x34, 0x6d, 0xd2, 0x1c, 0xab, 0xfd, 0xff, 0x39, 0x4e, 0xd2, 0x74, 0x9a, 0x38, 0xc9, - 0xa4, 0xce, 0x93, 0xf8, 0x2a, 0x09, 0x28, 0xbc, 0xa9, 0x5c, 0x90, 0x5a, 0x20, 0x25, 0x18, 0xd2, - 0x45, 0x11, 0x2a, 0x63, 0xfb, 0x66, 0x32, 0xc2, 0x9e, 0xb1, 0x3d, 0x93, 0xaa, 0xc1, 0xf2, 0x86, - 0x0d, 0x0b, 0x36, 0x20, 0x36, 0xac, 0xe0, 0x0b, 0xf0, 0x31, 0x40, 0xea, 0x0a, 0x55, 0x62, 0x01, - 0x2b, 0x84, 0x12, 0x96, 0x7c, 0x08, 0xe4, 0x3b, 0x67, 0xc6, 0x63, 0xfb, 0xce, 0x23, 0x52, 0x76, - 0x33, 0xe7, 0xfe, 0xce, 0x39, 0xbf, 0xf3, 0x98, 0x7b, 0xcf, 0x1d, 0xf8, 0x5f, 0xd3, 0x28, 0xb3, - 0xe6, 0x31, 0x6f, 0x9d, 0x14, 0x1a, 0x2d, 0xdb, 0xb5, 0x71, 0xb4, 0x69, 0x94, 0xd5, 0x17, 0xba, - 0x52, 0x83, 0x5b, 0xdc, 0x31, 0x1d, 0x4f, 0xae, 0x0a, 0xa0, 0x7b, 0xd2, 0xe0, 0xbe, 0x60, 0xd6, - 0xb0, 0x6d, 0xa3, 0xc6, 0x99, 0xde, 0x30, 0x99, 0x6e, 0x59, 0xb6, 0xab, 0xbb, 0xa6, 0x6d, 0xf9, - 0xab, 0xeb, 0x15, 0xdb, 0xa9, 0xdb, 0x0e, 0x2b, 0xeb, 0x0e, 0xf7, 0xec, 0xb3, 0x27, 0x5b, 0x65, - 0xee, 0xea, 0x5b, 0xac, 0xa1, 0x1b, 0xa6, 0x25, 0xc0, 0x84, 0xbd, 0xde, 0x35, 0x5d, 0x77, 0x0c, - 0x5f, 0x77, 0xd2, 0xb0, 0x0d, 0x5b, 0x3c, 0xb2, 0xee, 0x93, 0x27, 0xd5, 0x26, 0x01, 0x3f, 0xea, - 0xda, 0xd9, 0xd7, 0x5b, 0x7a, 0xdd, 0x29, 0xf1, 0xe6, 0x31, 0x77, 0x5c, 0xed, 0x0e, 0x64, 0xfb, - 0xa4, 0x4e, 0xc3, 0xb6, 0x1c, 0x8e, 0x6b, 0x30, 0xd6, 0x10, 0x92, 0x19, 0x65, 0x41, 0x59, 0xcd, - 0x6c, 0x67, 0x0a, 0x4d, 0xa3, 0x5c, 0xf0, 0x40, 0xc5, 0xcb, 0xcf, 0xfe, 0x9a, 0x1f, 0x29, 0x11, - 0x40, 0x5b, 0x80, 0x9c, 0xb0, 0xf0, 0x81, 0xee, 0xb8, 0x0f, 0xf5, 0x9a, 0xc3, 0x5d, 0xb2, 0x1d, - 0xf8, 0x78, 0x00, 0xf3, 0x91, 0x08, 0xf2, 0xb7, 0x01, 0xe3, 0x4f, 0xc4, 0x4a, 0xd7, 0xe1, 0x68, - 0xe0, 0xd0, 0x43, 0x93, 0x43, 0x1f, 0xa1, 0xbd, 0x02, 0x0b, 0xc2, 0x5e, 0x9f, 0xad, 0xe2, 0xc9, - 0x03, 0xdb, 0xaa, 0x70, 0x7a, 0xc3, 0x49, 0xb8, 0x62, 0x75, 0xdf, 0x05, 0xff, 0xcb, 0x25, 0xef, - 0x45, 0xbb, 0x07, 0x8b, 0x31, 0x9a, 0xc4, 0x65, 0x09, 0xc6, 0x3c, 0x4f, 0x7d, 0xb1, 0x93, 0x0a, - 0x2d, 0x69, 0xaf, 0xf6, 0x59, 0xba, 0x6b, 0x5b, 0x87, 0x66, 0xab, 0xee, 0xa4, 0x22, 0xf1, 0x19, - 0x68, 0x71, 0xaa, 0xc4, 0x62, 0x17, 0xae, 0x56, 0x68, 0x89, 0x52, 0x32, 0x25, 0x78, 0xec, 0x39, - 0x46, 0x9f, 0x22, 0x25, 0x27, 0x00, 0x6b, 0xef, 0xc3, 0xcd, 0x61, 0xf3, 0xb1, 0x8c, 0x70, 0x06, - 0xc6, 0xf5, 0x6a, 0xb5, 0xc5, 0x1d, 0x67, 0xe6, 0xd2, 0x82, 0xb2, 0x3a, 0x51, 0xf2, 0x5f, 0xb5, - 0x3d, 0x50, 0x65, 0xc6, 0x88, 0x23, 0x83, 0x71, 0x72, 0x4b, 0xa9, 0x92, 0x53, 0x2c, 0xf9, 0x28, - 0xed, 0x0d, 0x0a, 0xbd, 0xd7, 0x09, 0x45, 0x7e, 0x68, 0xb7, 0xf8, 0x3d, 0x6e, 0x1a, 0x47, 0x7e, - 0x3d, 0x70, 0x1a, 0xc6, 0x8e, 0x84, 0x80, 0x58, 0xd2, 0x9b, 0xf6, 0x1e, 0x2c, 0xc5, 0x6a, 0x9f, - 0xa7, 0x7e, 0x6d, 0xaa, 0xdf, 0x3b, 0xba, 0xab, 0xdf, 0xb5, 0xeb, 0x75, 0xd3, 0xad, 0x73, 0x6b, - 0x30, 0x5b, 0xf3, 0x90, 0x29, 0x73, 0xc3, 0xb4, 0x1e, 0x97, 0x6b, 0x76, 0xe5, 0x0b, 0x62, 0x03, - 0x42, 0x54, 0xec, 0x4a, 0xf0, 0x16, 0x4c, 0x70, 0xab, 0x4a, 0xcb, 0x97, 0xc4, 0xf2, 0x55, 0x6e, - 0x55, 0xbd, 0xc5, 0x50, 0x56, 0x47, 0xfb, 0xb3, 0xea, 0x77, 0x40, 0x84, 0xf3, 0xa0, 0x03, 0x06, - 0xb2, 0x3b, 0xe7, 0x67, 0x57, 0xae, 0x17, 0x64, 0x79, 0x1f, 0x0a, 0xd1, 0xe6, 0x9d, 0xe2, 0x49, - 0x4f, 0xe6, 0x07, 0x9a, 0x03, 0xa8, 0x04, 0x42, 0xe1, 0x6d, 0xa2, 0x14, 0x92, 0x68, 0x2d, 0x60, - 0xa9, 0x2d, 0x12, 0xfb, 0xb7, 0x87, 0xfa, 0x37, 0x9e, 0xfe, 0x50, 0x1f, 0x9b, 0xb0, 0x16, 0xeb, - 0xb3, 0xa4, 0x5b, 0x06, 0xbf, 0x90, 0x4a, 0x69, 0x75, 0x58, 0x4f, 0xe3, 0xea, 0xa2, 0x22, 0xb3, - 0x12, 0xea, 0xf3, 0xee, 0x53, 0xbd, 0xe2, 0x5e, 0x60, 0x78, 0x49, 0xd5, 0x0b, 0xfb, 0xbb, 0xa8, - 0x18, 0xef, 0xc3, 0x66, 0xac, 0xcf, 0x87, 0x7a, 0xcd, 0xac, 0xea, 0xae, 0xdd, 0xf2, 0x43, 0x0c, - 0x7d, 0x2d, 0x4a, 0xff, 0xd7, 0xd2, 0x4c, 0x48, 0x57, 0xc8, 0xd4, 0x45, 0xb1, 0x5f, 0x0c, 0x9d, - 0x58, 0x07, 0x56, 0xd9, 0xb6, 0xaa, 0xa6, 0x65, 0xf4, 0x6d, 0x52, 0xda, 0x6b, 0x74, 0x08, 0x49, - 0x21, 0xc4, 0x23, 0x6a, 0x23, 0xbb, 0x03, 0xab, 0x92, 0x88, 0xce, 0x73, 0x90, 0x7d, 0x2e, 0xfd, - 0x38, 0x22, 0x0e, 0xb4, 0x9d, 0xa1, 0xaf, 0x3b, 0xb3, 0x9d, 0x15, 0x09, 0x19, 0x50, 0x0f, 0x7f, - 0xf2, 0xab, 0xb0, 0x1c, 0xc4, 0x27, 0xf5, 0x12, 0x1c, 0xef, 0x87, 0xb0, 0x92, 0x88, 0x24, 0x26, - 0xaf, 0x43, 0xa6, 0xe7, 0xc2, 0xaf, 0x8d, 0x8c, 0x0a, 0x55, 0x24, 0x8c, 0xd6, 0x56, 0x20, 0x4f, - 0x7e, 0x5c, 0x3e, 0xe8, 0x29, 0x9c, 0x32, 0xed, 0xad, 0x80, 0x7a, 0x24, 0x90, 0xf8, 0x48, 0x93, - 0xbb, 0xfd, 0x5d, 0x16, 0xae, 0x08, 0x03, 0xb8, 0x0f, 0x63, 0xde, 0xcc, 0x83, 0x37, 0x04, 0xc9, - 0xe1, 0x01, 0x4a, 0x9d, 0x19, 0x5e, 0xf0, 0x8c, 0x6b, 0xd9, 0xaf, 0x7e, 0xff, 0xe7, 0xfb, 0x4b, - 0xd7, 0x30, 0xc3, 0xba, 0xf3, 0x99, 0x37, 0x2d, 0xe1, 0xcf, 0x0a, 0xcc, 0xc6, 0x15, 0x0d, 0x37, - 0x7b, 0xf6, 0x52, 0xb4, 0x87, 0x5a, 0x48, 0x0b, 0x27, 0x52, 0x9b, 0x82, 0xd4, 0x0a, 0xe6, 0x05, - 0xa9, 0xaa, 0xee, 0xea, 0x8f, 0x7b, 0x39, 0x66, 0x2d, 0x2a, 0x18, 0x6b, 0x8b, 0x4c, 0x74, 0xf0, - 0x47, 0x05, 0xd4, 0xe8, 0xba, 0xe2, 0x46, 0xcf, 0x7b, 0x62, 0x9f, 0xa8, 0x2f, 0xa6, 0x03, 0x13, - 0xd1, 0xbc, 0x20, 0x3a, 0x8f, 0x73, 0xb1, 0x44, 0xf1, 0x27, 0x05, 0x6e, 0x46, 0xd6, 0x19, 0xd7, - 0xc3, 0x2e, 0xe3, 0xbb, 0x46, 0xdd, 0x48, 0x85, 0x25, 0x76, 0x6b, 0x82, 0xdd, 0x12, 0x2e, 0x4a, - 0xd9, 0x89, 0xe4, 0xb1, 0x9a, 0xb0, 0x82, 0xbf, 0x28, 0x30, 0x25, 0xdd, 0x75, 0x70, 0x39, 0xaa, - 0x76, 0xfd, 0x63, 0x88, 0xba, 0x92, 0x88, 0x23, 0x56, 0x8f, 0x04, 0xab, 0x4f, 0xb0, 0x24, 0x65, - 0x45, 0xbb, 0x1b, 0x13, 0xc7, 0x06, 0x6b, 0x87, 0x0e, 0x94, 0x0e, 0xe3, 0x56, 0x95, 0xb5, 0x83, - 0x13, 0xa4, 0xc3, 0x68, 0xef, 0x65, 0x6d, 0x7a, 0xe8, 0xe0, 0xaf, 0x0a, 0x2c, 0x26, 0xee, 0xc0, - 0xb8, 0x9d, 0x40, 0x55, 0xb2, 0xf3, 0xab, 0x3b, 0xe7, 0xd2, 0xa1, 0x50, 0x77, 0x45, 0xa8, 0x5b, - 0xc8, 0xe2, 0x42, 0x75, 0x24, 0x71, 0xfc, 0xa6, 0x80, 0x96, 0x3c, 0xc6, 0x60, 0x0a, 0x52, 0x43, - 0xcd, 0xab, 0xbe, 0x74, 0x3e, 0x25, 0x0a, 0xe5, 0x4d, 0x11, 0xca, 0x2e, 0xbe, 0x1c, 0x1f, 0x4a, - 0x48, 0xd6, 0xee, 0x3d, 0x77, 0xf0, 0x0f, 0x05, 0xe6, 0x62, 0x07, 0x17, 0x2c, 0x24, 0xd3, 0x0a, - 0x4f, 0x1b, 0x2a, 0x4b, 0x8d, 0xa7, 0x08, 0x0e, 0x44, 0x04, 0x1f, 0xe2, 0x5e, 0x7c, 0x04, 0xa1, - 0x8e, 0x1b, 0x6e, 0x3f, 0x5f, 0xde, 0x6b, 0x42, 0xfc, 0x37, 0xa6, 0x54, 0xbd, 0x99, 0x25, 0x4d, - 0xa9, 0x86, 0x26, 0xaa, 0x34, 0xa5, 0x1a, 0x1e, 0x8b, 0xb4, 0x4f, 0x45, 0xa0, 0x07, 0xf8, 0x71, - 0x7c, 0xa0, 0xbc, 0xab, 0x79, 0xee, 0x70, 0x3b, 0x80, 0xc3, 0x37, 0x64, 0x5c, 0xea, 0xdf, 0x35, - 0xa5, 0x37, 0x6c, 0xf5, 0x76, 0x3c, 0x88, 0xd8, 0xcf, 0x0a, 0xf6, 0xd3, 0x38, 0x29, 0xd8, 0x7b, - 0x17, 0xa1, 0xde, 0x4e, 0xfa, 0x8d, 0x02, 0x93, 0xb2, 0x7b, 0x31, 0xe6, 0x7b, 0xc6, 0x63, 0x6e, - 0xdc, 0xea, 0x72, 0x12, 0x8c, 0x58, 0xdc, 0x16, 0x2c, 0x72, 0x38, 0x2b, 0x63, 0x11, 0x1c, 0x3c, - 0x75, 0xb8, 0xd6, 0x77, 0x87, 0xc4, 0xdc, 0xa0, 0xf9, 0x81, 0x4d, 0x72, 0x3e, 0x72, 0x9d, 0xfc, - 0xde, 0x12, 0x7e, 0xa7, 0x30, 0x1b, 0xf6, 0x4b, 0x25, 0xc3, 0x1f, 0x14, 0x98, 0x96, 0x5f, 0x2b, - 0x71, 0x45, 0x96, 0x5b, 0xc9, 0xb5, 0x55, 0x5d, 0x4d, 0x06, 0x12, 0x95, 0x0d, 0x41, 0x25, 0x8f, - 0x4b, 0x92, 0x14, 0xb0, 0xb2, 0xd0, 0x60, 0x6d, 0x6f, 0x56, 0xec, 0xe0, 0xd7, 0x0a, 0x4c, 0x49, - 0x7f, 0x15, 0xe0, 0x72, 0x44, 0xc8, 0x03, 0xbf, 0x21, 0xc2, 0xe7, 0x47, 0xec, 0x3f, 0x07, 0x6d, - 0x4e, 0xf0, 0xba, 0x81, 0x53, 0x82, 0x57, 0xd0, 0xce, 0x7e, 0x4d, 0xbe, 0x84, 0xac, 0x64, 0xda, - 0xc5, 0x81, 0xe6, 0x93, 0xcf, 0xcb, 0x6a, 0x3e, 0x01, 0x45, 0x14, 0xa6, 0x05, 0x85, 0xff, 0xe3, - 0x75, 0x41, 0xe1, 0xd8, 0x47, 0x15, 0xef, 0x3f, 0x3b, 0xcd, 0x29, 0xcf, 0x4f, 0x73, 0xca, 0xdf, - 0xa7, 0x39, 0xe5, 0xdb, 0xb3, 0xdc, 0xc8, 0xf3, 0xb3, 0xdc, 0xc8, 0x9f, 0x67, 0xb9, 0x91, 0x47, - 0xcc, 0x30, 0xdd, 0xa3, 0xe3, 0x72, 0xa1, 0x62, 0xd7, 0x59, 0x85, 0xd7, 0xb8, 0xe3, 0x9a, 0xba, - 0xdd, 0x32, 0x82, 0xe7, 0x4d, 0xbd, 0xd1, 0x60, 0x4f, 0x59, 0xf0, 0xfb, 0xad, 0x3c, 0x26, 0xfe, - 0x87, 0xed, 0xfc, 0x17, 0x00, 0x00, 0xff, 0xff, 0xce, 0xda, 0x76, 0x7a, 0xbb, 0x13, 0x00, 0x00, -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// QueryClient is the client API for Query service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type QueryClient interface { - // Params Queries the current parameters for the qgb module - Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) - // DataCommitmentRequest Queries data commitment request by nonce. - DataCommitmentRequestByNonce(ctx context.Context, in *QueryDataCommitmentRequestByNonceRequest, opts ...grpc.CallOption) (*QueryDataCommitmentRequestByNonceResponse, error) - // LastDataCommitmentRequests Query the last data commitments. - LastDataCommitmentRequests(ctx context.Context, in *QueryLastDataCommitmentRequestsRequest, opts ...grpc.CallOption) (*QueryLastDataCommitmentRequestsResponse, error) - // LatestDataCommitmentNonce - LatestDataCommitmentNonce(ctx context.Context, in *QueryLatestDataCommitmentNonceRequest, opts ...grpc.CallOption) (*QueryLatestDataCommitmentNonceResponse, error) - // DataCommitmentConfirm Queries the data commitment confirm by the commitment - // and the validator address - DataCommitmentConfirm(ctx context.Context, in *QueryDataCommitmentConfirmRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmResponse, error) - // DataCommitmentConfirmsByValidator Queries data commitment confirms by - // validator address - DataCommitmentConfirmsByValidator(ctx context.Context, in *QueryDataCommitmentConfirmsByValidatorRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmsByValidatorResponse, error) - // DataCommitmentConfirms Queries data commitment confirms by the actual - // commitment - DataCommitmentConfirmsByCommitment(ctx context.Context, in *QueryDataCommitmentConfirmsByCommitmentRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmsByCommitmentResponse, error) - // DataCommitmentConfirmsByRange Queries data commitment confirms by a block - // range - DataCommitmentConfirmsByRange(ctx context.Context, in *QueryDataCommitmentConfirmsByRangeRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmsByRangeResponse, error) - // DataCommitmentConfirmsByExactRange Queries data commitment confirms by an - // exact block range - DataCommitmentConfirmsByExactRange(ctx context.Context, in *QueryDataCommitmentConfirmsByExactRangeRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmsByExactRangeResponse, error) - // LastValsetRequests queries for the latest valset requests - LastValsetRequests(ctx context.Context, in *QueryLastValsetRequestsRequest, opts ...grpc.CallOption) (*QueryLastValsetRequestsResponse, error) - // LastValsetRequests queries for the latest valset requests - ValsetRequestByNonce(ctx context.Context, in *QueryValsetRequestByNonceRequest, opts ...grpc.CallOption) (*QueryValsetRequestByNonceResponse, error) - // ValsetConfirm Queries ValSetConfirm - ValsetConfirm(ctx context.Context, in *QueryValsetConfirmRequest, opts ...grpc.CallOption) (*QueryValsetConfirmResponse, error) - // LastValsetBeforeHeight Queries last Valset before height - LastValsetBeforeHeight(ctx context.Context, in *QueryLastValsetBeforeHeightRequest, opts ...grpc.CallOption) (*QueryLastValsetBeforeHeightResponse, error) - // ValsetConfirmsByNonce - ValsetConfirmsByNonce(ctx context.Context, in *QueryValsetConfirmsByNonceRequest, opts ...grpc.CallOption) (*QueryValsetConfirmsByNonceResponse, error) - // LastUnbondingHeight - LastUnbondingHeight(ctx context.Context, in *QueryLastUnbondingHeightRequest, opts ...grpc.CallOption) (*QueryLastUnbondingHeightResponse, error) -} - -type queryClient struct { - cc grpc1.ClientConn -} - -func NewQueryClient(cc grpc1.ClientConn) QueryClient { - return &queryClient{cc} -} - -func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { - out := new(QueryParamsResponse) - err := c.cc.Invoke(ctx, "/qgb.Query/Params", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *queryClient) DataCommitmentRequestByNonce(ctx context.Context, in *QueryDataCommitmentRequestByNonceRequest, opts ...grpc.CallOption) (*QueryDataCommitmentRequestByNonceResponse, error) { - out := new(QueryDataCommitmentRequestByNonceResponse) - err := c.cc.Invoke(ctx, "/qgb.Query/DataCommitmentRequestByNonce", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *queryClient) LastDataCommitmentRequests(ctx context.Context, in *QueryLastDataCommitmentRequestsRequest, opts ...grpc.CallOption) (*QueryLastDataCommitmentRequestsResponse, error) { - out := new(QueryLastDataCommitmentRequestsResponse) - err := c.cc.Invoke(ctx, "/qgb.Query/LastDataCommitmentRequests", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *queryClient) LatestDataCommitmentNonce(ctx context.Context, in *QueryLatestDataCommitmentNonceRequest, opts ...grpc.CallOption) (*QueryLatestDataCommitmentNonceResponse, error) { - out := new(QueryLatestDataCommitmentNonceResponse) - err := c.cc.Invoke(ctx, "/qgb.Query/LatestDataCommitmentNonce", in, out, opts...) +func (c *queryClient) LatestAttestationNonce(ctx context.Context, in *QueryLatestAttestationNonceRequest, opts ...grpc.CallOption) (*QueryLatestAttestationNonceResponse, error) { + out := new(QueryLatestAttestationNonceResponse) + err := c.cc.Invoke(ctx, "/qgb.Query/LatestAttestationNonce", in, out, opts...) if err != nil { return nil, err } @@ -1658,15 +1154,6 @@ func (c *queryClient) DataCommitmentConfirm(ctx context.Context, in *QueryDataCo return out, nil } -func (c *queryClient) DataCommitmentConfirmsByValidator(ctx context.Context, in *QueryDataCommitmentConfirmsByValidatorRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmsByValidatorResponse, error) { - out := new(QueryDataCommitmentConfirmsByValidatorResponse) - err := c.cc.Invoke(ctx, "/qgb.Query/DataCommitmentConfirmsByValidator", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *queryClient) DataCommitmentConfirmsByCommitment(ctx context.Context, in *QueryDataCommitmentConfirmsByCommitmentRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmsByCommitmentResponse, error) { out := new(QueryDataCommitmentConfirmsByCommitmentResponse) err := c.cc.Invoke(ctx, "/qgb.Query/DataCommitmentConfirmsByCommitment", in, out, opts...) @@ -1676,15 +1163,6 @@ func (c *queryClient) DataCommitmentConfirmsByCommitment(ctx context.Context, in return out, nil } -func (c *queryClient) DataCommitmentConfirmsByRange(ctx context.Context, in *QueryDataCommitmentConfirmsByRangeRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmsByRangeResponse, error) { - out := new(QueryDataCommitmentConfirmsByRangeResponse) - err := c.cc.Invoke(ctx, "/qgb.Query/DataCommitmentConfirmsByRange", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *queryClient) DataCommitmentConfirmsByExactRange(ctx context.Context, in *QueryDataCommitmentConfirmsByExactRangeRequest, opts ...grpc.CallOption) (*QueryDataCommitmentConfirmsByExactRangeResponse, error) { out := new(QueryDataCommitmentConfirmsByExactRangeResponse) err := c.cc.Invoke(ctx, "/qgb.Query/DataCommitmentConfirmsByExactRange", in, out, opts...) @@ -1694,24 +1172,6 @@ func (c *queryClient) DataCommitmentConfirmsByExactRange(ctx context.Context, in return out, nil } -func (c *queryClient) LastValsetRequests(ctx context.Context, in *QueryLastValsetRequestsRequest, opts ...grpc.CallOption) (*QueryLastValsetRequestsResponse, error) { - out := new(QueryLastValsetRequestsResponse) - err := c.cc.Invoke(ctx, "/qgb.Query/LastValsetRequests", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *queryClient) ValsetRequestByNonce(ctx context.Context, in *QueryValsetRequestByNonceRequest, opts ...grpc.CallOption) (*QueryValsetRequestByNonceResponse, error) { - out := new(QueryValsetRequestByNonceResponse) - err := c.cc.Invoke(ctx, "/qgb.Query/ValsetRequestByNonce", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *queryClient) ValsetConfirm(ctx context.Context, in *QueryValsetConfirmRequest, opts ...grpc.CallOption) (*QueryValsetConfirmResponse, error) { out := new(QueryValsetConfirmResponse) err := c.cc.Invoke(ctx, "/qgb.Query/ValsetConfirm", in, out, opts...) @@ -1721,9 +1181,9 @@ func (c *queryClient) ValsetConfirm(ctx context.Context, in *QueryValsetConfirmR return out, nil } -func (c *queryClient) LastValsetBeforeHeight(ctx context.Context, in *QueryLastValsetBeforeHeightRequest, opts ...grpc.CallOption) (*QueryLastValsetBeforeHeightResponse, error) { - out := new(QueryLastValsetBeforeHeightResponse) - err := c.cc.Invoke(ctx, "/qgb.Query/LastValsetBeforeHeight", in, out, opts...) +func (c *queryClient) LastValsetRequestBeforeNonce(ctx context.Context, in *QueryLastValsetRequestBeforeNonceRequest, opts ...grpc.CallOption) (*QueryLastValsetRequestBeforeNonceResponse, error) { + out := new(QueryLastValsetRequestBeforeNonceResponse) + err := c.cc.Invoke(ctx, "/qgb.Query/LastValsetRequestBeforeNonce", in, out, opts...) if err != nil { return nil, err } @@ -1752,35 +1212,25 @@ func (c *queryClient) LastUnbondingHeight(ctx context.Context, in *QueryLastUnbo type QueryServer interface { // Params Queries the current parameters for the qgb module Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) - // DataCommitmentRequest Queries data commitment request by nonce. - DataCommitmentRequestByNonce(context.Context, *QueryDataCommitmentRequestByNonceRequest) (*QueryDataCommitmentRequestByNonceResponse, error) - // LastDataCommitmentRequests Query the last data commitments. - LastDataCommitmentRequests(context.Context, *QueryLastDataCommitmentRequestsRequest) (*QueryLastDataCommitmentRequestsResponse, error) - // LatestDataCommitmentNonce - LatestDataCommitmentNonce(context.Context, *QueryLatestDataCommitmentNonceRequest) (*QueryLatestDataCommitmentNonceResponse, error) + // AttestationRequestByNonce Queries attestation request by nonce. + AttestationRequestByNonce(context.Context, *QueryAttestationRequestByNonceRequest) (*QueryAttestationRequestByNonceResponse, error) + // LatestAttestationNonce Queries latest attestation nonce. + LatestAttestationNonce(context.Context, *QueryLatestAttestationNonceRequest) (*QueryLatestAttestationNonceResponse, error) // DataCommitmentConfirm Queries the data commitment confirm by the commitment // and the validator address DataCommitmentConfirm(context.Context, *QueryDataCommitmentConfirmRequest) (*QueryDataCommitmentConfirmResponse, error) - // DataCommitmentConfirmsByValidator Queries data commitment confirms by - // validator address - DataCommitmentConfirmsByValidator(context.Context, *QueryDataCommitmentConfirmsByValidatorRequest) (*QueryDataCommitmentConfirmsByValidatorResponse, error) // DataCommitmentConfirms Queries data commitment confirms by the actual // commitment DataCommitmentConfirmsByCommitment(context.Context, *QueryDataCommitmentConfirmsByCommitmentRequest) (*QueryDataCommitmentConfirmsByCommitmentResponse, error) - // DataCommitmentConfirmsByRange Queries data commitment confirms by a block - // range - DataCommitmentConfirmsByRange(context.Context, *QueryDataCommitmentConfirmsByRangeRequest) (*QueryDataCommitmentConfirmsByRangeResponse, error) // DataCommitmentConfirmsByExactRange Queries data commitment confirms by an // exact block range DataCommitmentConfirmsByExactRange(context.Context, *QueryDataCommitmentConfirmsByExactRangeRequest) (*QueryDataCommitmentConfirmsByExactRangeResponse, error) - // LastValsetRequests queries for the latest valset requests - LastValsetRequests(context.Context, *QueryLastValsetRequestsRequest) (*QueryLastValsetRequestsResponse, error) - // LastValsetRequests queries for the latest valset requests - ValsetRequestByNonce(context.Context, *QueryValsetRequestByNonceRequest) (*QueryValsetRequestByNonceResponse, error) // ValsetConfirm Queries ValSetConfirm ValsetConfirm(context.Context, *QueryValsetConfirmRequest) (*QueryValsetConfirmResponse, error) - // LastValsetBeforeHeight Queries last Valset before height - LastValsetBeforeHeight(context.Context, *QueryLastValsetBeforeHeightRequest) (*QueryLastValsetBeforeHeightResponse, error) + // LastValsetRequestBeforeNonce Queries last Valset request before nonce. + // And, even if the current nonce is a valset, if will return the previous + // one. + LastValsetRequestBeforeNonce(context.Context, *QueryLastValsetRequestBeforeNonceRequest) (*QueryLastValsetRequestBeforeNonceResponse, error) // ValsetConfirmsByNonce ValsetConfirmsByNonce(context.Context, *QueryValsetConfirmsByNonceRequest) (*QueryValsetConfirmsByNonceResponse, error) // LastUnbondingHeight @@ -1794,41 +1244,26 @@ type UnimplementedQueryServer struct { func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") } -func (*UnimplementedQueryServer) DataCommitmentRequestByNonce(ctx context.Context, req *QueryDataCommitmentRequestByNonceRequest) (*QueryDataCommitmentRequestByNonceResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DataCommitmentRequestByNonce not implemented") +func (*UnimplementedQueryServer) AttestationRequestByNonce(ctx context.Context, req *QueryAttestationRequestByNonceRequest) (*QueryAttestationRequestByNonceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AttestationRequestByNonce not implemented") } -func (*UnimplementedQueryServer) LastDataCommitmentRequests(ctx context.Context, req *QueryLastDataCommitmentRequestsRequest) (*QueryLastDataCommitmentRequestsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method LastDataCommitmentRequests not implemented") -} -func (*UnimplementedQueryServer) LatestDataCommitmentNonce(ctx context.Context, req *QueryLatestDataCommitmentNonceRequest) (*QueryLatestDataCommitmentNonceResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method LatestDataCommitmentNonce not implemented") +func (*UnimplementedQueryServer) LatestAttestationNonce(ctx context.Context, req *QueryLatestAttestationNonceRequest) (*QueryLatestAttestationNonceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method LatestAttestationNonce not implemented") } func (*UnimplementedQueryServer) DataCommitmentConfirm(ctx context.Context, req *QueryDataCommitmentConfirmRequest) (*QueryDataCommitmentConfirmResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DataCommitmentConfirm not implemented") } -func (*UnimplementedQueryServer) DataCommitmentConfirmsByValidator(ctx context.Context, req *QueryDataCommitmentConfirmsByValidatorRequest) (*QueryDataCommitmentConfirmsByValidatorResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DataCommitmentConfirmsByValidator not implemented") -} func (*UnimplementedQueryServer) DataCommitmentConfirmsByCommitment(ctx context.Context, req *QueryDataCommitmentConfirmsByCommitmentRequest) (*QueryDataCommitmentConfirmsByCommitmentResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DataCommitmentConfirmsByCommitment not implemented") } -func (*UnimplementedQueryServer) DataCommitmentConfirmsByRange(ctx context.Context, req *QueryDataCommitmentConfirmsByRangeRequest) (*QueryDataCommitmentConfirmsByRangeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DataCommitmentConfirmsByRange not implemented") -} func (*UnimplementedQueryServer) DataCommitmentConfirmsByExactRange(ctx context.Context, req *QueryDataCommitmentConfirmsByExactRangeRequest) (*QueryDataCommitmentConfirmsByExactRangeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DataCommitmentConfirmsByExactRange not implemented") } -func (*UnimplementedQueryServer) LastValsetRequests(ctx context.Context, req *QueryLastValsetRequestsRequest) (*QueryLastValsetRequestsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method LastValsetRequests not implemented") -} -func (*UnimplementedQueryServer) ValsetRequestByNonce(ctx context.Context, req *QueryValsetRequestByNonceRequest) (*QueryValsetRequestByNonceResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ValsetRequestByNonce not implemented") -} func (*UnimplementedQueryServer) ValsetConfirm(ctx context.Context, req *QueryValsetConfirmRequest) (*QueryValsetConfirmResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ValsetConfirm not implemented") } -func (*UnimplementedQueryServer) LastValsetBeforeHeight(ctx context.Context, req *QueryLastValsetBeforeHeightRequest) (*QueryLastValsetBeforeHeightResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method LastValsetBeforeHeight not implemented") +func (*UnimplementedQueryServer) LastValsetRequestBeforeNonce(ctx context.Context, req *QueryLastValsetRequestBeforeNonceRequest) (*QueryLastValsetRequestBeforeNonceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method LastValsetRequestBeforeNonce not implemented") } func (*UnimplementedQueryServer) ValsetConfirmsByNonce(ctx context.Context, req *QueryValsetConfirmsByNonceRequest) (*QueryValsetConfirmsByNonceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ValsetConfirmsByNonce not implemented") @@ -1859,143 +1294,89 @@ func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interf return interceptor(ctx, in, info, handler) } -func _Query_DataCommitmentRequestByNonce_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryDataCommitmentRequestByNonceRequest) +func _Query_AttestationRequestByNonce_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAttestationRequestByNonceRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).DataCommitmentRequestByNonce(ctx, in) + return srv.(QueryServer).AttestationRequestByNonce(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/qgb.Query/DataCommitmentRequestByNonce", + FullMethod: "/qgb.Query/AttestationRequestByNonce", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).DataCommitmentRequestByNonce(ctx, req.(*QueryDataCommitmentRequestByNonceRequest)) + return srv.(QueryServer).AttestationRequestByNonce(ctx, req.(*QueryAttestationRequestByNonceRequest)) } return interceptor(ctx, in, info, handler) } -func _Query_LastDataCommitmentRequests_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryLastDataCommitmentRequestsRequest) +func _Query_LatestAttestationNonce_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryLatestAttestationNonceRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).LastDataCommitmentRequests(ctx, in) + return srv.(QueryServer).LatestAttestationNonce(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/qgb.Query/LastDataCommitmentRequests", + FullMethod: "/qgb.Query/LatestAttestationNonce", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).LastDataCommitmentRequests(ctx, req.(*QueryLastDataCommitmentRequestsRequest)) + return srv.(QueryServer).LatestAttestationNonce(ctx, req.(*QueryLatestAttestationNonceRequest)) } return interceptor(ctx, in, info, handler) } -func _Query_LatestDataCommitmentNonce_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryLatestDataCommitmentNonceRequest) +func _Query_DataCommitmentConfirm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryDataCommitmentConfirmRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).LatestDataCommitmentNonce(ctx, in) + return srv.(QueryServer).DataCommitmentConfirm(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/qgb.Query/LatestDataCommitmentNonce", + FullMethod: "/qgb.Query/DataCommitmentConfirm", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).LatestDataCommitmentNonce(ctx, req.(*QueryLatestDataCommitmentNonceRequest)) + return srv.(QueryServer).DataCommitmentConfirm(ctx, req.(*QueryDataCommitmentConfirmRequest)) } return interceptor(ctx, in, info, handler) } -func _Query_DataCommitmentConfirm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryDataCommitmentConfirmRequest) +func _Query_DataCommitmentConfirmsByCommitment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryDataCommitmentConfirmsByCommitmentRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).DataCommitmentConfirm(ctx, in) + return srv.(QueryServer).DataCommitmentConfirmsByCommitment(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/qgb.Query/DataCommitmentConfirm", + FullMethod: "/qgb.Query/DataCommitmentConfirmsByCommitment", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).DataCommitmentConfirm(ctx, req.(*QueryDataCommitmentConfirmRequest)) + return srv.(QueryServer).DataCommitmentConfirmsByCommitment(ctx, req.(*QueryDataCommitmentConfirmsByCommitmentRequest)) } return interceptor(ctx, in, info, handler) } -func _Query_DataCommitmentConfirmsByValidator_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryDataCommitmentConfirmsByValidatorRequest) +func _Query_DataCommitmentConfirmsByExactRange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryDataCommitmentConfirmsByExactRangeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).DataCommitmentConfirmsByValidator(ctx, in) + return srv.(QueryServer).DataCommitmentConfirmsByExactRange(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/qgb.Query/DataCommitmentConfirmsByValidator", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).DataCommitmentConfirmsByValidator(ctx, req.(*QueryDataCommitmentConfirmsByValidatorRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Query_DataCommitmentConfirmsByCommitment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryDataCommitmentConfirmsByCommitmentRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).DataCommitmentConfirmsByCommitment(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/qgb.Query/DataCommitmentConfirmsByCommitment", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).DataCommitmentConfirmsByCommitment(ctx, req.(*QueryDataCommitmentConfirmsByCommitmentRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Query_DataCommitmentConfirmsByRange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryDataCommitmentConfirmsByRangeRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).DataCommitmentConfirmsByRange(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/qgb.Query/DataCommitmentConfirmsByRange", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).DataCommitmentConfirmsByRange(ctx, req.(*QueryDataCommitmentConfirmsByRangeRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Query_DataCommitmentConfirmsByExactRange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryDataCommitmentConfirmsByExactRangeRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).DataCommitmentConfirmsByExactRange(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/qgb.Query/DataCommitmentConfirmsByExactRange", + FullMethod: "/qgb.Query/DataCommitmentConfirmsByExactRange", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(QueryServer).DataCommitmentConfirmsByExactRange(ctx, req.(*QueryDataCommitmentConfirmsByExactRangeRequest)) @@ -2003,42 +1384,6 @@ func _Query_DataCommitmentConfirmsByExactRange_Handler(srv interface{}, ctx cont return interceptor(ctx, in, info, handler) } -func _Query_LastValsetRequests_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryLastValsetRequestsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).LastValsetRequests(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/qgb.Query/LastValsetRequests", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).LastValsetRequests(ctx, req.(*QueryLastValsetRequestsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Query_ValsetRequestByNonce_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryValsetRequestByNonceRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).ValsetRequestByNonce(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/qgb.Query/ValsetRequestByNonce", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).ValsetRequestByNonce(ctx, req.(*QueryValsetRequestByNonceRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _Query_ValsetConfirm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryValsetConfirmRequest) if err := dec(in); err != nil { @@ -2057,20 +1402,20 @@ func _Query_ValsetConfirm_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } -func _Query_LastValsetBeforeHeight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryLastValsetBeforeHeightRequest) +func _Query_LastValsetRequestBeforeNonce_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryLastValsetRequestBeforeNonceRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).LastValsetBeforeHeight(ctx, in) + return srv.(QueryServer).LastValsetRequestBeforeNonce(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/qgb.Query/LastValsetBeforeHeight", + FullMethod: "/qgb.Query/LastValsetRequestBeforeNonce", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).LastValsetBeforeHeight(ctx, req.(*QueryLastValsetBeforeHeightRequest)) + return srv.(QueryServer).LastValsetRequestBeforeNonce(ctx, req.(*QueryLastValsetRequestBeforeNonceRequest)) } return interceptor(ctx, in, info, handler) } @@ -2120,52 +1465,32 @@ var _Query_serviceDesc = grpc.ServiceDesc{ Handler: _Query_Params_Handler, }, { - MethodName: "DataCommitmentRequestByNonce", - Handler: _Query_DataCommitmentRequestByNonce_Handler, - }, - { - MethodName: "LastDataCommitmentRequests", - Handler: _Query_LastDataCommitmentRequests_Handler, + MethodName: "AttestationRequestByNonce", + Handler: _Query_AttestationRequestByNonce_Handler, }, { - MethodName: "LatestDataCommitmentNonce", - Handler: _Query_LatestDataCommitmentNonce_Handler, + MethodName: "LatestAttestationNonce", + Handler: _Query_LatestAttestationNonce_Handler, }, { MethodName: "DataCommitmentConfirm", Handler: _Query_DataCommitmentConfirm_Handler, }, - { - MethodName: "DataCommitmentConfirmsByValidator", - Handler: _Query_DataCommitmentConfirmsByValidator_Handler, - }, { MethodName: "DataCommitmentConfirmsByCommitment", Handler: _Query_DataCommitmentConfirmsByCommitment_Handler, }, - { - MethodName: "DataCommitmentConfirmsByRange", - Handler: _Query_DataCommitmentConfirmsByRange_Handler, - }, { MethodName: "DataCommitmentConfirmsByExactRange", Handler: _Query_DataCommitmentConfirmsByExactRange_Handler, }, - { - MethodName: "LastValsetRequests", - Handler: _Query_LastValsetRequests_Handler, - }, - { - MethodName: "ValsetRequestByNonce", - Handler: _Query_ValsetRequestByNonce_Handler, - }, { MethodName: "ValsetConfirm", Handler: _Query_ValsetConfirm_Handler, }, { - MethodName: "LastValsetBeforeHeight", - Handler: _Query_LastValsetBeforeHeight_Handler, + MethodName: "LastValsetRequestBeforeNonce", + Handler: _Query_LastValsetRequestBeforeNonce_Handler, }, { MethodName: "ValsetConfirmsByNonce", @@ -2236,7 +1561,7 @@ func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *QueryLastValsetRequestsRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryAttestationRequestByNonceRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2246,20 +1571,25 @@ func (m *QueryLastValsetRequestsRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryLastValsetRequestsRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryAttestationRequestByNonceRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryLastValsetRequestsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryAttestationRequestByNonceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l + if m.Nonce != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Nonce)) + i-- + dAtA[i] = 0x8 + } return len(dAtA) - i, nil } -func (m *QueryLastValsetRequestsResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryAttestationRequestByNonceResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2269,34 +1599,32 @@ func (m *QueryLastValsetRequestsResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryLastValsetRequestsResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryAttestationRequestByNonceResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryLastValsetRequestsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryAttestationRequestByNonceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Valsets) > 0 { - for iNdEx := len(m.Valsets) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Valsets[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) + if m.Attestation != nil { + { + size, err := m.Attestation.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err } - i-- - dAtA[i] = 0xa + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *QueryValsetRequestByNonceRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryLatestAttestationNonceRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2306,25 +1634,20 @@ func (m *QueryValsetRequestByNonceRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryValsetRequestByNonceRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryLatestAttestationNonceRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryValsetRequestByNonceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryLatestAttestationNonceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Nonce != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.Nonce)) - i-- - dAtA[i] = 0x8 - } return len(dAtA) - i, nil } -func (m *QueryValsetRequestByNonceResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryLatestAttestationNonceResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2334,27 +1657,20 @@ func (m *QueryValsetRequestByNonceResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryValsetRequestByNonceResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryLatestAttestationNonceResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryValsetRequestByNonceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryLatestAttestationNonceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Valset != nil { - { - size, err := m.Valset.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } + if m.Nonce != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Nonce)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } @@ -2494,7 +1810,7 @@ func (m *QueryValsetConfirmResponse) MarshalToSizedBuffer(dAtA []byte) (int, err return len(dAtA) - i, nil } -func (m *QueryLastValsetBeforeHeightRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryLastValsetRequestBeforeNonceRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2504,25 +1820,25 @@ func (m *QueryLastValsetBeforeHeightRequest) Marshal() (dAtA []byte, err error) return dAtA[:n], nil } -func (m *QueryLastValsetBeforeHeightRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryLastValsetRequestBeforeNonceRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryLastValsetBeforeHeightRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryLastValsetRequestBeforeNonceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Height != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.Height)) + if m.Nonce != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Nonce)) i-- dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *QueryLastValsetBeforeHeightResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryLastValsetRequestBeforeNonceResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2532,12 +1848,12 @@ func (m *QueryLastValsetBeforeHeightResponse) Marshal() (dAtA []byte, err error) return dAtA[:n], nil } -func (m *QueryLastValsetBeforeHeightResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryLastValsetRequestBeforeNonceResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryLastValsetBeforeHeightResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryLastValsetRequestBeforeNonceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2699,7 +2015,7 @@ func (m *QueryDataCommitmentConfirmsByCommitmentResponse) MarshalToSizedBuffer(d return len(dAtA) - i, nil } -func (m *QueryDataCommitmentConfirmsByRangeRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2709,12 +2025,12 @@ func (m *QueryDataCommitmentConfirmsByRangeRequest) Marshal() (dAtA []byte, err return dAtA[:n], nil } -func (m *QueryDataCommitmentConfirmsByRangeRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryDataCommitmentConfirmsByExactRangeRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryDataCommitmentConfirmsByRangeRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryDataCommitmentConfirmsByExactRangeRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2732,7 +2048,7 @@ func (m *QueryDataCommitmentConfirmsByRangeRequest) MarshalToSizedBuffer(dAtA [] return len(dAtA) - i, nil } -func (m *QueryDataCommitmentConfirmsByRangeResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryDataCommitmentConfirmsByExactRangeResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2742,12 +2058,12 @@ func (m *QueryDataCommitmentConfirmsByRangeResponse) Marshal() (dAtA []byte, err return dAtA[:n], nil } -func (m *QueryDataCommitmentConfirmsByRangeResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryDataCommitmentConfirmsByExactRangeResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryDataCommitmentConfirmsByRangeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryDataCommitmentConfirmsByExactRangeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2769,7 +2085,7 @@ func (m *QueryDataCommitmentConfirmsByRangeResponse) MarshalToSizedBuffer(dAtA [ return len(dAtA) - i, nil } -func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryLastUnbondingHeightRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2779,30 +2095,20 @@ func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Marshal() (dAtA []byte, return dAtA[:n], nil } -func (m *QueryDataCommitmentConfirmsByExactRangeRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryLastUnbondingHeightRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryDataCommitmentConfirmsByExactRangeRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryLastUnbondingHeightRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.EndBlock != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.EndBlock)) - i-- - dAtA[i] = 0x10 - } - if m.BeginBlock != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.BeginBlock)) - i-- - dAtA[i] = 0x8 - } return len(dAtA) - i, nil } -func (m *QueryDataCommitmentConfirmsByExactRangeResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryLastUnbondingHeightResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2812,373 +2118,235 @@ func (m *QueryDataCommitmentConfirmsByExactRangeResponse) Marshal() (dAtA []byte return dAtA[:n], nil } -func (m *QueryDataCommitmentConfirmsByExactRangeResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryLastUnbondingHeightResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryDataCommitmentConfirmsByExactRangeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryLastUnbondingHeightResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Confirms) > 0 { - for iNdEx := len(m.Confirms) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Confirms[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } + if m.Height != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *QueryDataCommitmentConfirmsByValidatorRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { + offset -= sovQuery(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ } - return dAtA[:n], nil + dAtA[offset] = uint8(v) + return base +} +func (m *QueryParamsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n } -func (m *QueryDataCommitmentConfirmsByValidatorRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *QueryParamsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Params.Size() + n += 1 + l + sovQuery(uint64(l)) + return n } -func (m *QueryDataCommitmentConfirmsByValidatorRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i +func (m *QueryAttestationRequestByNonceRequest) Size() (n int) { + if m == nil { + return 0 + } var l int _ = l - if len(m.Address) > 0 { - i -= len(m.Address) - copy(dAtA[i:], m.Address) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Address))) - i-- - dAtA[i] = 0xa + if m.Nonce != 0 { + n += 1 + sovQuery(uint64(m.Nonce)) } - return len(dAtA) - i, nil + return n } -func (m *QueryDataCommitmentConfirmsByValidatorResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *QueryAttestationRequestByNonceResponse) Size() (n int) { + if m == nil { + return 0 } - return dAtA[:n], nil + var l int + _ = l + if m.Attestation != nil { + l = m.Attestation.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n } -func (m *QueryDataCommitmentConfirmsByValidatorResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *QueryLatestAttestationNonceRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n } -func (m *QueryDataCommitmentConfirmsByValidatorResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i +func (m *QueryLatestAttestationNonceResponse) Size() (n int) { + if m == nil { + return 0 + } var l int _ = l - if len(m.Confirms) > 0 { - for iNdEx := len(m.Confirms) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Confirms[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *QueryLastUnbondingHeightRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *QueryLastUnbondingHeightRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryLastUnbondingHeightRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *QueryLastUnbondingHeightResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *QueryLastUnbondingHeightResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryLastUnbondingHeightResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Height != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.Height)) - i-- - dAtA[i] = 0x8 + if m.Nonce != 0 { + n += 1 + sovQuery(uint64(m.Nonce)) } - return len(dAtA) - i, nil + return n } -func (m *QueryDataCommitmentRequestByNonceRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *QueryValsetConfirmsByNonceRequest) Size() (n int) { + if m == nil { + return 0 } - return dAtA[:n], nil -} - -func (m *QueryDataCommitmentRequestByNonceRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryDataCommitmentRequestByNonceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i var l int _ = l if m.Nonce != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.Nonce)) - i-- - dAtA[i] = 0x8 + n += 1 + sovQuery(uint64(m.Nonce)) } - return len(dAtA) - i, nil + return n } -func (m *QueryDataCommitmentRequestByNonceResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *QueryValsetConfirmsByNonceResponse) Size() (n int) { + if m == nil { + return 0 } - return dAtA[:n], nil -} - -func (m *QueryDataCommitmentRequestByNonceResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryDataCommitmentRequestByNonceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i var l int _ = l - if m.Commitment != nil { - { - size, err := m.Commitment.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) + if len(m.Confirms) > 0 { + for _, e := range m.Confirms { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) } - i-- - dAtA[i] = 0xa } - return len(dAtA) - i, nil + return n } -func (m *QueryLastDataCommitmentRequestsRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *QueryValsetConfirmRequest) Size() (n int) { + if m == nil { + return 0 } - return dAtA[:n], nil -} - -func (m *QueryLastDataCommitmentRequestsRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryLastDataCommitmentRequestsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i var l int _ = l - return len(dAtA) - i, nil -} - -func (m *QueryLastDataCommitmentRequestsResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err + if m.Nonce != 0 { + n += 1 + sovQuery(uint64(m.Nonce)) } - return dAtA[:n], nil -} - -func (m *QueryLastDataCommitmentRequestsResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) + l = len(m.Address) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n } -func (m *QueryLastDataCommitmentRequestsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i +func (m *QueryValsetConfirmResponse) Size() (n int) { + if m == nil { + return 0 + } var l int _ = l - if len(m.Commitments) > 0 { - for iNdEx := len(m.Commitments) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Commitments[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } + if m.Confirm != nil { + l = m.Confirm.Size() + n += 1 + l + sovQuery(uint64(l)) } - return len(dAtA) - i, nil + return n } -func (m *QueryLatestDataCommitmentNonceRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *QueryLastValsetRequestBeforeNonceRequest) Size() (n int) { + if m == nil { + return 0 } - return dAtA[:n], nil -} - -func (m *QueryLatestDataCommitmentNonceRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryLatestDataCommitmentNonceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i var l int _ = l - return len(dAtA) - i, nil -} - -func (m *QueryLatestDataCommitmentNonceResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err + if m.Nonce != 0 { + n += 1 + sovQuery(uint64(m.Nonce)) } - return dAtA[:n], nil -} - -func (m *QueryLatestDataCommitmentNonceResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) + return n } -func (m *QueryLatestDataCommitmentNonceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i +func (m *QueryLastValsetRequestBeforeNonceResponse) Size() (n int) { + if m == nil { + return 0 + } var l int _ = l - if m.Nonce != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.Nonce)) - i-- - dAtA[i] = 0x8 + if m.Valset != nil { + l = m.Valset.Size() + n += 1 + l + sovQuery(uint64(l)) } - return len(dAtA) - i, nil + return n } -func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { - offset -= sovQuery(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *QueryParamsRequest) Size() (n int) { +func (m *QueryDataCommitmentConfirmRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l + if m.BeginBlock != 0 { + n += 1 + sovQuery(uint64(m.BeginBlock)) + } + if m.EndBlock != 0 { + n += 1 + sovQuery(uint64(m.EndBlock)) + } + l = len(m.Address) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } return n } -func (m *QueryParamsResponse) Size() (n int) { +func (m *QueryDataCommitmentConfirmResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = m.Params.Size() - n += 1 + l + sovQuery(uint64(l)) + if m.Confirm != nil { + l = m.Confirm.Size() + n += 1 + l + sovQuery(uint64(l)) + } return n } -func (m *QueryLastValsetRequestsRequest) Size() (n int) { +func (m *QueryDataCommitmentConfirmsByCommitmentRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l + l = len(m.Commitment) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } return n } -func (m *QueryLastValsetRequestsResponse) Size() (n int) { +func (m *QueryDataCommitmentConfirmsByCommitmentResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.Valsets) > 0 { - for _, e := range m.Valsets { + if len(m.Confirms) > 0 { + for _, e := range m.Confirms { l = e.Size() n += 1 + l + sovQuery(uint64(l)) } @@ -3186,203 +2354,7 @@ func (m *QueryLastValsetRequestsResponse) Size() (n int) { return n } -func (m *QueryValsetRequestByNonceRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Nonce != 0 { - n += 1 + sovQuery(uint64(m.Nonce)) - } - return n -} - -func (m *QueryValsetRequestByNonceResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Valset != nil { - l = m.Valset.Size() - n += 1 + l + sovQuery(uint64(l)) - } - return n -} - -func (m *QueryValsetConfirmsByNonceRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Nonce != 0 { - n += 1 + sovQuery(uint64(m.Nonce)) - } - return n -} - -func (m *QueryValsetConfirmsByNonceResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Confirms) > 0 { - for _, e := range m.Confirms { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) - } - } - return n -} - -func (m *QueryValsetConfirmRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Nonce != 0 { - n += 1 + sovQuery(uint64(m.Nonce)) - } - l = len(m.Address) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - return n -} - -func (m *QueryValsetConfirmResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Confirm != nil { - l = m.Confirm.Size() - n += 1 + l + sovQuery(uint64(l)) - } - return n -} - -func (m *QueryLastValsetBeforeHeightRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Height != 0 { - n += 1 + sovQuery(uint64(m.Height)) - } - return n -} - -func (m *QueryLastValsetBeforeHeightResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Valset != nil { - l = m.Valset.Size() - n += 1 + l + sovQuery(uint64(l)) - } - return n -} - -func (m *QueryDataCommitmentConfirmRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.BeginBlock != 0 { - n += 1 + sovQuery(uint64(m.BeginBlock)) - } - if m.EndBlock != 0 { - n += 1 + sovQuery(uint64(m.EndBlock)) - } - l = len(m.Address) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - return n -} - -func (m *QueryDataCommitmentConfirmResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Confirm != nil { - l = m.Confirm.Size() - n += 1 + l + sovQuery(uint64(l)) - } - return n -} - -func (m *QueryDataCommitmentConfirmsByCommitmentRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Commitment) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - return n -} - -func (m *QueryDataCommitmentConfirmsByCommitmentResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Confirms) > 0 { - for _, e := range m.Confirms { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) - } - } - return n -} - -func (m *QueryDataCommitmentConfirmsByRangeRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.BeginBlock != 0 { - n += 1 + sovQuery(uint64(m.BeginBlock)) - } - if m.EndBlock != 0 { - n += 1 + sovQuery(uint64(m.EndBlock)) - } - return n -} - -func (m *QueryDataCommitmentConfirmsByRangeResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Confirms) > 0 { - for _, e := range m.Confirms { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) - } - } - return n -} - -func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Size() (n int) { +func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Size() (n int) { if m == nil { return 0 } @@ -3392,914 +2364,54 @@ func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Size() (n int) { n += 1 + sovQuery(uint64(m.BeginBlock)) } if m.EndBlock != 0 { - n += 1 + sovQuery(uint64(m.EndBlock)) - } - return n -} - -func (m *QueryDataCommitmentConfirmsByExactRangeResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Confirms) > 0 { - for _, e := range m.Confirms { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) - } - } - return n -} - -func (m *QueryDataCommitmentConfirmsByValidatorRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Address) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - return n -} - -func (m *QueryDataCommitmentConfirmsByValidatorResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Confirms) > 0 { - for _, e := range m.Confirms { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) - } - } - return n -} - -func (m *QueryLastUnbondingHeightRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *QueryLastUnbondingHeightResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Height != 0 { - n += 1 + sovQuery(uint64(m.Height)) - } - return n -} - -func (m *QueryDataCommitmentRequestByNonceRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Nonce != 0 { - n += 1 + sovQuery(uint64(m.Nonce)) - } - return n -} - -func (m *QueryDataCommitmentRequestByNonceResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Commitment != nil { - l = m.Commitment.Size() - n += 1 + l + sovQuery(uint64(l)) - } - return n -} - -func (m *QueryLastDataCommitmentRequestsRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *QueryLastDataCommitmentRequestsResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Commitments) > 0 { - for _, e := range m.Commitments { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) - } - } - return n -} - -func (m *QueryLatestDataCommitmentNonceRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *QueryLatestDataCommitmentNonceResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Nonce != 0 { - n += 1 + sovQuery(uint64(m.Nonce)) - } - return n -} - -func sovQuery(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozQuery(x uint64) (n int) { - return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryLastValsetRequestsRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryLastValsetRequestsRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLastValsetRequestsRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryLastValsetRequestsResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryLastValsetRequestsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLastValsetRequestsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Valsets", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Valsets = append(m.Valsets, Valset{}) - if err := m.Valsets[len(m.Valsets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryValsetRequestByNonceRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryValsetRequestByNonceRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryValsetRequestByNonceRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) - } - m.Nonce = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Nonce |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryValsetRequestByNonceResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryValsetRequestByNonceResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryValsetRequestByNonceResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Valset", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Valset == nil { - m.Valset = &Valset{} - } - if err := m.Valset.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryValsetConfirmsByNonceRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryValsetConfirmsByNonceRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryValsetConfirmsByNonceRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) - } - m.Nonce = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Nonce |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryValsetConfirmsByNonceResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryValsetConfirmsByNonceResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryValsetConfirmsByNonceResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Confirms", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Confirms = append(m.Confirms, MsgValsetConfirm{}) - if err := m.Confirms[len(m.Confirms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryValsetConfirmRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryValsetConfirmRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryValsetConfirmRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) - } - m.Nonce = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Nonce |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Address = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryValsetConfirmResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryValsetConfirmResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryValsetConfirmResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Confirm", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Confirm == nil { - m.Confirm = &MsgValsetConfirm{} - } - if err := m.Confirm.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy + n += 1 + sovQuery(uint64(m.EndBlock)) + } + return n +} + +func (m *QueryDataCommitmentConfirmsByExactRangeResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Confirms) > 0 { + for _, e := range m.Confirms { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) } } + return n +} + +func (m *QueryLastUnbondingHeightRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} - if iNdEx > l { - return io.ErrUnexpectedEOF +func (m *QueryLastUnbondingHeightResponse) Size() (n int) { + if m == nil { + return 0 } - return nil + var l int + _ = l + if m.Height != 0 { + n += 1 + sovQuery(uint64(m.Height)) + } + return n +} + +func sovQuery(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozQuery(x uint64) (n int) { + return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *QueryLastValsetBeforeHeightRequest) Unmarshal(dAtA []byte) error { +func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4322,31 +2434,12 @@ func (m *QueryLastValsetBeforeHeightRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLastValsetBeforeHeightRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLastValsetBeforeHeightRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) - } - m.Height = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Height |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -4368,7 +2461,7 @@ func (m *QueryLastValsetBeforeHeightRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryLastValsetBeforeHeightResponse) Unmarshal(dAtA []byte) error { +func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4391,15 +2484,15 @@ func (m *QueryLastValsetBeforeHeightResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLastValsetBeforeHeightResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLastValsetBeforeHeightResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Valset", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4426,10 +2519,7 @@ func (m *QueryLastValsetBeforeHeightResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Valset == nil { - m.Valset = &Valset{} - } - if err := m.Valset.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4454,7 +2544,7 @@ func (m *QueryLastValsetBeforeHeightResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDataCommitmentConfirmRequest) Unmarshal(dAtA []byte) error { +func (m *QueryAttestationRequestByNonceRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4477,55 +2567,17 @@ func (m *QueryDataCommitmentConfirmRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryAttestationRequestByNonceRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryAttestationRequestByNonceRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType) - } - m.BeginBlock = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.BeginBlock |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType) - } - m.EndBlock = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.EndBlock |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) } - var stringLen uint64 + m.Nonce = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -4535,24 +2587,11 @@ func (m *QueryDataCommitmentConfirmRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.Nonce |= uint64(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Address = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -4574,7 +2613,7 @@ func (m *QueryDataCommitmentConfirmRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDataCommitmentConfirmResponse) Unmarshal(dAtA []byte) error { +func (m *QueryAttestationRequestByNonceResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4597,15 +2636,15 @@ func (m *QueryDataCommitmentConfirmResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryAttestationRequestByNonceResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryAttestationRequestByNonceResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Confirm", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Attestation", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4632,10 +2671,10 @@ func (m *QueryDataCommitmentConfirmResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Confirm == nil { - m.Confirm = &MsgDataCommitmentConfirm{} + if m.Attestation == nil { + m.Attestation = &types.Any{} } - if err := m.Confirm.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Attestation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4660,7 +2699,7 @@ func (m *QueryDataCommitmentConfirmResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDataCommitmentConfirmsByCommitmentRequest) Unmarshal(dAtA []byte) error { +func (m *QueryLatestAttestationNonceRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4683,44 +2722,12 @@ func (m *QueryDataCommitmentConfirmsByCommitmentRequest) Unmarshal(dAtA []byte) fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByCommitmentRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryLatestAttestationNonceRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByCommitmentRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryLatestAttestationNonceRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Commitment = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -4742,7 +2749,7 @@ func (m *QueryDataCommitmentConfirmsByCommitmentRequest) Unmarshal(dAtA []byte) } return nil } -func (m *QueryDataCommitmentConfirmsByCommitmentResponse) Unmarshal(dAtA []byte) error { +func (m *QueryLatestAttestationNonceResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4765,17 +2772,17 @@ func (m *QueryDataCommitmentConfirmsByCommitmentResponse) Unmarshal(dAtA []byte) fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByCommitmentResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryLatestAttestationNonceResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByCommitmentResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryLatestAttestationNonceResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Confirms", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) } - var msglen int + m.Nonce = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -4785,26 +2792,11 @@ func (m *QueryDataCommitmentConfirmsByCommitmentResponse) Unmarshal(dAtA []byte) } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.Nonce |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Confirms = append(m.Confirms, MsgDataCommitmentConfirm{}) - if err := m.Confirms[len(m.Confirms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -4826,7 +2818,7 @@ func (m *QueryDataCommitmentConfirmsByCommitmentResponse) Unmarshal(dAtA []byte) } return nil } -func (m *QueryDataCommitmentConfirmsByRangeRequest) Unmarshal(dAtA []byte) error { +func (m *QueryValsetConfirmsByNonceRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4849,36 +2841,17 @@ func (m *QueryDataCommitmentConfirmsByRangeRequest) Unmarshal(dAtA []byte) error fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByRangeRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryValsetConfirmsByNonceRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByRangeRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryValsetConfirmsByNonceRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType) - } - m.BeginBlock = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.BeginBlock |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) } - m.EndBlock = 0 + m.Nonce = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -4888,7 +2861,7 @@ func (m *QueryDataCommitmentConfirmsByRangeRequest) Unmarshal(dAtA []byte) error } b := dAtA[iNdEx] iNdEx++ - m.EndBlock |= uint64(b&0x7F) << shift + m.Nonce |= uint64(b&0x7F) << shift if b < 0x80 { break } @@ -4914,7 +2887,7 @@ func (m *QueryDataCommitmentConfirmsByRangeRequest) Unmarshal(dAtA []byte) error } return nil } -func (m *QueryDataCommitmentConfirmsByRangeResponse) Unmarshal(dAtA []byte) error { +func (m *QueryValsetConfirmsByNonceResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4937,10 +2910,10 @@ func (m *QueryDataCommitmentConfirmsByRangeResponse) Unmarshal(dAtA []byte) erro fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByRangeResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryValsetConfirmsByNonceResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByRangeResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryValsetConfirmsByNonceResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -4972,7 +2945,7 @@ func (m *QueryDataCommitmentConfirmsByRangeResponse) Unmarshal(dAtA []byte) erro if postIndex > l { return io.ErrUnexpectedEOF } - m.Confirms = append(m.Confirms, MsgDataCommitmentConfirm{}) + m.Confirms = append(m.Confirms, MsgValsetConfirm{}) if err := m.Confirms[len(m.Confirms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -4998,7 +2971,7 @@ func (m *QueryDataCommitmentConfirmsByRangeResponse) Unmarshal(dAtA []byte) erro } return nil } -func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Unmarshal(dAtA []byte) error { +func (m *QueryValsetConfirmRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5021,17 +2994,17 @@ func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Unmarshal(dAtA []byte) fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByExactRangeRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryValsetConfirmRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByExactRangeRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryValsetConfirmRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) } - m.BeginBlock = 0 + m.Nonce = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -5041,16 +3014,16 @@ func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Unmarshal(dAtA []byte) } b := dAtA[iNdEx] iNdEx++ - m.BeginBlock |= uint64(b&0x7F) << shift + m.Nonce |= uint64(b&0x7F) << shift if b < 0x80 { break } } case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) } - m.EndBlock = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -5060,11 +3033,24 @@ func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Unmarshal(dAtA []byte) } b := dAtA[iNdEx] iNdEx++ - m.EndBlock |= uint64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -5086,7 +3072,7 @@ func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Unmarshal(dAtA []byte) } return nil } -func (m *QueryDataCommitmentConfirmsByExactRangeResponse) Unmarshal(dAtA []byte) error { +func (m *QueryValsetConfirmResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5109,15 +3095,15 @@ func (m *QueryDataCommitmentConfirmsByExactRangeResponse) Unmarshal(dAtA []byte) fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByExactRangeResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryValsetConfirmResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByExactRangeResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryValsetConfirmResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Confirms", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Confirm", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5144,8 +3130,10 @@ func (m *QueryDataCommitmentConfirmsByExactRangeResponse) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - m.Confirms = append(m.Confirms, MsgDataCommitmentConfirm{}) - if err := m.Confirms[len(m.Confirms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Confirm == nil { + m.Confirm = &MsgValsetConfirm{} + } + if err := m.Confirm.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5170,7 +3158,7 @@ func (m *QueryDataCommitmentConfirmsByExactRangeResponse) Unmarshal(dAtA []byte) } return nil } -func (m *QueryDataCommitmentConfirmsByValidatorRequest) Unmarshal(dAtA []byte) error { +func (m *QueryLastValsetRequestBeforeNonceRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5193,17 +3181,17 @@ func (m *QueryDataCommitmentConfirmsByValidatorRequest) Unmarshal(dAtA []byte) e fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByValidatorRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryLastValsetRequestBeforeNonceRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByValidatorRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryLastValsetRequestBeforeNonceRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) } - var stringLen uint64 + m.Nonce = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -5213,24 +3201,11 @@ func (m *QueryDataCommitmentConfirmsByValidatorRequest) Unmarshal(dAtA []byte) e } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.Nonce |= uint64(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Address = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -5252,7 +3227,7 @@ func (m *QueryDataCommitmentConfirmsByValidatorRequest) Unmarshal(dAtA []byte) e } return nil } -func (m *QueryDataCommitmentConfirmsByValidatorResponse) Unmarshal(dAtA []byte) error { +func (m *QueryLastValsetRequestBeforeNonceResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5275,15 +3250,15 @@ func (m *QueryDataCommitmentConfirmsByValidatorResponse) Unmarshal(dAtA []byte) fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByValidatorResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryLastValsetRequestBeforeNonceResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentConfirmsByValidatorResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryLastValsetRequestBeforeNonceResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Confirms", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Valset", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5310,8 +3285,10 @@ func (m *QueryDataCommitmentConfirmsByValidatorResponse) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - m.Confirms = append(m.Confirms, MsgDataCommitmentConfirm{}) - if err := m.Confirms[len(m.Confirms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Valset == nil { + m.Valset = &Valset{} + } + if err := m.Valset.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5336,7 +3313,7 @@ func (m *QueryDataCommitmentConfirmsByValidatorResponse) Unmarshal(dAtA []byte) } return nil } -func (m *QueryLastUnbondingHeightRequest) Unmarshal(dAtA []byte) error { +func (m *QueryDataCommitmentConfirmRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5359,12 +3336,82 @@ func (m *QueryLastUnbondingHeightRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLastUnbondingHeightRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDataCommitmentConfirmRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLastUnbondingHeightRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDataCommitmentConfirmRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType) + } + m.BeginBlock = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BeginBlock |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType) + } + m.EndBlock = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EndBlock |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -5386,7 +3433,7 @@ func (m *QueryLastUnbondingHeightRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryLastUnbondingHeightResponse) Unmarshal(dAtA []byte) error { +func (m *QueryDataCommitmentConfirmResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5409,17 +3456,17 @@ func (m *QueryLastUnbondingHeightResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLastUnbondingHeightResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDataCommitmentConfirmResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLastUnbondingHeightResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDataCommitmentConfirmResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Confirm", wireType) } - m.Height = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -5429,11 +3476,28 @@ func (m *QueryLastUnbondingHeightResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Height |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Confirm == nil { + m.Confirm = &MsgDataCommitmentConfirm{} + } + if err := m.Confirm.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -5455,7 +3519,7 @@ func (m *QueryLastUnbondingHeightResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDataCommitmentRequestByNonceRequest) Unmarshal(dAtA []byte) error { +func (m *QueryDataCommitmentConfirmsByCommitmentRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5478,17 +3542,17 @@ func (m *QueryDataCommitmentRequestByNonceRequest) Unmarshal(dAtA []byte) error fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentRequestByNonceRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDataCommitmentConfirmsByCommitmentRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentRequestByNonceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDataCommitmentConfirmsByCommitmentRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) } - m.Nonce = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -5498,11 +3562,24 @@ func (m *QueryDataCommitmentRequestByNonceRequest) Unmarshal(dAtA []byte) error } b := dAtA[iNdEx] iNdEx++ - m.Nonce |= uint64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Commitment = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -5524,7 +3601,7 @@ func (m *QueryDataCommitmentRequestByNonceRequest) Unmarshal(dAtA []byte) error } return nil } -func (m *QueryDataCommitmentRequestByNonceResponse) Unmarshal(dAtA []byte) error { +func (m *QueryDataCommitmentConfirmsByCommitmentResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5547,15 +3624,15 @@ func (m *QueryDataCommitmentRequestByNonceResponse) Unmarshal(dAtA []byte) error fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDataCommitmentRequestByNonceResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDataCommitmentConfirmsByCommitmentResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDataCommitmentRequestByNonceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDataCommitmentConfirmsByCommitmentResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Commitment", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Confirms", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5582,10 +3659,8 @@ func (m *QueryDataCommitmentRequestByNonceResponse) Unmarshal(dAtA []byte) error if postIndex > l { return io.ErrUnexpectedEOF } - if m.Commitment == nil { - m.Commitment = &DataCommitment{} - } - if err := m.Commitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Confirms = append(m.Confirms, MsgDataCommitmentConfirm{}) + if err := m.Confirms[len(m.Confirms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5610,7 +3685,7 @@ func (m *QueryDataCommitmentRequestByNonceResponse) Unmarshal(dAtA []byte) error } return nil } -func (m *QueryLastDataCommitmentRequestsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryDataCommitmentConfirmsByExactRangeRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5633,12 +3708,50 @@ func (m *QueryLastDataCommitmentRequestsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLastDataCommitmentRequestsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDataCommitmentConfirmsByExactRangeRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLastDataCommitmentRequestsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDataCommitmentConfirmsByExactRangeRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType) + } + m.BeginBlock = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BeginBlock |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType) + } + m.EndBlock = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EndBlock |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -5660,7 +3773,7 @@ func (m *QueryLastDataCommitmentRequestsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryLastDataCommitmentRequestsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryDataCommitmentConfirmsByExactRangeResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5683,15 +3796,15 @@ func (m *QueryLastDataCommitmentRequestsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLastDataCommitmentRequestsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDataCommitmentConfirmsByExactRangeResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLastDataCommitmentRequestsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDataCommitmentConfirmsByExactRangeResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Commitments", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Confirms", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5718,8 +3831,8 @@ func (m *QueryLastDataCommitmentRequestsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Commitments = append(m.Commitments, DataCommitment{}) - if err := m.Commitments[len(m.Commitments)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Confirms = append(m.Confirms, MsgDataCommitmentConfirm{}) + if err := m.Confirms[len(m.Confirms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5744,7 +3857,7 @@ func (m *QueryLastDataCommitmentRequestsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryLatestDataCommitmentNonceRequest) Unmarshal(dAtA []byte) error { +func (m *QueryLastUnbondingHeightRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5767,10 +3880,10 @@ func (m *QueryLatestDataCommitmentNonceRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLatestDataCommitmentNonceRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryLastUnbondingHeightRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLatestDataCommitmentNonceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryLastUnbondingHeightRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -5794,7 +3907,7 @@ func (m *QueryLatestDataCommitmentNonceRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryLatestDataCommitmentNonceResponse) Unmarshal(dAtA []byte) error { +func (m *QueryLastUnbondingHeightResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5817,17 +3930,17 @@ func (m *QueryLatestDataCommitmentNonceResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLatestDataCommitmentNonceResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryLastUnbondingHeightResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLatestDataCommitmentNonceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryLastUnbondingHeightResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) } - m.Nonce = 0 + m.Height = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -5837,7 +3950,7 @@ func (m *QueryLatestDataCommitmentNonceResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Nonce |= uint64(b&0x7F) << shift + m.Height |= uint64(b&0x7F) << shift if b < 0x80 { break } diff --git a/x/qgb/types/query.pb.gw.go b/x/qgb/types/query.pb.gw.go index fbe525b6fb..ca183ee72c 100644 --- a/x/qgb/types/query.pb.gw.go +++ b/x/qgb/types/query.pb.gw.go @@ -49,8 +49,8 @@ func local_request_Query_Params_0(ctx context.Context, marshaler runtime.Marshal } -func request_Query_DataCommitmentRequestByNonce_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryDataCommitmentRequestByNonceRequest +func request_Query_AttestationRequestByNonce_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAttestationRequestByNonceRequest var metadata runtime.ServerMetadata var ( @@ -71,13 +71,13 @@ func request_Query_DataCommitmentRequestByNonce_0(ctx context.Context, marshaler return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nonce", err) } - msg, err := client.DataCommitmentRequestByNonce(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.AttestationRequestByNonce(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_Query_DataCommitmentRequestByNonce_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryDataCommitmentRequestByNonceRequest +func local_request_Query_AttestationRequestByNonce_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAttestationRequestByNonceRequest var metadata runtime.ServerMetadata var ( @@ -98,43 +98,25 @@ func local_request_Query_DataCommitmentRequestByNonce_0(ctx context.Context, mar return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nonce", err) } - msg, err := server.DataCommitmentRequestByNonce(ctx, &protoReq) + msg, err := server.AttestationRequestByNonce(ctx, &protoReq) return msg, metadata, err } -func request_Query_LastDataCommitmentRequests_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLastDataCommitmentRequestsRequest +func request_Query_LatestAttestationNonce_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryLatestAttestationNonceRequest var metadata runtime.ServerMetadata - msg, err := client.LastDataCommitmentRequests(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.LatestAttestationNonce(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_Query_LastDataCommitmentRequests_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLastDataCommitmentRequestsRequest +func local_request_Query_LatestAttestationNonce_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryLatestAttestationNonceRequest var metadata runtime.ServerMetadata - msg, err := server.LastDataCommitmentRequests(ctx, &protoReq) - return msg, metadata, err - -} - -func request_Query_LatestDataCommitmentNonce_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLatestDataCommitmentNonceRequest - var metadata runtime.ServerMetadata - - msg, err := client.LatestDataCommitmentNonce(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_Query_LatestDataCommitmentNonce_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLatestDataCommitmentNonceRequest - var metadata runtime.ServerMetadata - - msg, err := server.LatestDataCommitmentNonce(ctx, &protoReq) + msg, err := server.LatestAttestationNonce(ctx, &protoReq) return msg, metadata, err } @@ -237,60 +219,6 @@ func local_request_Query_DataCommitmentConfirm_0(ctx context.Context, marshaler } -func request_Query_DataCommitmentConfirmsByValidator_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryDataCommitmentConfirmsByValidatorRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["address"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "address") - } - - protoReq.Address, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "address", err) - } - - msg, err := client.DataCommitmentConfirmsByValidator(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_Query_DataCommitmentConfirmsByValidator_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryDataCommitmentConfirmsByValidatorRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["address"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "address") - } - - protoReq.Address, err = runtime.String(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "address", err) - } - - msg, err := server.DataCommitmentConfirmsByValidator(ctx, &protoReq) - return msg, metadata, err - -} - func request_Query_DataCommitmentConfirmsByCommitment_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryDataCommitmentConfirmsByCommitmentRequest var metadata runtime.ServerMetadata @@ -345,82 +273,6 @@ func local_request_Query_DataCommitmentConfirmsByCommitment_0(ctx context.Contex } -func request_Query_DataCommitmentConfirmsByRange_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryDataCommitmentConfirmsByRangeRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["begin_block"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "begin_block") - } - - protoReq.BeginBlock, err = runtime.Uint64(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "begin_block", err) - } - - val, ok = pathParams["end_block"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "end_block") - } - - protoReq.EndBlock, err = runtime.Uint64(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "end_block", err) - } - - msg, err := client.DataCommitmentConfirmsByRange(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_Query_DataCommitmentConfirmsByRange_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryDataCommitmentConfirmsByRangeRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["begin_block"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "begin_block") - } - - protoReq.BeginBlock, err = runtime.Uint64(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "begin_block", err) - } - - val, ok = pathParams["end_block"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "end_block") - } - - protoReq.EndBlock, err = runtime.Uint64(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "end_block", err) - } - - msg, err := server.DataCommitmentConfirmsByRange(ctx, &protoReq) - return msg, metadata, err - -} - func request_Query_DataCommitmentConfirmsByExactRange_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryDataCommitmentConfirmsByExactRangeRequest var metadata runtime.ServerMetadata @@ -497,78 +349,6 @@ func local_request_Query_DataCommitmentConfirmsByExactRange_0(ctx context.Contex } -func request_Query_LastValsetRequests_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLastValsetRequestsRequest - var metadata runtime.ServerMetadata - - msg, err := client.LastValsetRequests(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_Query_LastValsetRequests_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLastValsetRequestsRequest - var metadata runtime.ServerMetadata - - msg, err := server.LastValsetRequests(ctx, &protoReq) - return msg, metadata, err - -} - -func request_Query_ValsetRequestByNonce_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryValsetRequestByNonceRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["nonce"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nonce") - } - - protoReq.Nonce, err = runtime.Uint64(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nonce", err) - } - - msg, err := client.ValsetRequestByNonce(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_Query_ValsetRequestByNonce_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryValsetRequestByNonceRequest - var metadata runtime.ServerMetadata - - var ( - val string - ok bool - err error - _ = err - ) - - val, ok = pathParams["nonce"] - if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nonce") - } - - protoReq.Nonce, err = runtime.Uint64(val) - - if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nonce", err) - } - - msg, err := server.ValsetRequestByNonce(ctx, &protoReq) - return msg, metadata, err - -} - var ( filter_Query_ValsetConfirm_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -605,8 +385,8 @@ func local_request_Query_ValsetConfirm_0(ctx context.Context, marshaler runtime. } -func request_Query_LastValsetBeforeHeight_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLastValsetBeforeHeightRequest +func request_Query_LastValsetRequestBeforeNonce_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryLastValsetRequestBeforeNonceRequest var metadata runtime.ServerMetadata var ( @@ -616,24 +396,24 @@ func request_Query_LastValsetBeforeHeight_0(ctx context.Context, marshaler runti _ = err ) - val, ok = pathParams["height"] + val, ok = pathParams["nonce"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "height") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nonce") } - protoReq.Height, err = runtime.Uint64(val) + protoReq.Nonce, err = runtime.Uint64(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "height", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nonce", err) } - msg, err := client.LastValsetBeforeHeight(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.LastValsetRequestBeforeNonce(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_Query_LastValsetBeforeHeight_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLastValsetBeforeHeightRequest +func local_request_Query_LastValsetRequestBeforeNonce_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryLastValsetRequestBeforeNonceRequest var metadata runtime.ServerMetadata var ( @@ -643,18 +423,18 @@ func local_request_Query_LastValsetBeforeHeight_0(ctx context.Context, marshaler _ = err ) - val, ok = pathParams["height"] + val, ok = pathParams["nonce"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "height") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nonce") } - protoReq.Height, err = runtime.Uint64(val) + protoReq.Nonce, err = runtime.Uint64(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "height", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nonce", err) } - msg, err := server.LastValsetBeforeHeight(ctx, &protoReq) + msg, err := server.LastValsetRequestBeforeNonce(ctx, &protoReq) return msg, metadata, err } @@ -757,27 +537,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) - mux.Handle("GET", pattern_Query_DataCommitmentRequestByNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_Query_DataCommitmentRequestByNonce_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_DataCommitmentRequestByNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_Query_LastDataCommitmentRequests_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_AttestationRequestByNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -786,18 +546,18 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_Query_LastDataCommitmentRequests_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_Query_AttestationRequestByNonce_0(rctx, inboundMarshaler, server, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_Query_LastDataCommitmentRequests_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_AttestationRequestByNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_Query_LatestDataCommitmentNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_LatestAttestationNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -806,14 +566,14 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_Query_LatestDataCommitmentNonce_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_Query_LatestAttestationNonce_0(rctx, inboundMarshaler, server, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_Query_LatestDataCommitmentNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_LatestAttestationNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -837,26 +597,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) - mux.Handle("GET", pattern_Query_DataCommitmentConfirmsByValidator_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_Query_DataCommitmentConfirmsByValidator_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_DataCommitmentConfirmsByValidator_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("GET", pattern_Query_DataCommitmentConfirmsByCommitment_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -877,26 +617,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) - mux.Handle("GET", pattern_Query_DataCommitmentConfirmsByRange_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_Query_DataCommitmentConfirmsByRange_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_DataCommitmentConfirmsByRange_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("GET", pattern_Query_DataCommitmentConfirmsByExactRange_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -917,46 +637,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) - mux.Handle("GET", pattern_Query_LastValsetRequests_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_Query_LastValsetRequests_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_LastValsetRequests_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_Query_ValsetRequestByNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_Query_ValsetRequestByNonce_0(rctx, inboundMarshaler, server, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_ValsetRequestByNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("GET", pattern_Query_ValsetConfirm_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -977,7 +657,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) - mux.Handle("GET", pattern_Query_LastValsetBeforeHeight_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_LastValsetRequestBeforeNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -986,14 +666,14 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_Query_LastValsetBeforeHeight_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_Query_LastValsetRequestBeforeNonce_0(rctx, inboundMarshaler, server, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_Query_LastValsetBeforeHeight_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_LastValsetRequestBeforeNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1098,7 +778,7 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) - mux.Handle("GET", pattern_Query_DataCommitmentRequestByNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_AttestationRequestByNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -1107,18 +787,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_Query_DataCommitmentRequestByNonce_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_Query_AttestationRequestByNonce_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_Query_DataCommitmentRequestByNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_AttestationRequestByNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_Query_LastDataCommitmentRequests_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_LatestAttestationNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -1127,34 +807,14 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_Query_LastDataCommitmentRequests_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_Query_LatestAttestationNonce_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_Query_LastDataCommitmentRequests_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_Query_LatestDataCommitmentNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_Query_LatestDataCommitmentNonce_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_LatestDataCommitmentNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_LatestAttestationNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1178,26 +838,6 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) - mux.Handle("GET", pattern_Query_DataCommitmentConfirmsByValidator_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_Query_DataCommitmentConfirmsByValidator_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_DataCommitmentConfirmsByValidator_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("GET", pattern_Query_DataCommitmentConfirmsByCommitment_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1218,26 +858,6 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) - mux.Handle("GET", pattern_Query_DataCommitmentConfirmsByRange_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_Query_DataCommitmentConfirmsByRange_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_DataCommitmentConfirmsByRange_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("GET", pattern_Query_DataCommitmentConfirmsByExactRange_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1258,46 +878,6 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) - mux.Handle("GET", pattern_Query_LastValsetRequests_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_Query_LastValsetRequests_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_LastValsetRequests_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_Query_ValsetRequestByNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_Query_ValsetRequestByNonce_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Query_ValsetRequestByNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("GET", pattern_Query_ValsetConfirm_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1318,7 +898,7 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) - mux.Handle("GET", pattern_Query_LastValsetBeforeHeight_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_LastValsetRequestBeforeNonce_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -1327,14 +907,14 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_Query_LastValsetBeforeHeight_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_Query_LastValsetRequestBeforeNonce_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_Query_LastValsetBeforeHeight_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_LastValsetRequestBeforeNonce_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1384,29 +964,19 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie var ( pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"qgb", "params"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_Query_DataCommitmentRequestByNonce_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"qgb", "data_commitment", "requests", "nonce"}, "", runtime.AssumeColonVerbOpt(true))) - - pattern_Query_LastDataCommitmentRequests_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgb", "data_commitment", "requests"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_AttestationRequestByNonce_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"qgb", "attestations", "requests", "nonce"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_Query_LatestDataCommitmentNonce_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"qgb", "data_commitment", "nonce", "latest"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_LatestAttestationNonce_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"qgb", "attestations", "nonce", "latest"}, "", runtime.AssumeColonVerbOpt(true))) pattern_Query_DataCommitmentConfirm_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7, 1, 0, 4, 1, 5, 7}, []string{"qgb", "data_commitment", "confirm", "begin", "begin_block", "end", "end_block", "address"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_Query_DataCommitmentConfirmsByValidator_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"qgb", "data_commitment", "confirms", "address"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_Query_DataCommitmentConfirmsByCommitment_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3}, []string{"qgb", "data_commitment", "confirms", "commitment"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_Query_DataCommitmentConfirmsByRange_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 4}, []string{"qgb", "data_commitment", "confirms", "begin_block", "end_block"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_Query_DataCommitmentConfirmsByExactRange_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 5}, []string{"qgb", "data_commitment", "confirms", "exact", "begin_block", "end_block"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_Query_LastValsetRequests_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgb", "valset", "requests"}, "", runtime.AssumeColonVerbOpt(true))) - - pattern_Query_ValsetRequestByNonce_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"qgb", "valset", "requests", "nonce"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_Query_ValsetConfirm_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgb", "valset", "confirm"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_Query_LastValsetBeforeHeight_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"qgb", "valset", "request", "before", "height"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_LastValsetRequestBeforeNonce_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"qgb", "valset", "request", "before", "nonce"}, "", runtime.AssumeColonVerbOpt(true))) pattern_Query_ValsetConfirmsByNonce_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"qgb", "confirms", "nonce"}, "", runtime.AssumeColonVerbOpt(true))) @@ -1416,29 +986,19 @@ var ( var ( forward_Query_Params_0 = runtime.ForwardResponseMessage - forward_Query_DataCommitmentRequestByNonce_0 = runtime.ForwardResponseMessage + forward_Query_AttestationRequestByNonce_0 = runtime.ForwardResponseMessage - forward_Query_LastDataCommitmentRequests_0 = runtime.ForwardResponseMessage - - forward_Query_LatestDataCommitmentNonce_0 = runtime.ForwardResponseMessage + forward_Query_LatestAttestationNonce_0 = runtime.ForwardResponseMessage forward_Query_DataCommitmentConfirm_0 = runtime.ForwardResponseMessage - forward_Query_DataCommitmentConfirmsByValidator_0 = runtime.ForwardResponseMessage - forward_Query_DataCommitmentConfirmsByCommitment_0 = runtime.ForwardResponseMessage - forward_Query_DataCommitmentConfirmsByRange_0 = runtime.ForwardResponseMessage - forward_Query_DataCommitmentConfirmsByExactRange_0 = runtime.ForwardResponseMessage - forward_Query_LastValsetRequests_0 = runtime.ForwardResponseMessage - - forward_Query_ValsetRequestByNonce_0 = runtime.ForwardResponseMessage - forward_Query_ValsetConfirm_0 = runtime.ForwardResponseMessage - forward_Query_LastValsetBeforeHeight_0 = runtime.ForwardResponseMessage + forward_Query_LastValsetRequestBeforeNonce_0 = runtime.ForwardResponseMessage forward_Query_ValsetConfirmsByNonce_0 = runtime.ForwardResponseMessage diff --git a/x/qgb/types/types.pb.go b/x/qgb/types/types.pb.go index 3bb76ff1db..982ec7cc4e 100644 --- a/x/qgb/types/types.pb.go +++ b/x/qgb/types/types.pb.go @@ -7,6 +7,7 @@ import ( fmt "fmt" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" + _ "github.com/regen-network/cosmos-proto" io "io" math "math" math_bits "math/bits" @@ -23,7 +24,6 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -// TODO can this also be deleted ? // BridgeValidator represents a validator's ETH address and its power type BridgeValidator struct { // Voting power of the validator. @@ -83,7 +83,8 @@ func (m *BridgeValidator) GetEthereumAddress() string { // maintains an ETH key to sign messages, these are used to check signatures on // ETH because of the significant gas savings type Valset struct { - // Unique number referencing the `ValSet`. + // Universal nonce defined under: + // https://github.com/celestiaorg/celestia-app/pull/464 Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` // List of BridgeValidator containing the current validator set. Members []BridgeValidator `protobuf:"bytes,2,rep,name=members,proto3" json:"members"` @@ -151,7 +152,8 @@ func (m *Valset) GetHeight() uint64 { // inside the state machine and it doesn't make sense to ask tendermint for the // commitment there. type DataCommitment struct { - // Unique number referencing the `DataCommitment`. + // Universal nonce defined under: + // https://github.com/celestiaorg/celestia-app/pull/464 Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` // First block defining the ordered set of blocks used to create the // commitment. @@ -224,27 +226,30 @@ func init() { func init() { proto.RegisterFile("qgb/types.proto", fileDescriptor_4b33a58818ab2113) } var fileDescriptor_4b33a58818ab2113 = []byte{ - // 314 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0xb1, 0x4e, 0xc3, 0x30, - 0x14, 0x45, 0x13, 0x5a, 0x0a, 0x75, 0x25, 0x8a, 0xa2, 0x0a, 0x55, 0x20, 0xb9, 0x55, 0xa7, 0x32, - 0x10, 0x4b, 0xc0, 0x0f, 0x10, 0x58, 0x58, 0x33, 0x74, 0x60, 0xa9, 0xec, 0xf8, 0xc9, 0xb1, 0x88, - 0xed, 0xd4, 0x71, 0x05, 0xfc, 0x05, 0x9f, 0xd5, 0xb1, 0x23, 0x13, 0x42, 0xed, 0x8f, 0xa0, 0x38, - 0x6d, 0x07, 0x24, 0xb6, 0x77, 0xef, 0xb5, 0xce, 0xbb, 0xf2, 0x43, 0xfd, 0x85, 0x60, 0xc4, 0x7d, - 0x94, 0x50, 0xc5, 0xa5, 0x35, 0xce, 0x44, 0xad, 0x85, 0x60, 0x97, 0x03, 0x61, 0x84, 0xf1, 0x9a, - 0xd4, 0x53, 0x13, 0x4d, 0x52, 0xd4, 0x4f, 0xac, 0xe4, 0x02, 0x66, 0xb4, 0x90, 0x9c, 0x3a, 0x63, - 0xa3, 0x01, 0x3a, 0x2e, 0xcd, 0x1b, 0xd8, 0x61, 0x38, 0x0e, 0xa7, 0xed, 0xb4, 0x11, 0xd1, 0x35, - 0x3a, 0x07, 0x97, 0x83, 0x85, 0xa5, 0x9a, 0x53, 0xce, 0x2d, 0x54, 0xd5, 0xf0, 0x68, 0x1c, 0x4e, - 0xbb, 0x69, 0x7f, 0xef, 0x3f, 0x34, 0xf6, 0xa4, 0x40, 0x9d, 0x19, 0x2d, 0x2a, 0x70, 0x35, 0x4a, - 0x1b, 0x9d, 0xc1, 0x1e, 0xe5, 0x45, 0x74, 0x8f, 0x4e, 0x14, 0x28, 0x06, 0xb6, 0x26, 0xb4, 0xa6, - 0xbd, 0xdb, 0x41, 0xbc, 0x10, 0x2c, 0xfe, 0xd3, 0x23, 0x69, 0xaf, 0xbe, 0x47, 0x41, 0xba, 0x7f, - 0x1a, 0x5d, 0xa0, 0x4e, 0x0e, 0x52, 0xe4, 0x6e, 0xd8, 0xf2, 0xb0, 0x9d, 0x9a, 0x70, 0x74, 0xf6, - 0x44, 0x1d, 0x7d, 0x34, 0x4a, 0x49, 0xa7, 0x40, 0xff, 0xb7, 0x75, 0x84, 0x7a, 0x0c, 0x84, 0xd4, - 0x73, 0x56, 0x98, 0xec, 0xd5, 0x77, 0x6f, 0xa7, 0xc8, 0x5b, 0x49, 0xed, 0x44, 0x57, 0xa8, 0x0b, - 0x9a, 0xef, 0xe2, 0x66, 0xc7, 0x29, 0x68, 0xee, 0xc3, 0xe4, 0x79, 0xb5, 0xc1, 0xe1, 0x7a, 0x83, - 0xc3, 0x9f, 0x0d, 0x0e, 0x3f, 0xb7, 0x38, 0x58, 0x6f, 0x71, 0xf0, 0xb5, 0xc5, 0xc1, 0x0b, 0x11, - 0xd2, 0xe5, 0x4b, 0x16, 0x67, 0x46, 0x91, 0x0c, 0x0a, 0xa8, 0x9c, 0xa4, 0xc6, 0x8a, 0xc3, 0x7c, - 0x43, 0xcb, 0x92, 0xbc, 0x93, 0xc3, 0x4d, 0x58, 0xc7, 0xff, 0xfc, 0xdd, 0x6f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xa3, 0xaf, 0x8e, 0x72, 0xa7, 0x01, 0x00, 0x00, + // 357 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0xb1, 0x6f, 0xda, 0x40, + 0x14, 0xc6, 0xed, 0x42, 0x69, 0x39, 0xa4, 0x52, 0xb9, 0xa8, 0xa5, 0x54, 0x32, 0x88, 0x89, 0x0e, + 0xd8, 0x52, 0x9b, 0x29, 0x1b, 0x4e, 0x16, 0x56, 0x0f, 0x0c, 0x59, 0xd0, 0x9d, 0xfd, 0x74, 0x3e, + 0xc5, 0xe7, 0xb3, 0xef, 0x1e, 0x4a, 0x32, 0x64, 0xcc, 0x9e, 0x3f, 0x26, 0x7f, 0x04, 0x23, 0xca, + 0x94, 0x29, 0x8a, 0xe0, 0x1f, 0x89, 0x6c, 0x03, 0x43, 0x24, 0xb6, 0xf7, 0x7d, 0xbf, 0xd3, 0xf7, + 0xde, 0xe9, 0x23, 0xdd, 0x82, 0x33, 0x1f, 0xef, 0x72, 0x30, 0x5e, 0xae, 0x15, 0x2a, 0xa7, 0x51, + 0x70, 0x36, 0xe8, 0x71, 0xc5, 0x55, 0xa5, 0xfd, 0x72, 0xaa, 0xd1, 0xe0, 0x77, 0xa4, 0x8c, 0x54, + 0x66, 0x59, 0x83, 0x5a, 0xd4, 0x68, 0x1c, 0x92, 0x6e, 0xa0, 0x45, 0xcc, 0x61, 0x41, 0x53, 0x11, + 0x53, 0x54, 0xda, 0xe9, 0x91, 0xcf, 0xb9, 0xba, 0x01, 0xdd, 0xb7, 0x47, 0xf6, 0xa4, 0x19, 0xd6, + 0xc2, 0xf9, 0x4b, 0xbe, 0x03, 0x26, 0xa0, 0x61, 0x25, 0x97, 0x34, 0x8e, 0x35, 0x18, 0xd3, 0xff, + 0x34, 0xb2, 0x27, 0xed, 0xb0, 0x7b, 0xf0, 0x67, 0xb5, 0x3d, 0x7e, 0xb0, 0x49, 0x6b, 0x41, 0x53, + 0x03, 0x58, 0x66, 0x65, 0x2a, 0x8b, 0xe0, 0x90, 0x55, 0x09, 0xe7, 0x8c, 0x7c, 0x91, 0x20, 0x19, + 0xe8, 0x32, 0xa2, 0x31, 0xe9, 0xfc, 0xeb, 0x79, 0x05, 0x67, 0xde, 0x87, 0x43, 0x82, 0xe6, 0xfa, + 0x75, 0x68, 0x85, 0x87, 0xa7, 0xce, 0x4f, 0xd2, 0x4a, 0x40, 0xf0, 0x04, 0xfb, 0x8d, 0x2a, 0x6c, + 0xaf, 0xce, 0x7f, 0x3d, 0x3f, 0x4d, 0x7f, 0xcc, 0x10, 0xc1, 0x20, 0x45, 0xa1, 0xb2, 0x10, 0x8a, + 0x15, 0x18, 0x9c, 0x8f, 0xef, 0xc9, 0xb7, 0x4b, 0x8a, 0xf4, 0x42, 0x49, 0x29, 0x50, 0x42, 0x76, + 0xea, 0x9c, 0x21, 0xe9, 0x30, 0xe0, 0x22, 0x5b, 0xb2, 0x54, 0x45, 0xd7, 0xd5, 0xaf, 0x9a, 0x21, + 0xa9, 0xac, 0xa0, 0x74, 0x9c, 0x3f, 0xa4, 0x0d, 0x59, 0xbc, 0xc7, 0xf5, 0xf2, 0xaf, 0x90, 0xc5, + 0x15, 0x3c, 0xb9, 0x3e, 0x98, 0xaf, 0xb7, 0xae, 0xbd, 0xd9, 0xba, 0xf6, 0xdb, 0xd6, 0xb5, 0x1f, + 0x77, 0xae, 0xb5, 0xd9, 0xb9, 0xd6, 0xcb, 0xce, 0xb5, 0xae, 0x7c, 0x2e, 0x30, 0x59, 0x31, 0x2f, + 0x52, 0xd2, 0x8f, 0x20, 0x05, 0x83, 0x82, 0x2a, 0xcd, 0x8f, 0xf3, 0x94, 0xe6, 0xb9, 0x7f, 0xeb, + 0x1f, 0x1b, 0x66, 0xad, 0xaa, 0xac, 0xff, 0xef, 0x01, 0x00, 0x00, 0xff, 0xff, 0x11, 0x58, 0x15, + 0xb4, 0xf5, 0x01, 0x00, 0x00, } func (m *BridgeValidator) Marshal() (dAtA []byte, err error) { diff --git a/x/qgb/types/types_test.go b/x/qgb/types/types_test.go index 9399314f1e..d511a85e6e 100644 --- a/x/qgb/types/types_test.go +++ b/x/qgb/types/types_test.go @@ -1,7 +1,8 @@ -package types +package types_test import ( "bytes" + "github.com/celestiaorg/celestia-app/x/qgb/types" gethcommon "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/assert" mrand "math/rand" @@ -10,17 +11,17 @@ import ( func TestValsetPowerDiff(t *testing.T) { specs := map[string]struct { - start BridgeValidators - diff BridgeValidators + start types.BridgeValidators + diff types.BridgeValidators exp float64 }{ "no diff": { - start: BridgeValidators{ + start: types.BridgeValidators{ {Power: 1, EthereumAddress: "0x479FFc856Cdfa0f5D1AE6Fa61915b01351A7773D"}, {Power: 2, EthereumAddress: "0x8E91960d704Df3fF24ECAb78AB9df1B5D9144140"}, {Power: 3, EthereumAddress: "0xF14879a175A2F1cEFC7c616f35b6d9c2b0Fd8326"}, }, - diff: BridgeValidators{ + diff: types.BridgeValidators{ {Power: 1, EthereumAddress: "0x479FFc856Cdfa0f5D1AE6Fa61915b01351A7773D"}, {Power: 2, EthereumAddress: "0x8E91960d704Df3fF24ECAb78AB9df1B5D9144140"}, {Power: 3, EthereumAddress: "0xF14879a175A2F1cEFC7c616f35b6d9c2b0Fd8326"}, @@ -28,12 +29,12 @@ func TestValsetPowerDiff(t *testing.T) { exp: 0.0, }, "one": { - start: BridgeValidators{ + start: types.BridgeValidators{ {Power: 1073741823, EthereumAddress: "0x479FFc856Cdfa0f5D1AE6Fa61915b01351A7773D"}, {Power: 1073741823, EthereumAddress: "0x8E91960d704Df3fF24ECAb78AB9df1B5D9144140"}, {Power: 2147483646, EthereumAddress: "0xF14879a175A2F1cEFC7c616f35b6d9c2b0Fd8326"}, }, - diff: BridgeValidators{ + diff: types.BridgeValidators{ {Power: 858993459, EthereumAddress: "0x479FFc856Cdfa0f5D1AE6Fa61915b01351A7773D"}, {Power: 858993459, EthereumAddress: "0x8E91960d704Df3fF24ECAb78AB9df1B5D9144140"}, {Power: 2576980377, EthereumAddress: "0xF14879a175A2F1cEFC7c616f35b6d9c2b0Fd8326"}, @@ -41,7 +42,7 @@ func TestValsetPowerDiff(t *testing.T) { exp: 0.2, }, "real world": { - start: BridgeValidators{ + start: types.BridgeValidators{ {Power: 678509841, EthereumAddress: "0x6db48cBBCeD754bDc760720e38E456144e83269b"}, {Power: 671724742, EthereumAddress: "0x8E91960d704Df3fF24ECAb78AB9df1B5D9144140"}, {Power: 685294939, EthereumAddress: "0x479FFc856Cdfa0f5D1AE6Fa61915b01351A7773D"}, @@ -51,7 +52,7 @@ func TestValsetPowerDiff(t *testing.T) { {Power: 6785098, EthereumAddress: "0x37A0603dA2ff6377E5C7f75698dabA8EE4Ba97B8"}, {Power: 291759231, EthereumAddress: "0xF14879a175A2F1cEFC7c616f35b6d9c2b0Fd8326"}, }, - diff: BridgeValidators{ + diff: types.BridgeValidators{ {Power: 642345266, EthereumAddress: "0x479FFc856Cdfa0f5D1AE6Fa61915b01351A7773D"}, {Power: 678509841, EthereumAddress: "0x6db48cBBCeD754bDc760720e38E456144e83269b"}, {Power: 671724742, EthereumAddress: "0x0A7254b318dd742A3086882321C27779B4B642a6"}, @@ -75,28 +76,28 @@ func TestValsetPowerDiff(t *testing.T) { func TestValsetSort(t *testing.T) { specs := map[string]struct { - src BridgeValidators - exp BridgeValidators + src types.BridgeValidators + exp types.BridgeValidators }{ "by power desc": { - src: BridgeValidators{ + src: types.BridgeValidators{ {Power: 1, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(3)}, 20)).String()}, {Power: 2, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(1)}, 20)).String()}, {Power: 3, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(2)}, 20)).String()}, }, - exp: BridgeValidators{ + exp: types.BridgeValidators{ {Power: 3, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(2)}, 20)).String()}, {Power: 2, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(1)}, 20)).String()}, {Power: 1, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(3)}, 20)).String()}, }, }, "by eth addr on same power": { - src: BridgeValidators{ + src: types.BridgeValidators{ {Power: 1, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(2)}, 20)).String()}, {Power: 1, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(1)}, 20)).String()}, {Power: 1, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(3)}, 20)).String()}, }, - exp: BridgeValidators{ + exp: types.BridgeValidators{ {Power: 1, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(1)}, 20)).String()}, {Power: 1, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(2)}, 20)).String()}, {Power: 1, EthereumAddress: gethcommon.BytesToAddress(bytes.Repeat([]byte{byte(3)}, 20)).String()}, @@ -106,7 +107,7 @@ func TestValsetSort(t *testing.T) { // you MUST go change this in gravity_utils/types.rs as well. You will also break all // bridges in production when they try to migrate so use extreme caution! "real world": { - src: BridgeValidators{ + src: types.BridgeValidators{ {Power: 678509841, EthereumAddress: "0x6db48cBBCeD754bDc760720e38E456144e83269b"}, {Power: 671724742, EthereumAddress: "0x8E91960d704Df3fF24ECAb78AB9df1B5D9144140"}, {Power: 685294939, EthereumAddress: "0x479FFc856Cdfa0f5D1AE6Fa61915b01351A7773D"}, @@ -116,7 +117,7 @@ func TestValsetSort(t *testing.T) { {Power: 6785098, EthereumAddress: "0x37A0603dA2ff6377E5C7f75698dabA8EE4Ba97B8"}, {Power: 291759231, EthereumAddress: "0xF14879a175A2F1cEFC7c616f35b6d9c2b0Fd8326"}, }, - exp: BridgeValidators{ + exp: types.BridgeValidators{ {Power: 685294939, EthereumAddress: "0x479FFc856Cdfa0f5D1AE6Fa61915b01351A7773D"}, {Power: 678509841, EthereumAddress: "0x6db48cBBCeD754bDc760720e38E456144e83269b"}, {Power: 671724742, EthereumAddress: "0x0A7254b318dd742A3086882321C27779B4B642a6"}, @@ -141,7 +142,7 @@ func TestValsetSort(t *testing.T) { } } -func shuffled(v InternalBridgeValidators) InternalBridgeValidators { +func shuffled(v types.InternalBridgeValidators) types.InternalBridgeValidators { mrand.Shuffle(len(v), func(i, j int) { v[i], v[j] = v[j], v[i] }) diff --git a/x/qgb/types/validator.go b/x/qgb/types/validator.go index 3e4ab95bcf..cdda325f89 100644 --- a/x/qgb/types/validator.go +++ b/x/qgb/types/validator.go @@ -1,16 +1,11 @@ package types import ( - "fmt" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" math "math" - "math/big" "sort" - wrapper "github.com/celestiaorg/quantum-gravity-bridge/ethereum/solidity/wrappers/QuantumGravityBridge.sol" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - ethcmn "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/crypto" ) // ToInternal transforms a BridgeValidator into its fully validated internal type @@ -177,119 +172,3 @@ func (b InternalBridgeValidators) ValidateBasic() error { } return nil } - -////////////////////////////////////// -// VALSETS // -////////////////////////////////////// - -// NewValset returns a new valset -func NewValset(nonce, height uint64, members InternalBridgeValidators) (*Valset, error) { - if err := members.ValidateBasic(); err != nil { - return nil, sdkerrors.Wrap(err, "invalid members") - } - members.Sort() - mem := make([]BridgeValidator, 0) - for _, val := range members { - mem = append(mem, val.ToExternal()) - } - vs := Valset{Nonce: nonce, Members: mem, Height: height} - return &vs, nil -} - -// CopyValset returns a new valset from an existing one -func CopyValset(v Valset) (*Valset, error) { - vs := Valset{Nonce: v.Nonce, Members: v.Members, Height: v.Height} - return &vs, nil -} - -// WithoutEmptyMembers returns a new Valset without member that have 0 power or an empty Ethereum address. -func (v *Valset) WithoutEmptyMembers() *Valset { - if v == nil { - return nil - } - r := Valset{ - Nonce: v.Nonce, - Members: make([]BridgeValidator, 0, len(v.Members)), - Height: 0, - } - for i := range v.Members { - if _, err := v.Members[i].ToInternal(); err == nil { - r.Members = append(r.Members, v.Members[i]) - } - } - return &r -} - -// SignBytes produces the bytes that celestia validators are required to sign -// over when the validator set changes. -func (v *Valset) SignBytes(bridgeID ethcmn.Hash) (ethcmn.Hash, error) { - vsHash, err := v.Hash() - if err != nil { - return ethcmn.Hash{}, err - } - - // the word 'checkpoint' needs to be the same as the 'name' above in the checkpointAbiJson - // but other than that it's a constant that has no impact on the output. This is because - // it gets encoded as a function name which we must then discard. - bytes, err := InternalQGBabi.Pack( - "domainSeparateValidatorSetHash", - bridgeID, - VsDomainSeparator, - big.NewInt(int64(v.Nonce)), - big.NewInt(int64(v.TwoThirdsThreshold())), - vsHash, - ) - // this should never happen outside of test since any case that could crash on encoding - // should be filtered above. - if err != nil { - panic(fmt.Sprintf("Error packing checkpoint! %s/n", err)) - } - - hash := crypto.Keccak256Hash(bytes[4:]) - return hash, nil -} - -// Hash mimics the 'computeValsetHash' function used the qgb contracts by using -// a Valset to compute the hash of the abi encoded validator set. -func (v *Valset) Hash() (ethcmn.Hash, error) { - ethVals := make([]wrapper.Validator, len(v.Members)) - for i, val := range v.Members { - ethVals[i] = wrapper.Validator{ - Addr: ethcmn.HexToAddress(val.EthereumAddress), - Power: big.NewInt(int64(val.Power)), - } - } - - encodedVals, err := InternalQGBabi.Pack("computeValidatorSetHash", ethVals) - if err != nil { - return ethcmn.Hash{}, err - } - - return crypto.Keccak256Hash(encodedVals[4:]), nil -} - -func (v *Valset) TwoThirdsThreshold() uint64 { - totalPower := uint64(0) - for _, member := range v.Members { - totalPower += member.Power - } - - // todo: fix to be more precise - oneThird := (totalPower / 3) + 1 // +1 to round up - return 2 * oneThird -} - -// Valsets is a collection of valset -type Valsets []Valset - -func (v Valsets) Len() int { - return len(v) -} - -func (v Valsets) Less(i, j int) bool { - return v[i].Nonce > v[j].Nonce -} - -func (v Valsets) Swap(i, j int) { - v[i], v[j] = v[j], v[i] -} diff --git a/x/qgb/types/valset.go b/x/qgb/types/valset.go new file mode 100644 index 0000000000..8ae4d22b9d --- /dev/null +++ b/x/qgb/types/valset.go @@ -0,0 +1,89 @@ +package types + +import ( + "fmt" + wrapper "github.com/celestiaorg/quantum-gravity-bridge/wrappers/QuantumGravityBridge.sol" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + ethcmn "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" + "math/big" +) + +var _ AttestationRequestI = &Valset{} + +// NewValset returns a new valset +func NewValset(nonce, height uint64, members InternalBridgeValidators) (*Valset, error) { + if err := members.ValidateBasic(); err != nil { + return nil, sdkerrors.Wrap(err, "invalid members") + } + members.Sort() + mem := make([]BridgeValidator, 0) + for _, val := range members { + mem = append(mem, val.ToExternal()) + } + vs := Valset{Nonce: nonce, Members: mem, Height: height} + return &vs, nil +} + +// SignBytes produces the bytes that celestia validators are required to sign +// over when the validator set changes. +func (v *Valset) SignBytes(bridgeID ethcmn.Hash) (ethcmn.Hash, error) { + vsHash, err := v.Hash() + if err != nil { + return ethcmn.Hash{}, err + } + + // the word 'checkpoint' needs to be the same as the 'name' above in the checkpointAbiJson + // but other than that it's a constant that has no impact on the output. This is because + // it gets encoded as a function name which we must then discard. + bytes, err := InternalQGBabi.Pack( + "domainSeparateValidatorSetHash", + bridgeID, + VsDomainSeparator, + big.NewInt(int64(v.Nonce)), + big.NewInt(int64(v.TwoThirdsThreshold())), + vsHash, + ) + // this should never happen outside of test since any case that could crash on encoding + // should be filtered above. + if err != nil { + panic(fmt.Sprintf("Error packing checkpoint! %s/n", err)) + } + + hash := crypto.Keccak256Hash(bytes[4:]) + return hash, nil +} + +// Hash mimics the 'computeValsetHash' function used the qgb contracts by using +// a Valset to compute the hash of the abi encoded validator set. +func (v *Valset) Hash() (ethcmn.Hash, error) { + ethVals := make([]wrapper.Validator, len(v.Members)) + for i, val := range v.Members { + ethVals[i] = wrapper.Validator{ + Addr: ethcmn.HexToAddress(val.EthereumAddress), + Power: big.NewInt(int64(val.Power)), + } + } + + encodedVals, err := InternalQGBabi.Pack("computeValidatorSetHash", ethVals) + if err != nil { + return ethcmn.Hash{}, err + } + + return crypto.Keccak256Hash(encodedVals[4:]), nil +} + +func (v *Valset) TwoThirdsThreshold() uint64 { + totalPower := uint64(0) + for _, member := range v.Members { + totalPower += member.Power + } + + // todo: fix to be more precise + oneThird := (totalPower / 3) + 1 // +1 to round up + return 2 * oneThird +} + +func (v Valset) Type() AttestationType { + return ValsetRequestType +}