diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fc5839617..d23015fe2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,10 +12,10 @@ jobs: runs-on: ubuntu-latest steps: # Install and setup go - - name: Set up Go 1.20 + - name: Set up Go 1.21 uses: actions/setup-go@v4 with: - go-version: 1.20.2 + go-version: '1.21' # setup gopath - name: Set PATH @@ -40,4 +40,4 @@ jobs: uses: actions/upload-artifact@v1 with: name: rly - path: ./build/rly \ No newline at end of file + path: ./build/rly diff --git a/.github/workflows/interchaintest.yml b/.github/workflows/interchaintest.yml index efff87ec4..f938b806f 100644 --- a/.github/workflows/interchaintest.yml +++ b/.github/workflows/interchaintest.yml @@ -10,18 +10,19 @@ jobs: events: runs-on: self-hosted steps: - - name: Set up Go 1.20 - uses: actions/setup-go@v1 + - name: Set up Go 1.21 + uses: actions/setup-go@v4 with: - go-version: 1.20 - id: go + go-version: '1.21' - name: checkout relayer - uses: actions/checkout@v2 + uses: actions/checkout@v4 - - uses: actions/cache@v1 + - uses: actions/cache@v3 with: - path: ~/go/pkg/mod + path: | + ~/.cache/go-build + ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- @@ -32,18 +33,19 @@ jobs: legacy: runs-on: self-hosted steps: - - name: Set up Go 1.20 - uses: actions/setup-go@v1 + - name: Set up Go 1.21 + uses: actions/setup-go@v4 with: - go-version: 1.20 - id: go + go-version: '1.21' - name: checkout relayer - uses: actions/checkout@v2 + uses: actions/checkout@v4 - - uses: actions/cache@v1 + - uses: actions/cache@v3 with: - path: ~/go/pkg/mod + path: | + ~/.cache/go-build + ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- @@ -54,18 +56,19 @@ jobs: multiple-paths: runs-on: ubuntu-latest steps: - - name: Set up Go 1.20 - uses: actions/setup-go@v1 + - name: Set up Go 1.21 + uses: actions/setup-go@v4 with: - go-version: 1.20 - id: go + go-version: '1.21' - name: checkout relayer - uses: actions/checkout@v2 + uses: actions/checkout@v4 - - uses: actions/cache@v1 + - uses: actions/cache@v3 with: - path: ~/go/pkg/mod + path: | + ~/.cache/go-build + ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- @@ -73,24 +76,119 @@ jobs: - name: interchaintest run: make interchaintest-multiple + misbehaviour: + runs-on: ubuntu-latest + steps: + - name: Set up Go 1.21 + uses: actions/setup-go@v4 + with: + go-version: '1.21' + + - name: checkout relayer + uses: actions/checkout@v4 + + - uses: actions/cache@v3 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + + - name: interchaintest + run: make interchaintest-misbehaviour + + fee-middleware: + runs-on: ubuntu-latest + steps: + - name: Set up Go 1.21 + uses: actions/setup-go@v4 + with: + go-version: '1.21' + + - name: checkout relayer + uses: actions/checkout@v4 + + - uses: actions/cache@v3 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + + - name: interchaintest + run: make interchaintest-fee-middleware + + fee-grant: + runs-on: ubuntu-latest + steps: + - name: Set up Go 1.21 + uses: actions/setup-go@v4 + with: + go-version: '1.21' + + - name: checkout relayer + uses: actions/checkout@v4 + + - uses: actions/cache@v3 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + + - name: interchaintest + run: make interchaintest-fee-grant + + prepare-scenario-matrix: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Generate matrix + id: set-matrix + run: | + # Run the command and convert its output to a JSON array + TESTS=$(cd interchaintest && go test -list ^TestScenario | grep -v "^ok " | jq -R -s -c 'split("\n")[:-1]') + echo "matrix=${TESTS}" >> $GITHUB_OUTPUT + + # Note : This job will not start until prepare-scenario-matrix completes sucessfully scenarios: + needs: prepare-scenario-matrix runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + test: ${{fromJson(needs.prepare-scenario-matrix.outputs.matrix)}} + steps: - - name: Set up Go 1.20 - uses: actions/setup-go@v1 + - name: Set up Go 1.21 + uses: actions/setup-go@v4 with: - go-version: 1.20 - id: go + go-version: '1.21' - name: checkout relayer - uses: actions/checkout@v2 + uses: actions/checkout@v4 - - uses: actions/cache@v1 + - uses: actions/cache@v3 with: - path: ~/go/pkg/mod + path: | + ~/.cache/go-build + ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: interchaintest - run: make interchaintest-scenario \ No newline at end of file + run: | + cd interchaintest + go test -timeout 30m -race -v -run ${{ matrix.test }} + diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5e9673730..e99cc733e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: "Release" +name: 'Release' on: push: @@ -15,11 +15,11 @@ jobs: fetch-depth: 0 - name: Set up Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v4 with: - go-version: 1.20 + go-version: '1.21' - - run: echo https://github.com/cosmos/relayer/blob/${GITHUB_REF#refs/tags/}/CHANGELOG.md#${GITHUB_REF#refs/tags/} > ../release_notes.md + - run: echo https://github.com/cosmos/relayer/blob/${GITHUB_REF#refs/tags/}/CHANGELOG.md#${GITHUB_REF#refs/tags/} > ../release_notes.md - name: setup release environment run: |- diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a98e3921..93f9f9358 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,12 @@ * [\#1177](https://github.com/cosmos/relayer/pull/1177) Avoid panic due to nil map when add new path and ensure path get written to config. * [\#1178](https://github.com/cosmos/relayer/pull/1178) Add max-gas-amount parameter in chain configs. * [\#1180](https://github.com/cosmos/relayer/pull/1180) Update SDK from v0.47.0 to v0.47.2. +* [\#1205](https://github.com/cosmos/relayer/pull/1205) Update ibc-go to v7.0.1. +* [\#1179](https://github.com/cosmos/relayer/pull/1179) Add extension-options parameter in chain configs and update SDK to v0.47.3. +* [\#1208](https://github.com/cosmos/relayer/pull/1208) Replace gogo/protobuf to cosmos/gogoproto. +* [\#1221](https://github.com/cosmos/relayer/pull/1221) Update cometbft to v0.37.2 and ibc-go to v7.2.0. +* [\#1226](https://github.com/cosmos/relayer/pull/1226) Avoid invalid Bech32 prefix error in parallel tests when sdk Config get overwritten by each other in single process. +* [\#1231](https://github.com/cosmos/relayer/pull/1231) Reduce get bech32 prefix when get signer. ## v0.9.3 diff --git a/Dockerfile b/Dockerfile index caa600cbb..3c4d339b0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM golang:1.20-alpine3.16 AS build-env +FROM --platform=$BUILDPLATFORM golang:1.21-alpine3.17 AS build-env RUN apk add --update --no-cache curl make git libc-dev bash gcc linux-headers eudev-dev @@ -6,17 +6,17 @@ ARG TARGETARCH ARG BUILDARCH RUN if [ "${TARGETARCH}" = "arm64" ] && [ "${BUILDARCH}" != "arm64" ]; then \ - wget -c https://musl.cc/aarch64-linux-musl-cross.tgz -O - | tar -xzvv --strip-components 1 -C /usr; \ + wget -c https://musl.cc/aarch64-linux-musl-cross.tgz -O - | tar -xzvv --strip-components 1 -C /usr; \ elif [ "${TARGETARCH}" = "amd64" ] && [ "${BUILDARCH}" != "amd64" ]; then \ - wget -c https://musl.cc/x86_64-linux-musl-cross.tgz -O - | tar -xzvv --strip-components 1 -C /usr; \ + wget -c https://musl.cc/x86_64-linux-musl-cross.tgz -O - | tar -xzvv --strip-components 1 -C /usr; \ fi ADD . . RUN if [ "${TARGETARCH}" = "arm64" ] && [ "${BUILDARCH}" != "arm64" ]; then \ - export CC=aarch64-linux-musl-gcc CXX=aarch64-linux-musl-g++;\ + export CC=aarch64-linux-musl-gcc CXX=aarch64-linux-musl-g++;\ elif [ "${TARGETARCH}" = "amd64" ] && [ "${BUILDARCH}" != "amd64" ]; then \ - export CC=x86_64-linux-musl-gcc CXX=x86_64-linux-musl-g++; \ + export CC=x86_64-linux-musl-gcc CXX=x86_64-linux-musl-g++; \ fi; \ GOOS=linux GOARCH=$TARGETARCH CGO_ENABLED=1 LDFLAGS='-linkmode external -extldflags "-static"' make install diff --git a/Makefile b/Makefile index 2d2c71a57..20e9bbb2b 100644 --- a/Makefile +++ b/Makefile @@ -82,6 +82,15 @@ interchaintest-legacy: interchaintest-multiple: cd interchaintest && go test -race -v -run TestRelayerMultiplePathsSingleProcess . +interchaintest-misbehaviour: + cd interchaintest && go test -race -v -run TestRelayerMisbehaviourDetection . + +interchaintest-fee-middleware: + cd interchaintest && go test -race -v -run TestRelayerFeeMiddleware . + +interchaintest-fee-grant: + cd interchaintest && go test -race -v -run TestRelayerFeeGrant . + interchaintest-scenario: ## Scenario tests are suitable for simple networks of 1 validator and no full nodes. They test specific functionality. cd interchaintest && go test -timeout 30m -race -v -run TestScenario ./... diff --git a/README.md b/README.md index 7df037800..eaeef11d5 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Additional information on how IBC works can be found [here](https://ibc.cosmos.n ```shell $ git clone https://github.com/cosmos/relayer.git - $ cd relayer && git checkout v2.3.0 + $ cd relayer && git checkout v2.4.0 $ make install ``` @@ -58,7 +58,7 @@ Additional information on how IBC works can be found [here](https://ibc.cosmos.n ``` **Default config file location:** `~/.relayer/config/config.yaml` - By default, transactions will be relayed with a memo of `rly(VERSION)` e.g. `rly(v2.3.0)`. + By default, transactions will be relayed with a memo of `rly(VERSION)` e.g. `rly(v2.4.0)`. To customize the memo for all relaying, use the `--memo` flag when initializing the configuration. @@ -66,7 +66,7 @@ Additional information on how IBC works can be found [here](https://ibc.cosmos.n $ rly config init --memo "My custom memo" ``` - Custom memos will have `rly(VERSION)` appended. For example, a memo of `My custom memo` running on relayer version `v2.3.0` would result in a transaction memo of `My custom memo | rly(v2.3.0)`. + Custom memos will have `rly(VERSION)` appended. For example, a memo of `My custom memo` running on relayer version `v2.4.0` would result in a transaction memo of `My custom memo | rly(v2.4.0)`. The `--memo` flag is also available for other `rly` commands also that involve sending transactions such as `rly tx link` and `rly start`. It can be passed there to override the `config.yaml` value if desired. @@ -112,18 +112,14 @@ Additional information on how IBC works can be found [here](https://ibc.cosmos.n $ rly keys restore osmosis [key-name] "mnemonic words here" ``` -5. **Edit the relayer's `key` values in the config file to match the `key-name`'s chosen above.** +5. **Use the `key-name` created above.** >This step is necessary if you chose a `key-name` other than "default" - Example: - ```yaml - - type: cosmos - value: - key: YOUR-KEY-NAME-HERE - chain-id: cosmoshub-4 - rpc-addr: http://localhost:26657 - ``` + ```shell + $ rly keys use cosmoshub [key-name] + $ rly keys use osmosis [key-name] + ``` 6. **Ensure the keys associated with the configured chains are funded.** diff --git a/cmd/appstate.go b/cmd/appstate.go index d6378bb8a..5017df85e 100644 --- a/cmd/appstate.go +++ b/cmd/appstate.go @@ -251,3 +251,34 @@ func (a *appState) updatePathConfig( return nil }) } + +func (a *appState) useKey(chainName, key string) error { + + chain, exists := a.config.Chains[chainName] + if !exists { + return fmt.Errorf("chain %s not found in config", chainName) + } + + cc := chain.ChainProvider + + info, err := cc.ListAddresses() + if err != nil { + return err + } + value, exists := info[key] + currentValue := a.config.Chains[chainName].ChainProvider.Key() + + if currentValue == key { + return fmt.Errorf("config is already using %s -> %s for %s", key, value, cc.ChainName()) + } + + if exists { + fmt.Printf("Config will now use %s -> %s for %s\n", key, value, cc.ChainName()) + } else { + return fmt.Errorf("key %s does not exist for chain %s", key, cc.ChainName()) + } + return a.performConfigLockingOperation(context.Background(), func() error { + a.config.Chains[chainName].ChainProvider.UseKey(key) + return nil + }) +} diff --git a/cmd/chains.go b/cmd/chains.go index 53404cabe..aa66ed235 100644 --- a/cmd/chains.go +++ b/cmd/chains.go @@ -39,6 +39,7 @@ func chainsCmd(a *appState) *cobra.Command { chainsShowCmd(a), chainsAddrCmd(a), chainsAddDirCmd(a), + cmdChainsConfigure(a), ) return cmd @@ -144,6 +145,19 @@ $ %s ch d ibc-0`, appName, appName)), return cmd } +func cmdChainsConfigure(a *appState) *cobra.Command { + cmd := &cobra.Command{ + Use: "configure", + Short: "manage local chain configurations", + } + + cmd.AddCommand( + feegrantConfigureBaseCmd(a), + ) + + return cmd +} + func chainsRegistryList(a *appState) *cobra.Command { cmd := &cobra.Command{ Use: "registry-list", @@ -278,10 +292,11 @@ func chainsAddCmd(a *appState) *cobra.Command { Args: withUsage(cobra.MinimumNArgs(0)), Example: fmt.Sprintf(` $ %s chains add cosmoshub $ %s chains add cosmoshub osmosis + $ %s chains add cosmoshubtestnet --testnet $ %s chains add --file chains/ibc0.json ibc0 - $ %s chains add --url https://relayer.com/ibc0.json ibc0`, appName, appName, appName, appName), + $ %s chains add --url https://relayer.com/ibc0.json ibc0`, appName, appName, appName, appName, appName), RunE: func(cmd *cobra.Command, args []string) error { - file, url, err := getAddInputs(cmd) + file, url, forceAdd, testnet, err := getAddInputs(cmd) if err != nil { return err } @@ -315,7 +330,7 @@ func chainsAddCmd(a *appState) *cobra.Command { return err } default: - if err := addChainsFromRegistry(cmd.Context(), a, args); err != nil { + if err := addChainsFromRegistry(cmd.Context(), a, forceAdd, testnet, args); err != nil { return err } } @@ -420,7 +435,7 @@ func addChainFromURL(a *appState, chainName string, rawurl string) error { return nil } -func addChainsFromRegistry(ctx context.Context, a *appState, chains []string) error { +func addChainsFromRegistry(ctx context.Context, a *appState, forceAdd, testnet bool, chains []string) error { chainRegistry := cregistry.DefaultChainRegistry(a.log) var existed, failed, added []string @@ -436,7 +451,7 @@ func addChainsFromRegistry(ctx context.Context, a *appState, chains []string) er continue } - chainInfo, err := chainRegistry.GetChain(ctx, chain) + chainInfo, err := chainRegistry.GetChain(ctx, testnet, chain) if err != nil { a.log.Warn( "Error retrieving chain", @@ -447,7 +462,7 @@ func addChainsFromRegistry(ctx context.Context, a *appState, chains []string) er continue } - chainConfig, err := chainInfo.GetChainConfig(ctx) + chainConfig, err := chainInfo.GetChainConfig(ctx, forceAdd, testnet, chain) if err != nil { a.log.Warn( "Error generating chain config", diff --git a/cmd/config.go b/cmd/config.go index 5266a4685..80ae95e4c 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -19,6 +19,7 @@ package cmd import ( "context" "encoding/json" + "errors" "fmt" "io" "io/ioutil" @@ -393,7 +394,11 @@ func UnmarshalJSONProviderConfig(data []byte, customTypes map[string]reflect.Typ return nil, err } - typeName := m["type"].(string) + typeName, ok := m["type"].(string) + if !ok { + return nil, errors.New("cannot find type") + } + var provCfg provider.ProviderConfig if ty, found := customTypes[typeName]; found { provCfg = reflect.New(ty).Interface().(provider.ProviderConfig) diff --git a/cmd/errors.go b/cmd/errors.go index 31f5ee086..d7a94dee8 100644 --- a/cmd/errors.go +++ b/cmd/errors.go @@ -18,5 +18,6 @@ func errChainNotFound(chainName string) error { } var ( - errMultipleAddFlags = errors.New("expected either --file/-f OR --url/u, found multiple") + errMultipleAddFlags = errors.New("expected either --file/-f OR --url/u, found multiple") + errInvalidTestnetFlag = errors.New("cannot use --testnet with --file/-f OR --url/u, must be used alone") ) diff --git a/cmd/feegrant.go b/cmd/feegrant.go new file mode 100644 index 000000000..edb66d800 --- /dev/null +++ b/cmd/feegrant.go @@ -0,0 +1,213 @@ +package cmd + +import ( + "errors" + "fmt" + + "github.com/cosmos/relayer/v2/relayer/chains/cosmos" + "github.com/spf13/cobra" +) + +// feegrantConfigureCmd returns the fee grant configuration commands for this module +func feegrantConfigureBaseCmd(a *appState) *cobra.Command { + cmd := &cobra.Command{ + Use: "feegrant", + Short: "Configure the client to use round-robin feegranted accounts when sending TXs", + Long: "Use round-robin feegranted accounts when sending TXs. Useful for relayers and applications where sequencing is important", + } + + cmd.AddCommand( + feegrantConfigureBasicCmd(a), + ) + + return cmd +} + +func feegrantConfigureBasicCmd(a *appState) *cobra.Command { + var numGrantees int + var update bool + var delete bool + var updateGrantees bool + var grantees []string + + cmd := &cobra.Command{ + Use: "basicallowance [chain-name] [granter] --num-grantees [int] --overwrite-granter --overwrite-grantees", + Short: "feegrants for the given chain and granter (if granter is unspecified, use the default key)", + Long: "feegrants for the given chain. 10 grantees by default, all with an unrestricted BasicAllowance.", + Args: cobra.MinimumNArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + chain := args[0] + cosmosChain, ok := a.config.Chains[chain] + if !ok { + return errChainNotFound(args[0]) + } + + prov, ok := cosmosChain.ChainProvider.(*cosmos.CosmosProvider) + if !ok { + return errors.New("only CosmosProvider can be feegranted") + } + + granterKeyOrAddr := "" + + if len(args) > 1 { + granterKeyOrAddr = args[1] + } else if prov.PCfg.FeeGrants != nil { + granterKeyOrAddr = prov.PCfg.FeeGrants.GranterKey + } else { + granterKeyOrAddr = prov.PCfg.Key + } + + granterKey, err := prov.KeyFromKeyOrAddress(granterKeyOrAddr) + if err != nil { + return fmt.Errorf("could not get granter key from '%s'", granterKeyOrAddr) + } + + if delete { + fmt.Printf("Deleting %s feegrant configuration\n", chain) + + cfgErr := a.performConfigLockingOperation(cmd.Context(), func() error { + chain := a.config.Chains[chain] + oldProv := chain.ChainProvider.(*cosmos.CosmosProvider) + oldProv.PCfg.FeeGrants = nil + return nil + }) + cobra.CheckErr(cfgErr) + return nil + } + + if prov.PCfg.FeeGrants != nil && granterKey != prov.PCfg.FeeGrants.GranterKey && !update { + return fmt.Errorf("you specified granter '%s' which is different than configured feegranter '%s', but you did not specify the --overwrite-granter flag", granterKeyOrAddr, prov.PCfg.FeeGrants.GranterKey) + } else if prov.PCfg.FeeGrants != nil && granterKey != prov.PCfg.FeeGrants.GranterKey && update { + cfgErr := a.performConfigLockingOperation(cmd.Context(), func() error { + prov.PCfg.FeeGrants.GranterKey = granterKey + return nil + }) + cobra.CheckErr(cfgErr) + } + + if prov.PCfg.FeeGrants == nil || updateGrantees || len(grantees) > 0 { + var feegrantErr error + + //No list of grantees was provided, so we will use the default naming convention "grantee1, ... granteeN" + if grantees == nil { + feegrantErr = prov.ConfigureFeegrants(numGrantees, granterKey) + } else { + feegrantErr = prov.ConfigureWithGrantees(grantees, granterKey) + } + + if feegrantErr != nil { + return feegrantErr + } + + cfgErr := a.performConfigLockingOperation(cmd.Context(), func() error { + chain := a.config.Chains[chain] + oldProv := chain.ChainProvider.(*cosmos.CosmosProvider) + oldProv.PCfg.FeeGrants = prov.PCfg.FeeGrants + return nil + }) + cobra.CheckErr(cfgErr) + } + + memo, err := cmd.Flags().GetString(flagMemo) + if err != nil { + return err + } + + ctx := cmd.Context() + _, err = prov.EnsureBasicGrants(ctx, memo) + if err != nil { + return fmt.Errorf("error writing grants on chain: '%s'", err.Error()) + } + + //Get latest height from the chain, mark feegrant configuration as verified up to that height. + //This means we've verified feegranting is enabled on-chain and TXs can be sent with a feegranter. + if prov.PCfg.FeeGrants != nil { + fmt.Printf("Querying latest chain height to mark FeeGrant height... \n") + h, err := prov.QueryLatestHeight(ctx) + cobra.CheckErr(err) + + cfgErr := a.performConfigLockingOperation(cmd.Context(), func() error { + chain := a.config.Chains[chain] + oldProv := chain.ChainProvider.(*cosmos.CosmosProvider) + oldProv.PCfg.FeeGrants = prov.PCfg.FeeGrants + oldProv.PCfg.FeeGrants.BlockHeightVerified = h + fmt.Printf("Feegrant chain height marked: %d\n", h) + return nil + }) + cobra.CheckErr(cfgErr) + } + + return nil + }, + } + + cmd.Flags().BoolVar(&delete, "delete", false, "delete the feegrant configuration") + cmd.Flags().BoolVar(&update, "overwrite-granter", false, "allow overwriting the existing granter") + cmd.Flags().BoolVar(&updateGrantees, "overwrite-grantees", false, "allow overwriting existing grantees") + cmd.Flags().IntVar(&numGrantees, "num-grantees", 10, "number of grantees that will be feegranted with basic allowances") + cmd.Flags().StringSliceVar(&grantees, "grantees", nil, "comma separated list of grantee key names (keys are created if they do not exist)") + cmd.MarkFlagsMutuallyExclusive("num-grantees", "grantees", "delete") + + memoFlag(a.viper, cmd) + return cmd +} + +func feegrantBasicGrantsCmd(a *appState) *cobra.Command { + cmd := &cobra.Command{ + Use: "basic chain-name [granter]", + Short: "query the grants for an account (if none is specified, the default account is returned)", + Args: cobra.RangeArgs(1, 2), + RunE: func(cmd *cobra.Command, args []string) error { + chain := args[0] + cosmosChain, ok := a.config.Chains[chain] + if !ok { + return errChainNotFound(args[0]) + } + + prov, ok := cosmosChain.ChainProvider.(*cosmos.CosmosProvider) + if !ok { + return errors.New("only CosmosProvider can be feegranted") + } + + // TODO fix pagination + // pageReq, err := client.ReadPageRequest(cmd.Flags()) + // if err != nil { + // return err + // } + + //TODO fix height + // height, err := lensCmd.ReadHeight(cmd.Flags()) + // if err != nil { + // return err + // } + + keyNameOrAddress := "" + if len(args) == 0 { + keyNameOrAddress = prov.PCfg.Key + } else { + keyNameOrAddress = args[0] + } + + granterAcc, err := prov.AccountFromKeyOrAddress(keyNameOrAddress) + if err != nil { + fmt.Printf("Error retrieving account from key '%s'\n", keyNameOrAddress) + return err + } + granterAddr := prov.MustEncodeAccAddr(granterAcc) + + res, err := prov.QueryFeegrantsByGranter(granterAddr, nil) + if err != nil { + return err + } + + for _, grant := range res { + allowance, e := prov.Sprint(grant.Allowance) + cobra.CheckErr(e) + fmt.Printf("Granter: %s, Grantee: %s, Allowance: %s\n", grant.Granter, grant.Grantee, allowance) + } + + return nil + }, + } + return paginationFlags(a.viper, cmd, "feegrant") +} diff --git a/cmd/flags.go b/cmd/flags.go index 427f12d52..8d605319b 100644 --- a/cmd/flags.go +++ b/cmd/flags.go @@ -18,7 +18,9 @@ const ( flagJSON = "json" flagYAML = "yaml" flagFile = "file" + flagForceAdd = "force-add" flagPath = "path" + flagTestnet = "testnet" flagMaxTxSize = "max-tx-size" flagMaxMsgLength = "max-msgs" flagIBCDenoms = "ibc-denoms" @@ -54,6 +56,7 @@ const ( flagDstClientID = "dst-client-id" flagSrcConnID = "src-connection-id" flagDstConnID = "dst-connection-id" + flagOutput = "output" ) const ( @@ -124,6 +127,8 @@ func skipConfirm(v *viper.Viper, cmd *cobra.Command) *cobra.Command { func chainsAddFlags(v *viper.Viper, cmd *cobra.Command) *cobra.Command { fileFlag(v, cmd) urlFlag(v, cmd) + forceAddFlag(v, cmd) + testnetFlag(v, cmd) return cmd } @@ -163,6 +168,22 @@ func fileFlag(v *viper.Viper, cmd *cobra.Command) *cobra.Command { return cmd } +func testnetFlag(v *viper.Viper, cmd *cobra.Command) *cobra.Command { + cmd.Flags().Bool(flagTestnet, false, "fetches testnet data from the chain registry") + if err := v.BindPFlag(flagTestnet, cmd.Flags().Lookup(flagTestnet)); err != nil { + panic(err) + } + return cmd +} + +func forceAddFlag(v *viper.Viper, cmd *cobra.Command) *cobra.Command { + cmd.Flags().Bool(flagForceAdd, false, "adds chain data even if there are no working RPC's in the chain registry") + if err := v.BindPFlag(flagForceAdd, cmd.Flags().Lookup(flagForceAdd)); err != nil { + panic(err) + } + return cmd +} + func pathFilterFlags(v *viper.Viper, cmd *cobra.Command) *cobra.Command { flags := cmd.Flags() flags.String(flagFilterRule, blankValue, `filter rule ("allowlist", "denylist", or "" for no filtering)`) @@ -225,18 +246,19 @@ func urlFlag(v *viper.Viper, cmd *cobra.Command) *cobra.Command { } func strategyFlag(v *viper.Viper, cmd *cobra.Command) *cobra.Command { - cmd.Flags().StringP(flagMaxTxSize, "s", "2", "strategy of path to generate of the messages in a relay transaction") - cmd.Flags().StringP(flagMaxMsgLength, "l", "5", "maximum number of messages in a relay transaction") - if err := v.BindPFlag(flagMaxTxSize, cmd.Flags().Lookup(flagMaxTxSize)); err != nil { - panic(err) - } + cmd.Flags().Uint64P( + flagMaxMsgLength, + "l", + relayer.DefaultMaxMsgLength, + "maximum number of messages per transaction", + ) if err := v.BindPFlag(flagMaxMsgLength, cmd.Flags().Lookup(flagMaxMsgLength)); err != nil { panic(err) } return cmd } -func getAddInputs(cmd *cobra.Command) (file string, url string, err error) { +func getAddInputs(cmd *cobra.Command) (file string, url string, forceAdd bool, testNet bool, err error) { file, err = cmd.Flags().GetString(flagFile) if err != nil { return @@ -247,8 +269,22 @@ func getAddInputs(cmd *cobra.Command) (file string, url string, err error) { return } + forceAdd, err = cmd.Flags().GetBool(flagForceAdd) + if err != nil { + return + } + + testNet, err = cmd.Flags().GetBool(flagTestnet) + if err != nil { + return + } + if file != "" && url != "" { - return "", "", errMultipleAddFlags + return "", "", false, false, errMultipleAddFlags + } + + if file != "" && testNet || url != "" && testNet { + return "", "", false, false, errInvalidTestnetFlag } return @@ -380,3 +416,11 @@ func OverwriteConfigFlag(v *viper.Viper, cmd *cobra.Command) *cobra.Command { } return cmd } + +func addOutputFlag(v *viper.Viper, cmd *cobra.Command) *cobra.Command { + cmd.Flags().StringP(flagOutput, "o", "legacy", "Specify the console output format. Can be 'legacy' or 'json'.") + if err := v.BindPFlag(flagOutput, cmd.Flags().Lookup(flagOutput)); err != nil { + panic(err) + } + return cmd +} diff --git a/cmd/keys.go b/cmd/keys.go index aa915d065..ad853cf05 100644 --- a/cmd/keys.go +++ b/cmd/keys.go @@ -45,16 +45,33 @@ func keysCmd(a *appState) *cobra.Command { cmd.AddCommand( keysAddCmd(a), + keysUseCmd(a), keysRestoreCmd(a), keysDeleteCmd(a), keysListCmd(a), - keysShowCmd(a), keysExportCmd(a), + keysShowCmd(a), ) return cmd } +func keysUseCmd(a *appState) *cobra.Command { + + cmd := &cobra.Command{ + Use: "use chain_name key_name", + Aliases: []string{"u"}, + Short: "Use a key from the keychain associated with a particular chain. Run 'rly keys list ibc-0' to view available keys", + Args: withUsage(cobra.ExactArgs(2)), + Example: strings.TrimSpace(fmt.Sprintf(` +$ %s keys use ibc-0 key_name`, appName)), + RunE: func(cmd *cobra.Command, args []string) error { + return a.useKey(args[0], args[1]) + }, + } + return cmd +} + // keysAddCmd respresents the `keys add` command func keysAddCmd(a *appState) *cobra.Command { cmd := &cobra.Command{ @@ -289,47 +306,6 @@ $ %s k l ibc-1`, appName, appName)), return cmd } -// keysShowCmd respresents the `keys show` command -func keysShowCmd(a *appState) *cobra.Command { - cmd := &cobra.Command{ - Use: "show chain_name [key_name]", - Aliases: []string{"s"}, - Short: "Shows a key from the keychain associated with a particular chain", - Args: withUsage(cobra.RangeArgs(1, 2)), - Example: strings.TrimSpace(fmt.Sprintf(` -$ %s keys show ibc-0 -$ %s keys show ibc-1 key2 -$ %s k s ibc-2 testkey`, appName, appName, appName)), - RunE: func(cmd *cobra.Command, args []string) error { - chain, ok := a.config.Chains[args[0]] - if !ok { - return errChainNotFound(args[0]) - } - - var keyName string - if len(args) == 2 { - keyName = args[1] - } else { - keyName = chain.ChainProvider.Key() - } - - if !chain.ChainProvider.KeyExists(keyName) { - return errKeyDoesntExist(keyName) - } - - address, err := chain.ChainProvider.ShowAddress(keyName) - if err != nil { - return err - } - - fmt.Fprintln(cmd.OutOrStdout(), address) - return nil - }, - } - - return cmd -} - // keysExportCmd respresents the `keys export` command func keysExportCmd(a *appState) *cobra.Command { cmd := &cobra.Command{ @@ -363,3 +339,64 @@ $ %s k e cosmoshub testkey`, appName, appName)), return cmd } + +// ShowAddressByChainAndKey represents the logic for showing relayer address by chain_name and key_name +func (a *appState) showAddressByChainAndKey(cmd *cobra.Command, args []string) error { + chain, ok := a.config.Chains[args[0]] + if !ok { + return errChainNotFound(args[0]) + } + + var keyName string + if len(args) == 2 { + keyName = args[1] + } else { + keyName = chain.ChainProvider.Key() + } + + if !chain.ChainProvider.KeyExists(keyName) { + return errKeyDoesntExist(keyName) + } + + address, err := chain.ChainProvider.ShowAddress(keyName) + if err != nil { + return err + } + + fmt.Fprintln(cmd.OutOrStdout(), address) + return nil +} + +// keysShowCmd respresents the `keys show` command +func keysShowCmd(a *appState) *cobra.Command { + cmd := &cobra.Command{ + Use: "show chain_name [key_name]", + Aliases: []string{"s"}, + Short: "Shows a key from the keychain associated with a particular chain", + Args: withUsage(cobra.RangeArgs(1, 2)), + Example: strings.TrimSpace(fmt.Sprintf(` +$ %s keys show ibc-0 +$ %s keys show ibc-1 key2 +$ %s k s ibc-2 testkey`, appName, appName, appName)), + RunE: a.showAddressByChainAndKey, + } + + return cmd +} + +// addressCmd represents the address of a relayer +func addressCmd(a *appState) *cobra.Command { + cmd := &cobra.Command{ + Use: "address chain_name [key_name]", + Aliases: []string{"a"}, + Short: "Shows the address of a relayer", + Args: withUsage(cobra.RangeArgs(1, 2)), + Example: strings.TrimSpace(fmt.Sprintf(` +$ %s address ibc-0 +$ %s address ibc-1 key2 +$ %s a ibc-2 testkey`, appName, appName, appName)), + RunE: a.showAddressByChainAndKey, + } + + return cmd +} diff --git a/cmd/paths.go b/cmd/paths.go index 640414fa5..b5583fb69 100644 --- a/cmd/paths.go +++ b/cmd/paths.go @@ -364,13 +364,25 @@ func pathsFetchCmd(a *appState) *cobra.Command { cmd := &cobra.Command{ Use: "fetch", Aliases: []string{"fch"}, - Short: "Fetches the json files necessary to setup the paths for the configured chains", - Args: withUsage(cobra.NoArgs), + Short: "Fetches the json files necessary to setup the paths for the configured chains. Passing a chain name will only fetch paths for that chain", + Args: withUsage(cobra.RangeArgs(0, 1)), Example: strings.TrimSpace(fmt.Sprintf(` $ %s paths fetch --home %s -$ %s pth fch`, appName, defaultHome, appName)), +$ %s paths fetch --testnet +$ %s pth fch`, appName, defaultHome, appName, appName)), RunE: func(cmd *cobra.Command, args []string) error { overwrite, _ := cmd.Flags().GetBool(flagOverwriteConfig) + testnet, _ := cmd.Flags().GetBool(flagTestnet) + + // allow the relayer to only pull paths for a specific chain + chainReq := "" + if len(args) > 0 { + chainReq = args[0] + _, exist := a.config.Chains[chainReq] + if !exist { + return fmt.Errorf("chain %s not found in config", chainReq) + } + } return a.performConfigLockingOperation(cmd.Context(), func() error { chains := []string{} @@ -390,6 +402,11 @@ $ %s pth fch`, appName, defaultHome, appName)), if chainB < chainA { pair = chainB + "-" + chainA } + + if chainReq != "" && !strings.Contains(pair, chainReq) { + continue + } + chainCombinations[pair] = true } } @@ -402,9 +419,15 @@ $ %s pth fch`, appName, defaultHome, appName)), continue } - // TODO: Don't use github api. Potentially use: https://github.com/eco-stake/cosmos-directory once they integrate IBC data into restAPI. This will avoid rate limits. + // TODO: Don't use github api. Potentially use http.get like GetChain() does to avoid rate limits fileName := pthName + ".json" - regPath := path.Join("_IBC", fileName) + var regPath string + if testnet { + regPath = path.Join("testnets", "_IBC", fileName) + } else { + regPath = path.Join("_IBC", fileName) + + } client, _, err := client.Repositories.DownloadContents(cmd.Context(), "cosmos", "chain-registry", regPath, nil) if err != nil { if errors.As(err, new(*github.RateLimitError)) { @@ -455,5 +478,7 @@ $ %s pth fch`, appName, defaultHome, appName)), }) }, } - return OverwriteConfigFlag(a.viper, cmd) + OverwriteConfigFlag(a.viper, cmd) + testnetFlag(a.viper, cmd) + return cmd } diff --git a/cmd/query.go b/cmd/query.go index 5540fb916..2f3c2e3e9 100644 --- a/cmd/query.go +++ b/cmd/query.go @@ -15,6 +15,11 @@ import ( "github.com/spf13/cobra" ) +const ( + formatJson = "json" + formatLegacy = "legacy" +) + // queryCmd represents the chain command func queryCmd(a *appState) *cobra.Command { cmd := &cobra.Command{ @@ -47,11 +52,26 @@ func queryCmd(a *appState) *cobra.Command { lineBreakCommand(), queryIBCDenoms(a), queryBaseDenomFromIBCDenom(a), + feegrantQueryCmd(a), ) return cmd } +// feegrantQueryCmd returns the fee grant query commands for this module +func feegrantQueryCmd(a *appState) *cobra.Command { + cmd := &cobra.Command{ + Use: "feegrant", + Short: "Querying commands for the feegrant module [currently BasicAllowance only]", + } + + cmd.AddCommand( + feegrantBasicGrantsCmd(a), + ) + cmd = addOutputFlag(a.viper, cmd) + return cmd +} + func queryIBCDenoms(a *appState) *cobra.Command { cmd := &cobra.Command{ Use: "ibc-denoms chain_name", @@ -84,7 +104,7 @@ $ %s q ibc-denoms ibc-0`, return nil }, } - + cmd = addOutputFlag(a.viper, cmd) return cmd } @@ -112,7 +132,7 @@ $ %s q denom-trace osmosis 9BBA9A1C257E971E38C1422780CE6F0B0686F0A3085E2D61118D9 return nil }, } - + cmd = addOutputFlag(a.viper, cmd) return cmd } @@ -146,7 +166,7 @@ $ %s q tx ibc-0 A5DF8D272F1C451CFF92BA6C41942C4D29B5CF180279439ED6AB038282F956BE return nil }, } - + cmd = addOutputFlag(a.viper, cmd) return cmd } @@ -198,7 +218,9 @@ $ %s q txs ibc-0 "message.action=transfer"`, }, } - return paginationFlags(a.viper, cmd, "txs") + cmd = addOutputFlag(a.viper, cmd) + cmd = paginationFlags(a.viper, cmd, "txs") + return cmd } func queryBalanceCmd(a *appState) *cobra.Command { @@ -242,12 +264,34 @@ $ %s query balance ibc-0 testkey`, return err } - fmt.Fprintf(cmd.OutOrStdout(), "address {%s} balance {%s} \n", addr, coins) + // Create a map to hold the data + data := map[string]string{ + "address": addr, + "balance": coins.String(), + } + + // Convert the map to a JSON string + jsonOutput, err := json.Marshal(data) + if err != nil { + return err + } + + output, _ := cmd.Flags().GetString(flagOutput) + switch output { + case formatJson: + fmt.Fprint(cmd.OutOrStdout(), string(jsonOutput)) + case formatLegacy: + fallthrough + default: + fmt.Fprintf(cmd.OutOrStdout(), "address {%s} balance {%s} \n", addr, coins) + } return nil }, } - return ibcDenomFlags(a.viper, cmd) + cmd = addOutputFlag(a.viper, cmd) + cmd = ibcDenomFlags(a.viper, cmd) + return cmd } func queryHeaderCmd(a *appState) *cobra.Command { @@ -294,11 +338,21 @@ $ %s query header ibc-0 1400`, return err } - fmt.Fprintln(cmd.OutOrStdout(), s) + output, _ := cmd.Flags().GetString(flagOutput) + switch output { + case formatJson: + fmt.Fprintln(cmd.OutOrStdout(), string(s)) + case formatLegacy: + fallthrough + default: + fmt.Fprintln(cmd.OutOrStdout(), s) + } + return nil }, } + cmd = addOutputFlag(a.viper, cmd) return cmd } @@ -340,7 +394,7 @@ $ %s q node-state ibc-1`, return nil }, } - + cmd = addOutputFlag(a.viper, cmd) return cmd } @@ -391,8 +445,9 @@ $ %s query client ibc-0 ibczeroclient --height 1205`, return nil }, } - - return heightFlag(a.viper, cmd) + cmd = addOutputFlag(a.viper, cmd) + cmd = heightFlag(a.viper, cmd) + return cmd } func queryClientsCmd(a *appState) *cobra.Command { @@ -436,8 +491,9 @@ $ %s query clients ibc-2 --offset 2 --limit 30`, return nil }, } - - return paginationFlags(a.viper, cmd, "client states") + cmd = addOutputFlag(a.viper, cmd) + cmd = paginationFlags(a.viper, cmd, "client states") + return cmd } func queryConnections(a *appState) *cobra.Command { @@ -483,7 +539,9 @@ $ %s q conns ibc-1`, }, } - return paginationFlags(a.viper, cmd, "connections on a network") + cmd = addOutputFlag(a.viper, cmd) + cmd = paginationFlags(a.viper, cmd, "connections on a network") + return cmd } func queryConnectionsUsingClient(a *appState) *cobra.Command { @@ -536,7 +594,9 @@ $ %s query client-connections ibc-0 ibczeroclient --height 1205`, }, } - return heightFlag(a.viper, cmd) + cmd = addOutputFlag(a.viper, cmd) + cmd = heightFlag(a.viper, cmd) + return cmd } func queryConnection(a *appState) *cobra.Command { @@ -580,7 +640,7 @@ $ %s q conn ibc-1 ibconeconn`, return nil }, } - + cmd = addOutputFlag(a.viper, cmd) return cmd } @@ -629,7 +689,9 @@ $ %s query connection-channels ibc-2 ibcconnection2 --offset 2 --limit 30`, }, } - return paginationFlags(a.viper, cmd, "channels associated with a connection") + cmd = addOutputFlag(a.viper, cmd) + cmd = paginationFlags(a.viper, cmd, "channels associated with a connection") + return cmd } func queryChannel(a *appState) *cobra.Command { @@ -682,7 +744,9 @@ $ %s query channel ibc-2 ibctwochannel transfer --height 1205`, }, } - return heightFlag(a.viper, cmd) + cmd = addOutputFlag(a.viper, cmd) + cmd = heightFlag(a.viper, cmd) + return cmd } // chanExtendedInfo is an intermediate type for holding additional useful @@ -902,7 +966,9 @@ $ %s query channels ibc-0 ibc-2`, }, } - return paginationFlags(a.viper, cmd, "channels on a network") + cmd = addOutputFlag(a.viper, cmd) + cmd = paginationFlags(a.viper, cmd, "channels on a network") + return cmd } func queryPacketCommitment(a *appState) *cobra.Command { @@ -944,7 +1010,7 @@ $ %s q packet-commit ibc-1 ibconechannel transfer 31`, return nil }, } - + cmd = addOutputFlag(a.viper, cmd) return cmd } @@ -997,7 +1063,7 @@ $ %s query unrelayed-pkts demo-path channel-0`, return nil }, } - + cmd = addOutputFlag(a.viper, cmd) return cmd } @@ -1049,15 +1115,16 @@ $ %s query unrelayed-acks demo-path channel-0`, return nil }, } - + cmd = addOutputFlag(a.viper, cmd) return cmd } func queryClientsExpiration(a *appState) *cobra.Command { cmd := &cobra.Command{ - Use: "clients-expiration path", - Short: "query for light clients expiration date", - Args: withUsage(cobra.ExactArgs(1)), + Use: "clients-expiration path", + Aliases: []string{"ce"}, + Short: "query for light clients expiration date", + Args: withUsage(cobra.ExactArgs(1)), Example: strings.TrimSpace(fmt.Sprintf(` $ %s query clients-expiration demo-path`, appName, @@ -1080,21 +1147,35 @@ $ %s query clients-expiration demo-path`, return err } - srcExpiration, err := relayer.QueryClientExpiration(cmd.Context(), c[src], c[dst]) - if err != nil { - return err + srcExpiration, srcClientInfo, errSrc := relayer.QueryClientExpiration(cmd.Context(), c[src], c[dst]) + if errSrc != nil && !strings.Contains(errSrc.Error(), "light client not found") { + return errSrc } - dstExpiration, err := relayer.QueryClientExpiration(cmd.Context(), c[dst], c[src]) - if err != nil { - return err + dstExpiration, dstClientInfo, errDst := relayer.QueryClientExpiration(cmd.Context(), c[dst], c[src]) + if errDst != nil && !strings.Contains(errDst.Error(), "light client not found") { + return errDst } - fmt.Fprintf(cmd.OutOrStdout(), relayer.SPrintClientExpiration(c[src], srcExpiration)) - fmt.Fprintf(cmd.OutOrStdout(), relayer.SPrintClientExpiration(c[dst], dstExpiration)) + output, _ := cmd.Flags().GetString(flagOutput) + + srcClientExpiration := relayer.SPrintClientExpiration(c[src], srcExpiration, srcClientInfo) + dstClientExpiration := relayer.SPrintClientExpiration(c[dst], dstExpiration, dstClientInfo) + if output == formatJson { + srcClientExpiration = relayer.SPrintClientExpirationJson(c[src], srcExpiration, srcClientInfo) + dstClientExpiration = relayer.SPrintClientExpirationJson(c[dst], dstExpiration, dstClientInfo) + } + + if errSrc == nil { + fmt.Fprintln(cmd.OutOrStdout(), srcClientExpiration) + } + + if errDst == nil { + fmt.Fprintln(cmd.OutOrStdout(), dstClientExpiration) + } return nil }, } - + cmd = addOutputFlag(a.viper, cmd) return cmd } diff --git a/cmd/root.go b/cmd/root.go index d76360e01..1a6cfc3d3 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -34,13 +34,9 @@ import ( "github.com/spf13/viper" "go.uber.org/zap" "go.uber.org/zap/zapcore" - "golang.org/x/term" ) -const ( - MB = 1024 * 1024 // in bytes - appName = "rly" -) +const appName = "rly" var defaultHome = filepath.Join(os.Getenv("HOME"), ".relayer") @@ -124,6 +120,7 @@ func NewRootCmd(log *zap.Logger) *cobra.Command { startCmd(a), lineBreakCommand(), getVersionCmd(a), + addressCmd(a), ) return rootCmd @@ -185,18 +182,10 @@ func newRootLogger(format string, debug bool) (*zap.Logger, error) { switch format { case "json": enc = zapcore.NewJSONEncoder(config) - case "console": + case "auto", "console": enc = zapcore.NewConsoleEncoder(config) case "logfmt": enc = zaplogfmt.NewEncoder(config) - case "auto": - if term.IsTerminal(int(os.Stderr.Fd())) { - // When a user runs relayer in the foreground, use easier to read output. - enc = zapcore.NewConsoleEncoder(config) - } else { - // Otherwise, use consistent logfmt format for simplistic machine processing. - enc = zaplogfmt.NewEncoder(config) - } default: return nil, fmt.Errorf("unrecognized log format %q", format) } diff --git a/cmd/start.go b/cmd/start.go index fa69d2a80..c2cdf9406 100644 --- a/cmd/start.go +++ b/cmd/start.go @@ -21,7 +21,6 @@ import ( "errors" "fmt" "net" - "strconv" "strings" "github.com/cosmos/relayer/v2/internal/relaydebug" @@ -88,7 +87,7 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), return err } - maxTxSize, maxMsgLength, err := GetStartOptions(cmd) + maxMsgLength, err := cmd.Flags().GetUint64(flagMaxMsgLength) if err != nil { return err } @@ -149,7 +148,7 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), a.log, chains, paths, - maxTxSize, maxMsgLength, + maxMsgLength, a.config.memo(cmd), clientUpdateThresholdTime, flushInterval, @@ -182,28 +181,3 @@ $ %s start demo-path2 --max-tx-size 10`, appName, appName, appName, appName)), cmd = memoFlag(a.viper, cmd) return cmd } - -// GetStartOptions sets strategy specific fields. -func GetStartOptions(cmd *cobra.Command) (uint64, uint64, error) { - maxTxSize, err := cmd.Flags().GetString(flagMaxTxSize) - if err != nil { - return 0, 0, err - } - - txSize, err := strconv.ParseUint(maxTxSize, 10, 64) - if err != nil { - return 0, 0, err - } - - maxMsgLength, err := cmd.Flags().GetString(flagMaxMsgLength) - if err != nil { - return txSize * MB, 0, err - } - - msgLen, err := strconv.ParseUint(maxMsgLength, 10, 64) - if err != nil { - return txSize * MB, 0, err - } - - return txSize * MB, msgLen, nil -} diff --git a/cmd/tx.go b/cmd/tx.go index 6e9244527..de83c177e 100644 --- a/cmd/tx.go +++ b/cmd/tx.go @@ -723,6 +723,7 @@ $ %s tx link-then-start demo-path --timeout 5s`, appName, appName)), cmd = initBlockFlag(a.viper, cmd) cmd = processorFlag(a.viper, cmd) cmd = updateTimeFlags(a.viper, cmd) + cmd = flushIntervalFlag(a.viper, cmd) return cmd } @@ -781,7 +782,7 @@ $ %s tx flush demo-path channel-0`, return err } - maxTxSize, maxMsgLength, err := GetStartOptions(cmd) + maxMsgLength, err := cmd.Flags().GetUint64(flagMaxMsgLength) if err != nil { return err } @@ -802,7 +803,7 @@ $ %s tx flush demo-path channel-0`, a.log, chains, paths, - maxTxSize, maxMsgLength, + maxMsgLength, a.config.memo(cmd), 0, 0, diff --git a/cregistry/chain_info.go b/cregistry/chain_info.go index 6d2d8dea3..0bb66e3d3 100644 --- a/cregistry/chain_info.go +++ b/cregistry/chain_info.go @@ -12,6 +12,7 @@ import ( "time" "github.com/cosmos/relayer/v2/relayer/chains/cosmos" + "github.com/cosmos/relayer/v2/relayer/provider" "github.com/spf13/viper" "go.uber.org/zap" "golang.org/x/sync/errgroup" @@ -83,8 +84,9 @@ type ChainInfo struct { Provider string `json:"provider"` } `json:"rest"` } `json:"apis"` - ExtraCodecs []string `json:"extra_codecs"` - MaxGasAmount uint64 `json:"max_gas_amount"` + MaxGasAmount uint64 `json:"max_gas_amount"` + ExtraCodecs []string `json:"extra_codecs"` + ExtensionOptions []provider.ExtensionOption `json:"extension_options"` } // NewChainInfo returns a ChainInfo that is uninitialized other than the provided zap.Logger. @@ -184,14 +186,18 @@ func (c ChainInfo) GetRPCEndpoints(ctx context.Context) (out []string, err error } // GetRandomRPCEndpoint returns a string representing a random RPC endpoint from the cosmos chain registry for this chain. -func (c ChainInfo) GetRandomRPCEndpoint(ctx context.Context) (string, error) { +func (c ChainInfo) GetRandomRPCEndpoint(ctx context.Context, forceAdd bool) (string, error) { rpcs, err := c.GetRPCEndpoints(ctx) if err != nil { return "", err } if len(rpcs) == 0 { - return "", fmt.Errorf("no working RPCs found") + if !forceAdd { + return "", fmt.Errorf("no working RPCs found, consider using --force-add") + } else { + return "", nil + } } randomGenerator := rand.New(rand.NewSource(time.Now().UnixNano())) @@ -204,9 +210,15 @@ func (c ChainInfo) GetRandomRPCEndpoint(ctx context.Context) (string, error) { } // GetAssetList returns the asset metadata from the cosmos chain registry for this particular chain. -func (c ChainInfo) GetAssetList(ctx context.Context) (AssetList, error) { - chainRegURL := fmt.Sprintf("https://raw.githubusercontent.com/cosmos/chain-registry/master/%s/assetlist.json", c.ChainName) +func (c ChainInfo) GetAssetList(ctx context.Context, testnet bool, name string) (AssetList, error) { + var chainRegURL string + if testnet { + chainRegURL = fmt.Sprintf("https://raw.githubusercontent.com/cosmos/chain-registry/master/testnets/%s/assetlist.json", name) + } else { + chainRegURL = fmt.Sprintf("https://raw.githubusercontent.com/cosmos/chain-registry/master/%s/assetlist.json", name) + + } res, err := http.Get(chainRegURL) if err != nil { return AssetList{}, err @@ -234,11 +246,11 @@ func (c ChainInfo) GetAssetList(ctx context.Context) (AssetList, error) { // GetChainConfig returns a CosmosProviderConfig composed from the details found in the cosmos chain registry for // this particular chain. -func (c ChainInfo) GetChainConfig(ctx context.Context) (*cosmos.CosmosProviderConfig, error) { +func (c ChainInfo) GetChainConfig(ctx context.Context, forceAdd, testnet bool, name string) (*cosmos.CosmosProviderConfig, error) { debug := viper.GetBool("debug") home := viper.GetString("home") - assetList, err := c.GetAssetList(ctx) + assetList, err := c.GetAssetList(ctx, testnet, name) if err != nil { return nil, err } @@ -248,7 +260,7 @@ func (c ChainInfo) GetChainConfig(ctx context.Context) (*cosmos.CosmosProviderCo gasPrices = fmt.Sprintf("%.2f%s", 0.01, assetList.Assets[0].Base) } - rpc, err := c.GetRandomRPCEndpoint(ctx) + rpc, err := c.GetRandomRPCEndpoint(ctx, forceAdd) if err != nil { return nil, err } @@ -270,5 +282,6 @@ func (c ChainInfo) GetChainConfig(ctx context.Context) (*cosmos.CosmosProviderCo SigningAlgorithm: c.SigningAlgorithm, ExtraCodecs: c.ExtraCodecs, MaxGasAmount: c.MaxGasAmount, + ExtensionOptions: c.ExtensionOptions, }, nil } diff --git a/cregistry/chain_registry.go b/cregistry/chain_registry.go index e087a9354..63fe95882 100644 --- a/cregistry/chain_registry.go +++ b/cregistry/chain_registry.go @@ -8,7 +8,7 @@ import ( // ChainRegistry is a slim interface that can be implemented to interact with a repository of chain info/metadata. type ChainRegistry interface { - GetChain(ctx context.Context, name string) (ChainInfo, error) + GetChain(ctx context.Context, testnet bool, name string) (ChainInfo, error) ListChains(ctx context.Context) ([]string, error) SourceLink() string } diff --git a/cregistry/cosmos_github_registry.go b/cregistry/cosmos_github_registry.go index 8970b90ff..7f99ac396 100644 --- a/cregistry/cosmos_github_registry.go +++ b/cregistry/cosmos_github_registry.go @@ -52,8 +52,13 @@ func (c CosmosGithubRegistry) ListChains(ctx context.Context) ([]string, error) } // GetChain attempts to fetch ChainInfo for the specified chain name from the cosmos chain registry. -func (c CosmosGithubRegistry) GetChain(ctx context.Context, name string) (ChainInfo, error) { - chainRegURL := fmt.Sprintf("https://raw.githubusercontent.com/cosmos/chain-registry/master/%s/chain.json", name) +func (c CosmosGithubRegistry) GetChain(ctx context.Context, testnet bool, name string) (ChainInfo, error) { + var chainRegURL string + if testnet { + chainRegURL = fmt.Sprintf("https://raw.githubusercontent.com/cosmos/chain-registry/master/testnets/%s/chain.json", name) + } else { + chainRegURL = fmt.Sprintf("https://raw.githubusercontent.com/cosmos/chain-registry/master/%s/chain.json", name) + } res, err := http.Get(chainRegURL) if err != nil { diff --git a/docs/advanced_usage.md b/docs/advanced_usage.md index 715bc283d..bcfd1d2ac 100644 --- a/docs/advanced_usage.md +++ b/docs/advanced_usage.md @@ -5,27 +5,24 @@ **Prometheus exporter** If you started `rly` with the default `--debug-addr` argument, -you can use `http://$IP:7597/relayer/metrics` as a target for your prometheus scraper. - -**Example metrics** - -``` -go_goroutines 29 -... -go_threads 39 -... -observed_packets{chain="cosmoshub-4",channel="channel-141",path="hubosmo",port="transfer",type="acknowledge_packet"} 57 -observed_packets{chain="cosmoshub-4",channel="channel-141",path="hubosmo",port="transfer",type="recv_packet"} 103 -observed_packets{chain="cosmoshub-4",channel="channel-141",path="hubosmo",port="transfer",type="send_packet"} 58 -observed_packets{chain="osmosis-1",channel="channel-0",path="hubosmo",port="transfer",type="acknowledge_packet"} 107 -observed_packets{chain="osmosis-1",channel="channel-0",path="hubosmo",port="transfer",type="recv_packet"} 60 -observed_packets{chain="osmosis-1",channel="channel-0",path="hubosmo",port="transfer",type="send_packet"} 102 -... -relayed_packets{chain="cosmoshub-4",channel="channel-141",path="hubosmo",port="transfer",type="acknowledge_packet"} 31 -relayed_packets{chain="cosmoshub-4",channel="channel-141",path="hubosmo",port="transfer",type="recv_packet"} 65 -relayed_packets{chain="osmosis-1",channel="channel-0",path="hubosmo",port="transfer",type="acknowledge_packet"} 36 -relayed_packets{chain="osmosis-1",channel="channel-0",path="hubosmo",port="transfer",type="recv_packet"} 35 -``` +you can use `http://$IP:5183/relayer/metrics` as a target for your prometheus scraper. + + +Exported metrics: + +| **Exported Metric** | **Description** | **Type** | +|:---------------------------------------------: |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |:--------: | +| cosmos_relayer_observed_packets | The total number of observed packets | Counter | +| cosmos_relayer_relayed_packets | The total number of relayed packets | Counter | +| cosmos_relayer_chain_latest_height | The current height of the chain | Gauge | +| cosmos_relayer_wallet_balance | The current balance for the relayer's wallet | Gauge | +| cosmos_relayer_fees_spent | The amount of fees spent from the relayer's wallet | Gauge | +| cosmos_relayer_tx_failure |
The total number of tx failures broken up into categories:
- "packet messages are redundant"
- "insufficient funds"
- "invalid coins"
- "out of gas"


"Tx Failure" is the the catch all bucket | Counter | +| cosmos_relayer_block_query_errors_total | The total number of block query failures. The failures are separated into two categories:
- "RPC Client"
- "IBC Header" | Counter | +| cosmos_relayer_client_expiration_seconds | Seconds until the client expires | Gauge | +| cosmos_relayer_client_trusting_period_seconds | The trusting period (in seconds) of the client | Gauge | + + --- @@ -54,7 +51,33 @@ Use cases for configuring the `--time-threshold` flag: \* It is not mandatory for relayers to include the `MsgUpdateClient` when relaying packets, however most, if not all relayers currently do. ---- +## Feegrants + +Feegrant configurations can be applied to each chain in the relayer. Note that Osmosis does not support Feegrants. + + - When feegrants are enabled, TXs will be signed in round robin by the grantees. + - Feegrants reduce sequencing error rates by using many signing addresses instead of a single signer, especially when broadcast-mode is set to single. + - Feegrants are especially useful when relaying on multiple paths with the same wallet. + - Funds are held on a single address, the "granter". + +For example, configure feegrants for Kujira: +- `rly chains configure feegrant basicallowance kujira default --num-grantees 10` +- Note: above, `default` is the key that will need to contain funds (the granter) +- 10 grantees will be configured, so those 10 address will sign TXs in round robin order. +You may also choose to specify the exact names of your grantees: +- `rly chains configure feegrant basicallowance kujira default --grantees "kuji1,kuji2,kuji3"` + +Rerunning the feegrant command will simply confirm your configuration is correct, e.g. "Valid grant found for granter `addr` and grantee `addr2`" but will not create additional TXs on chain. Rerunning the feegrant command can therefore be a good way to check what addresses exist. + + +To remove the feegrant configuration: +- `rly chains configure feegrant basicallowance kujira --delete` + + + + +--- + [<-- Create Path Across Chains](create-path-across-chain.md) - [Troubleshooting -->](./troubleshooting.md) diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index dbfac01dc..75f46195e 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -53,6 +53,17 @@ it will be helpful to provide the output from `http://localhost:7597/debug/pprof --- +**Error querying blockdata** + +The relayer looks back in time at historical transactions and needs to have an index of them. + +Specifically check `~/./config/config.toml` has the following fields set: +```toml +indexer = "kv" +index_all_tags = true +``` +--- + **Error building or broadcasting transaction** When preparing a transaction for relaying, the amount of gas that the transaction will consume is unknown. To compute how much gas the transaction will need, the transaction is prepared with 0 gas and delivered as a `/cosmos.tx.v1beta1.Service/Simulate` query to the RPC endpoint. Recently chains have been creating AnteHandlers in which 0 gas triggers an error case: diff --git a/go.mod b/go.mod index fd1091a78..da8ff06a6 100644 --- a/go.mod +++ b/go.mod @@ -1,52 +1,52 @@ module github.com/cosmos/relayer/v2 -go 1.20 +go 1.21 require ( cosmossdk.io/api v0.3.1 - cosmossdk.io/errors v1.0.0-beta.7 - cosmossdk.io/math v1.0.0 + cosmossdk.io/errors v1.0.0 + cosmossdk.io/math v1.1.2 github.com/avast/retry-go/v4 v4.3.2 github.com/btcsuite/btcd v0.23.4 github.com/btcsuite/btcd/btcutil v1.1.3 - github.com/cometbft/cometbft v0.37.1 + github.com/cometbft/cometbft v0.37.2 github.com/cosmos/cosmos-proto v1.0.0-beta.2 - github.com/cosmos/cosmos-sdk v0.47.2 + github.com/cosmos/cosmos-sdk v0.47.5 github.com/cosmos/go-bip39 v1.0.0 - github.com/cosmos/gogoproto v1.4.8 - github.com/cosmos/ibc-go/v7 v7.0.0 - github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab + github.com/cosmos/gogoproto v1.4.10 + github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1 + github.com/cosmos/ibc-go/v7 v7.3.0 + github.com/cosmos/ics23/go v0.10.0 github.com/ethereum/go-ethereum v1.10.26 github.com/gofrs/flock v0.8.1 - github.com/gogo/protobuf v1.3.2 github.com/google/go-cmp v0.5.9 github.com/google/go-github/v43 v43.0.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/jsternberg/zap-logfmt v1.3.0 github.com/prometheus/client_golang v1.14.0 - github.com/spf13/cobra v1.6.1 - github.com/spf13/viper v1.15.0 - github.com/stretchr/testify v1.8.2 + github.com/spf13/cobra v1.7.0 + github.com/spf13/viper v1.16.0 + github.com/stretchr/testify v1.8.4 github.com/tyler-smith/go-bip39 v1.1.0 go.uber.org/multierr v1.8.0 go.uber.org/zap v1.24.0 - golang.org/x/mod v0.8.0 - golang.org/x/sync v0.1.0 - golang.org/x/term v0.7.0 - golang.org/x/text v0.9.0 - google.golang.org/grpc v1.54.0 + golang.org/x/mod v0.11.0 + golang.org/x/sync v0.2.0 + golang.org/x/text v0.12.0 + google.golang.org/grpc v1.56.2 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 ) require ( - cloud.google.com/go v0.110.0 // indirect - cloud.google.com/go/compute v1.18.0 // indirect + cloud.google.com/go v0.110.4 // indirect + cloud.google.com/go/compute v1.20.1 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.12.0 // indirect - cloud.google.com/go/storage v1.29.0 // indirect + cloud.google.com/go/iam v1.1.0 // indirect + cloud.google.com/go/storage v1.30.1 // indirect cosmossdk.io/core v0.5.1 // indirect - cosmossdk.io/depinject v1.0.0-alpha.3 // indirect + cosmossdk.io/depinject v1.0.0-alpha.4 // indirect + cosmossdk.io/log v1.2.1 // indirect cosmossdk.io/tools/rosetta v0.2.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect @@ -64,8 +64,11 @@ require ( github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chzyer/readline v1.5.1 // indirect + github.com/cockroachdb/errors v1.10.0 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/redact v1.1.5 // indirect github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect - github.com/cometbft/cometbft-db v0.7.0 // indirect + github.com/cometbft/cometbft-db v0.8.0 // indirect github.com/confio/ics23/go v0.9.0 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect @@ -84,12 +87,14 @@ require ( github.com/dvsekhvalnov/jose2go v1.5.0 // indirect github.com/felixge/httpsnoop v1.0.2 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/getsentry/sentry-go v0.23.0 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/go-stack/stack v1.8.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect + github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.1.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect @@ -98,9 +103,10 @@ require ( github.com/google/btree v1.1.2 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/orderedcode v0.0.1 // indirect + github.com/google/s2a-go v0.1.4 // indirect github.com/google/uuid v1.3.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.7.0 // indirect + github.com/googleapis/gax-go/v2 v2.11.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect @@ -122,13 +128,16 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.16.3 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect + github.com/linxGnu/grocksdb v1.7.16 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect @@ -136,27 +145,26 @@ require ( github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mtibben/percent v0.2.1 // indirect - github.com/pelletier/go-toml/v2 v2.0.6 // indirect - github.com/petermattis/goid v0.0.0-20221215004737-a150e88a970d // indirect + github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.40.0 // indirect + github.com/prometheus/common v0.42.0 // indirect github.com/prometheus/procfs v0.9.0 // indirect github.com/rakyll/statik v0.1.7 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/rs/cors v1.8.3 // indirect + github.com/rs/zerolog v1.30.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect - github.com/spf13/afero v1.9.3 // indirect - github.com/spf13/cast v1.5.0 // indirect + github.com/spf13/afero v1.9.5 // indirect + github.com/spf13/cast v1.5.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/subosito/gotenv v1.4.2 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect - github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/tklauser/numcpus v0.4.0 // indirect @@ -166,16 +174,19 @@ require ( go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.10.0 // indirect - golang.org/x/crypto v0.7.0 // indirect - golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect - golang.org/x/net v0.9.0 // indirect - golang.org/x/oauth2 v0.5.0 // indirect - golang.org/x/sys v0.7.0 // indirect + golang.org/x/crypto v0.11.0 // indirect + golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect + golang.org/x/net v0.12.0 // indirect + golang.org/x/oauth2 v0.8.0 // indirect + golang.org/x/sys v0.11.0 // indirect + golang.org/x/term v0.10.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.110.0 // indirect + google.golang.org/api v0.126.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect nhooyr.io/websocket v1.8.6 // indirect pgregory.net/rapid v0.5.5 // indirect diff --git a/go.sum b/go.sum index 3d1947395..0eee861d6 100644 --- a/go.sum +++ b/go.sum @@ -32,8 +32,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk= +cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -70,8 +70,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY= -cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg= +cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -111,13 +111,12 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97 cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v0.12.0 h1:DRtTY29b75ciH6Ov1PHb4/iat2CLCvrOm40Q0a6DFpE= -cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v1.1.0 h1:67gSqaPukx7O8WLLHMa0PNs3EBGd2eE4d+psbO/CO94= +cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= -cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= @@ -175,8 +174,8 @@ cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3f cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.29.0 h1:6weCgzRvMg7lzuUurI4697AqIRPU1SvzHhynwpW31jI= -cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= +cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= @@ -192,12 +191,14 @@ cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= -cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= -cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= -cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= -cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= -cosmossdk.io/math v1.0.0 h1:ro9w7eKx23om2tZz/VM2Pf+z2WAbGX1yDQQOJ6iGeJw= -cosmossdk.io/math v1.0.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= +cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= +cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= +cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= +cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0= +cosmossdk.io/log v1.2.1 h1:Xc1GgTCicniwmMiKwDxUjO4eLhPxoVdI9vtMW8Ti/uk= +cosmossdk.io/log v1.2.1/go.mod h1:GNSCc/6+DhFIj1aLn/j7Id7PaO8DzNylUZoOYBL9+I4= +cosmossdk.io/math v1.1.2 h1:ORZetZCTyWkI5GlZ6CZS28fMHi83ZYf+A2vVnHNzZBM= +cosmossdk.io/math v1.1.2/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -208,6 +209,7 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o= github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= 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= @@ -215,19 +217,23 @@ github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1: github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= +github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= 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/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 h1:fLjPD/aNc3UIOA6tDi6QXUemppXK3P9BI7mr2hd6gx8= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/VictoriaMetrics/fastcache v1.6.0 h1:C/3Oi3EiBCqufydp1neRZkqcwmEiuRT9c3fqvvgKm5o= +github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= +github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= 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/alecthomas/participle/v2 v2.0.0-alpha7 h1:cK4vjj0VSgb3lN1nuKA5F7dw+1s1pWBe5bx7nNCnN+c= 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= @@ -287,6 +293,8 @@ github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= +github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= @@ -323,43 +331,53 @@ github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= -github.com/cockroachdb/apd/v3 v3.1.0 h1:MK3Ow7LH0W8zkd5GMKA1PvS9qG3bWFI95WaVNfyZJ/w= +github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU= +github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA= github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c= -github.com/cometbft/cometbft v0.37.1 h1:KLxkQTK2hICXYq21U2hn1W5hOVYUdQgDQ1uB+90xPIg= -github.com/cometbft/cometbft v0.37.1/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= -github.com/cometbft/cometbft-db v0.7.0 h1:uBjbrBx4QzU0zOEnU8KxoDl18dMNgDh+zZRUE0ucsbo= -github.com/cometbft/cometbft-db v0.7.0/go.mod h1:yiKJIm2WKrt6x8Cyxtq9YTEcIMPcEe4XPxhgX59Fzf0= +github.com/cometbft/cometbft v0.37.2 h1:XB0yyHGT0lwmJlFmM4+rsRnczPlHoAKFX6K8Zgc2/Jc= +github.com/cometbft/cometbft v0.37.2/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= +github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AKVZpjo= +github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0= github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= +github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= -github.com/cosmos/cosmos-sdk v0.47.2 h1:9rSriCoiJD+4F+tEDobyM8V7HF5BtY5Ef4VYNig96s0= -github.com/cosmos/cosmos-sdk v0.47.2/go.mod h1:zYzgI8w8hhotXTSoGbbSOAKfpJTx4wOy4XgbaKhtRtc= +github.com/cosmos/cosmos-sdk v0.47.5 h1:n1+WjP/VM/gAEOx3TqU2/Ny734rj/MX1kpUnn7zVJP8= +github.com/cosmos/cosmos-sdk v0.47.5/go.mod h1:EHwCeN9IXonsjKcjpS12MqeStdZvIdxt3VYXhus3G3c= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= 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/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= -github.com/cosmos/gogoproto v1.4.8 h1:BrHKc6WFZt8+jRV71vKSQE+JrfF+JAnzrKo2VP7wIZ4= -github.com/cosmos/gogoproto v1.4.8/go.mod h1:hnb0DIEWTv+wdNzNcqus5xCQXq5+CXauq1FJuurRfVY= +github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI= +github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek= github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= -github.com/cosmos/ibc-go/v7 v7.0.0 h1:j4kyywlG0hhDmT9FmSaR5iCIka7Pz7kJTxGWY1nlV9Q= -github.com/cosmos/ibc-go/v7 v7.0.0/go.mod h1:BFh8nKWjr5zeR2OZfhkzdgDzj1+KjRn3aJLpwapStj8= -github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab h1:I9ialKTQo7248V827Bba4OuKPmk+FPzmTVHsLXaIJWw= -github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab/go.mod h1:2CwqasX5dSD7Hbp/9b6lhK6BwoBDCBldx7gPKRukR60= +github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1 h1:BvSKnPFKxL+TTSLxGKwJN4x0ndCZj0yfXhSvmsQztSA= +github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1/go.mod h1:A+CxAQdn2j6ihDTbClpEEBdHthWgAUAcHbRAQPY8sl4= +github.com/cosmos/ibc-go/v7 v7.3.0 h1:QtGeVMi/3JeLWuvEuC60sBHpAF40Oenx/y+bP8+wRRw= +github.com/cosmos/ibc-go/v7 v7.3.0/go.mod h1:mUmaHFXpXrEdcxfdXyau+utZf14pGKVUiXwYftRZZfQ= +github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= +github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/ledger-cosmos-go v0.12.2 h1:/XYaBlE2BJxtvpkHiBm97gFGSGmYGKunKyF3nNqAXZA= github.com/cosmos/ledger-cosmos-go v0.12.2/go.mod h1:ZcqYgnfNJ6lAXe4HPtWgarNEY+B74i+2/8MhZw4ziiI= github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM= @@ -370,8 +388,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJFxv2Li8= github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cucumber/common/gherkin/go/v22 v22.0.0 h1:4K8NqptbvdOrjL9DEea6HFjSpbdT9+Q5kgLpmmsHYl0= -github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -396,7 +413,9 @@ github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUn github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= @@ -420,27 +439,31 @@ github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go. github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/ethereum/go-ethereum v1.10.26 h1:i/7d9RBBwiXCEuyduBQzJw/mKmnvzsN14jqBmytw72s= github.com/ethereum/go-ethereum v1.10.26/go.mod h1:EYFyF19u3ezGLD4RqOkLq+ZCXzYbLoNDdZlMt7kyKFg= -github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= -github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= -github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o= github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= +github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE= +github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= 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/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= +github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= 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= @@ -457,13 +480,17 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E= +github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= +github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= 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= @@ -475,11 +502,12 @@ github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6Wezm 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-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= @@ -560,12 +588,14 @@ github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17 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.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= 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= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -585,6 +615,8 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 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/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= @@ -603,8 +635,8 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ= -github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4= +github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -674,6 +706,7 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU= github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= 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.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= @@ -687,13 +720,13 @@ github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1: github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= github.com/improbable-eng/grpc-web v0.15.0/go.mod h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPtwNr0l57L4f878wP8= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= 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/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b h1:izTof8BKh/nE1wrKOrloNA5q4odOarjf+Xpe+4qow98= +github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= +github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= @@ -735,17 +768,22 @@ 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.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/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/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= +github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -753,11 +791,16 @@ github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3v github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/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.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= @@ -812,6 +855,7 @@ github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtb github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= 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 v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= @@ -827,10 +871,14 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q= +github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= +github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= +github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -840,20 +888,24 @@ github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJ github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= 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/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= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= 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/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= -github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= +github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= +github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20221215004737-a150e88a970d h1:htwtWgtQo8YS6JFWWi2DNgY0RwSGJ1ruMoxY6CUUclk= -github.com/petermattis/goid v0.0.0-20221215004737-a150e88a970d/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU= +github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= 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= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -885,8 +937,8 @@ github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt2 github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.40.0 h1:Afz7EVRqGg2Mqqf4JuF9vdvp1pi220m55Pi9T2JnO4Q= -github.com/prometheus/common v0.40.0/go.mod h1:L65ZJPSmfn/UBWLQIHV7dBrKFidB/wPlF1y5TlSt9OE= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -896,21 +948,26 @@ github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= 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-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= 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.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c= +github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w= 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= @@ -920,12 +977,14 @@ github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71e github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= 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.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -934,15 +993,15 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO 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.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= -github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= +github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= -github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= +github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= +github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= 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 v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= -github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -951,8 +1010,8 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= -github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= +github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= +github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -971,20 +1030,20 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= -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/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= github.com/tklauser/go-sysconf v0.3.5 h1:uu3Xl4nkLzQfXNsWn15rPc/HQCJKObbt1dKJeWp3vU4= +github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= @@ -994,8 +1053,9 @@ github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3C 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/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= +github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= @@ -1036,6 +1096,7 @@ go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= 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.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= @@ -1059,9 +1120,10 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1073,8 +1135,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us= +golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1101,8 +1163,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 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= @@ -1153,6 +1215,7 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b 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-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1165,8 +1228,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1192,8 +1255,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= -golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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= @@ -1208,8 +1271,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1285,6 +1348,7 @@ golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/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-20210927094055-39ccf1dd6fa6/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-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1307,13 +1371,14 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= 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= @@ -1323,9 +1388,10 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1394,6 +1460,7 @@ 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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= 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= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1452,8 +1519,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU= -google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= 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= @@ -1571,8 +1638,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 h1:EfLuoKW5WfkgVdDy7dTK8qSbH37AX5mj/MFh+bGPz14= -google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= +google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 h1:s5YSX+ZH5b5vS9rnpGymvIyMpLRJizowqDlOuyjXnTk= +google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1614,8 +1685,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= -google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.56.2 h1:fVRFRnXvU+x6C4IlHZewvJOVHoOv1TUuQyoRsYnB4bI= +google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1632,14 +1703,15 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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-20200902074654-038fdea0a05b/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.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= @@ -1666,7 +1738,8 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= -gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/go.work b/go.work index 0c68d3166..9293d3087 100644 --- a/go.work +++ b/go.work @@ -1,6 +1,6 @@ -go 1.20 +go 1.21 use ( -./interchaintest -. -) \ No newline at end of file + . + ./interchaintest +) diff --git a/go.work.sum b/go.work.sum index eff72b080..81280b1e5 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1,890 +1,166 @@ -4d63.com/gochecknoglobals v0.1.0/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= -bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM= -cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= -cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= -cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= -cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= -cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= -cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= -cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= -cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= -cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= -cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= -cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= -cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= -cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= -cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= -cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= -cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= -cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= -cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= -cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= -cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= -cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= -cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= -cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= -cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= -cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= +cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68= +cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo= +cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= +cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= +cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA= +cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs= +cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw= +cloud.google.com/go/appengine v1.8.1/go.mod h1:6NJXGLVhZCN9aQ/AEDvmfzKEfoYBlfB80/BHiKVputY= +cloud.google.com/go/area120 v0.8.1/go.mod h1:BVfZpGpB7KFVNxPiQBuHkX6Ed0rS51xIgmGyjrAfzsg= +cloud.google.com/go/artifactregistry v1.14.1/go.mod h1:nxVdG19jTaSTu7yA7+VbWL346r3rIdkZ142BSQqhn5E= +cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi03hd+WTQ= +cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0= +cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE= +cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= +cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= +cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA= +cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U= +cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI= +cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc= +cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= +cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI= +cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= -cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= -cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= -cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= -cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= -cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= -cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= -cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= -cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= -cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= -cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= -cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= -cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= -cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/contactcenterinsights v1.9.1/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= +cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= +cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0= +cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= +cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw= +cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M= +cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI= +cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY= +cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= +cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= +cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8= +cloud.google.com/go/datastore v1.12.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= +cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= +cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= +cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= +cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI= +cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= +cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE= +cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk= cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= -cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= -cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= -cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= -cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= -cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= -cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= -cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= -cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= -cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= -cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= -cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= -cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= -cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= -cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= -cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= -cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= -cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= -cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= -cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= -cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= -cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= -cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= -cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= -cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= -cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= -cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= -cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= -cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= -cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= -cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= -cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= -cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= -cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= -cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= -cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= -cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= -cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= -cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= -cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= -cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= -cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= -cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= -cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= -cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= -cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= -cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= -cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= -cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= -cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= -cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= -cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= -cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= -cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= -cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= -cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= -cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= -cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= -cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= -cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= -cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= -cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= -cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= -cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= -cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= -cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= -cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= -cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= -cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= -cosmossdk.io/core v0.3.2/go.mod h1:CO7vbe+evrBvHc0setFHL/u7nlY7HJGzdRSBkT/sirc= -cosmossdk.io/math v1.0.0-beta.4/go.mod h1:An0MllWJY6PxibUpnwGk8jOm+a/qIxlKmL5Zyp9NnaM= -github.com/Abirdcfly/dupword v0.0.7/go.mod h1:K/4M1kj+Zh39d2aotRwypvasonOyAMH1c/IZJzE0dmk= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= -github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= -github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0SddnIAGavU= -github.com/Antonboom/nilnil v0.1.1/go.mod h1:L1jBqoWM7AOeTD+tSquifKSesRHs4ZdaxvZR+xdJEaI= -github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= -github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/CloudyKit/fastprinter v0.0.0-20170127035650-74b38d55f37a/go.mod h1:EFZQ978U7x8IRnstaskI3IysnWY5Ao3QgZUKOXlsAdw= -github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= -github.com/CloudyKit/jet v2.1.3-0.20180809161101-62edd43e4f88+incompatible/go.mod h1:HPYO+50pSWkPoj9Q/eq0aRGByCL6ScRlUmiEX5Zgm+w= -github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= -github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= -github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0/go.mod h1:b3g59n2Y+T5xmcxJL+UEG2f8cQploZm1mR/v6BW0mU0= -github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= -github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= -github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= -github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/Microsoft/hcsshim v0.8.20/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= -github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= -github.com/Microsoft/hcsshim v0.9.2/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= -github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= -github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= -github.com/OpenPeeDeeP/depguard v1.1.1/go.mod h1:JtAMzWkmFEzDPyAd+W0NHl1lvpQKTvT9jnRVsohBKpc= -github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4/go.mod h1:UBYPn8k0D56RtnR8RFQMjmh4KrZzWJ5o7Z9SYjossQ8= -github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= -github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= -github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= -github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= -github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= -github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= -github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= -github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= -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/ashanbrown/forbidigo v1.3.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= -github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI= -github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= -github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= -github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= -github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= -github.com/breml/bidichk v0.2.3/go.mod h1:8u2C6DnAy0g2cEq+k/A2+tr9O1s+vHGxWn0LTc70T2A= -github.com/breml/errchkjson v0.3.0/go.mod h1:9Cogkyv9gcT8HREpzi3TiqBxCqDzo8awa92zSDFcofU= -github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= -github.com/btcsuite/btcd v0.23.0 h1:V2/ZgjfDFIygAX3ZapeigkVBoVUtOJKSwrhZdlpSvaA= -github.com/btcsuite/btcd v0.23.0/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= -github.com/btcsuite/btcd v0.23.4 h1:IzV6qqkfwbItOS/sg/aDfPDsjPP8twrCOE2R93hxMlQ= -github.com/btcsuite/btcd v0.23.4/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= -github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= -github.com/btcsuite/btcd/btcec/v2 v2.1.1/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= -github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= -github.com/btcsuite/btcd/btcec/v2 v2.2.1/go.mod h1:9/CSmJxmuvqzX9Wh2fXMWToLOHhPd11lSPuIupwTkI8= -github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A= -github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE= -github.com/btcsuite/btcd/btcutil v1.1.1 h1:hDcDaXiP0uEzR8Biqo2weECKqEw0uHDZ9ixIWevVQqY= -github.com/btcsuite/btcd/btcutil v1.1.1/go.mod h1:nbKlBMNm9FGsdvKvu0essceubPiAcI57pYBNnsLAa34= -github.com/btcsuite/btcd/btcutil v1.1.2/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= -github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= -github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= -github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= -github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= -github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/bufbuild/buf v1.7.0/go.mod h1:Go40fMAF46PnPLC7jJgTQhAI95pmC0+VtxFKVC0qLq0= -github.com/bufbuild/connect-go v1.0.0/go.mod h1:9iNvh/NOsfhNBUH5CtvXeVUskQO1xsrEviH7ZArwZ3I= -github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= -github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= -github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +cloud.google.com/go/essentialcontacts v1.6.2/go.mod h1:T2tB6tX+TRak7i88Fb2N9Ok3PvY3UNbUsMag9/BARh4= +cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= +cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4= +cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= +cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE= +cloud.google.com/go/gaming v1.10.1/go.mod h1:XQQvtfP8Rb9Rxnxm5wFVpAp9zCQkJi2bLIb7iHGwB3s= +cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= +cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw= +cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY= +cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= +cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ= +cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw= +cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk= +cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= +cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0= +cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/longrunning v0.4.2/go.mod h1:OHrnaYyLUV6oqwh0xiS7e5sLQhP1m0QU9R+WhGDMgIQ= +cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= +cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak= +cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= +cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig= +cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA= +cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= +cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM= +cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E= +cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0= +cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ= +cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8= +cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk= +cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8= +cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE= +cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE= +cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs= +cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I= +cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0= +cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA= +cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= +cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.2/go.mod h1:kR0KjsJS7Jt1YSyWFkseQ756D45kaYNTlDPPaRAvDBU= +cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE= +cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA= +cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg= +cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8= +cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw= +cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE= +cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= +cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo= +cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw= +cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA= +cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ= +cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= +cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g= +cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI= +cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= +cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA= +cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24= +cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0hCZBwXYqucgSk= +cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E= +cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk= +cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= +cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= +cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo= +cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU= +cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro= +cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= +cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs= +cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc= +cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg= +cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= -github.com/chavacava/garif v0.0.0-20220630083739-93517212f375/go.mod h1:4m1Rv7xfuwWPNKXlThldNuJvutYM6J95wNuuVmn55To= -github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= -github.com/cockroachdb/datadriven v1.0.0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4= -github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= -github.com/cockroachdb/errors v1.6.1/go.mod h1:tm6FTP5G81vwJ5lC0SizQo374JNCOPrHyXGitRJoDqM= -github.com/cockroachdb/errors v1.8.1/go.mod h1:qGwQn6JmZ+oMjuLwjWzUNqblqk0xl4CVV3SQbGwK7Ac= -github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= -github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= -github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v0.0.0-20220817183557-09c6e030a677/go.mod h1:890yq1fUb9b6dGNwssgeUO5vQV9qfXnCPxAJhBQfXw0= -github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ= -github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= -github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8= -github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s= -github.com/containerd/containerd v1.6.1/go.mod h1:1nJz5xCZPusx6jJU8Frfct988y0NpumIq9ODB0kLtoE= -github.com/containerd/containerd v1.6.8/go.mod h1:By6p5KqPK0/7/CgO/A6t/Gz+CUYUu2zf1hUaaymVXB0= -github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk= -github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= -github.com/containerd/go-cni v1.1.0/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= -github.com/containerd/go-cni v1.1.3/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= -github.com/containerd/go-cni v1.1.6/go.mod h1:BWtoWl5ghVymxu6MBjg79W9NZrCRyHIdUtk4cauMe34= -github.com/containerd/imgcrypt v1.1.3/go.mod h1:/TPA1GIDXMzbj01yd8pIbQiLdQxed5ue1wb8bP7PQu4= -github.com/containerd/imgcrypt v1.1.4/go.mod h1:LorQnPtzL/T0IyCeftcsMEO7AqxUDbdO8j/tSUpgxvo= -github.com/containernetworking/cni v1.0.1/go.mod h1:AKuhXbN5EzmD4yTNtfSsX3tPcmtrBI6QcRV0NiNt15Y= -github.com/containernetworking/cni v1.1.1/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= -github.com/containernetworking/plugins v1.0.1/go.mod h1:QHCfGpaTwYTbbH+nZXKVTxNBDZcxSOplJT5ico8/FLE= -github.com/containernetworking/plugins v1.1.1/go.mod h1:Sr5TH/eBsGLXK/h71HeLfX19sZPp3ry5uHSkI4LPxV8= -github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= -github.com/containers/ocicrypt v1.1.3/go.mod h1:xpdkbVAuaH3WzbEabUd5yDsl9SwJA5pABH85425Es2g= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32/go.mod h1:kwMlEC4wWvB48zAShGKVqboJL6w4zCLesaNQ3YLU2BQ= -github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= -github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a/go.mod h1:c8IO23vgNxueCCJlSI9awQtcxsvc+buzaeThB85qfBU= -github.com/cosmos/gogoproto v1.4.1/go.mod h1:Ac9lzL4vFpBMcptJROQ6dQ4M3pOEK5Z/l0Q9p+LoCr4= -github.com/cosmos/gogoproto v1.4.3/go.mod h1:0hLIG5TR7IvV1fme1HCFKjfzW9X2x0Mo+RooWXCnOWU= -github.com/cosmos/gogoproto v1.4.4/go.mod h1:/yl6/nLwsZcZ2JY3OrqjRqvqCG9InUMcXRfRjQiF9DU= -github.com/cosmos/ledger-cosmos-go v0.12.1/go.mod h1:dhO6kj+Y+AHIOgAe4L9HL/6NDdyyth4q238I9yFpD2g= -github.com/creachadair/taskgroup v0.3.2/go.mod h1:wieWwecHVzsidg2CsUnFinW1faVN4+kq+TDlRJQ0Wbk= -github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cristalhq/acmd v0.8.1/go.mod h1:LG5oa43pE/BbxtfMoImHCQN++0Su7dzipdgBjMCBVDQ= -github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= -github.com/daixiang0/gci v0.8.1/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= -github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= -github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= -github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= -github.com/docker/docker v20.10.19+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= -github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= -github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= -github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= -github.com/esimonov/ifshort v1.0.4/go.mod h1:Pe8zjlRrJ80+q2CxHLfEOfTwxCZ4O+MuhcHcfgNWTk0= -github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= -github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= -github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= -github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= -github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= -github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= -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/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= -github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4/go.mod h1:T9YF2M40nIgbVgp3rreNmTged+9HrbNTIQf1PsaIiTA= -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.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= -github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= -github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= -github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= -github.com/getsentry/sentry-go v0.17.0/go.mod h1:B82dxtBvxG0KaPD8/hfSV+VcHD+Lg/xUS4JuQn1P4cM= -github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= -github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= -github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= -github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= -github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= -github.com/go-chi/chi/v5 v5.0.7/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= -github.com/go-critic/go-critic v0.6.5/go.mod h1:ezfP/Lh7MA6dBNn4c6ab5ALv3sKnZVLx37tr00uuaOY= -github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= -github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= -github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-billy/v5 v5.4.0/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= -github.com/go-git/go-git-fixtures/v4 v4.3.1/go.mod h1:8LHG1a3SRW71ettAD/jW13h8c6AqjVSeL11RAdgaqpo= -github.com/go-git/go-git/v5 v5.5.2/go.mod h1:BE5hUJ5yaV2YMxhmaP4l6RBQ08kMxKSPD4BlxtH7OjI= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= -github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= -github.com/go-toolsmith/astcopy v1.0.2/go.mod h1:4TcEdbElGc9twQEYpVo/aieIXfHhiuLh4aLAck6dO7Y= -github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= -github.com/go-toolsmith/astequal v1.0.2/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= -github.com/go-toolsmith/astequal v1.0.3/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= -github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= -github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= -github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5/go.mod h1:3NAwwmD4uY/yggRxoEjk/S00MIV3A+H7rrE3i87eYxM= -github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= -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/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= -github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/snappy v0.0.1/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-20220329215616-d24fe342adfe/go.mod h1:gjqyPShc/m8pEMpk0a3SeagVb0kaqvhscv+i9jI5ZhQ= -github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2/go.mod h1:9wOXstvyDRshQ9LggQuzBCGysxs3b6Uo/1MvYCR2NMs= -github.com/golangci/golangci-lint v1.50.1/go.mod h1:AQjHBopYS//oB8xs0y0M/dtxdKHkdhl0RvmjUct0/4w= -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-20220804021717-745bb2f7c2e6/go.mod h1:0AKcRCkMoKvUvlf89F6O7H2LYdhr1zBh736mBItOdRs= -github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= -github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= -github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= -github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= -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.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.1.0/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/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/api v1.18.0/go.mod h1:owRRGJ9M5xReDC5nfT8FTJrNAPbT4NM6p/k+d03q2v4= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.13.0/go.mod h1:0hs/l5fOVhJy/VdcoaNqUSi2AUs95eF5WKtv+EYIQqE= -github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -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-retryablehttp v0.7.0/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= -github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= -github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= -github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= -github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= -github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= -github.com/hydrogen18/memlistener v0.0.0-20141126152155-54553eb933fb/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= -github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= -github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= -github.com/informalsystems/tm-load-test v1.3.0/go.mod h1:OQ5AQ9TbT5hKWBNIwsMjn6Bf4O0U4b1kRc+0qZlQJKw= -github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ= -github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= -github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= -github.com/iris-contrib/i18n v0.0.0-20171121225848-987a633949d0/go.mod h1:pMCz62A0xJL6I+umB2YTlFRwWXaDFA0jy+5HzGiJjqI= -github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= -github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= -github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= -github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a/go.mod h1:Zi/ZFkEqFHTm7qkjyNJjaWH4LQA9LQhGJyF0lTYGpxw= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= -github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= -github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= -github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= -github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ= -github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f/go.mod h1:qr2b5kx4HbFS7/g4uYO5qv9ei8303JMsC7ESbYiqr2Q= -github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E= -github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= -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/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= -github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= -github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= -github.com/julz/importas v0.1.0/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/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= -github.com/kataras/golog v0.0.9/go.mod h1:12HJgwBIZFNGL0EJnMRhmvGA0PQGx8VFwrZtM4CqbAk= -github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= -github.com/kataras/iris/v12 v12.0.1/go.mod h1:udK4vLQKkdDqMGJJVd/msuMtN6hpYJhg/lSzuxjhO+U= -github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= -github.com/kataras/neffos v0.0.10/go.mod h1:ZYmJC07hQPW67eKuzlfY7SO3bC0mw83A3j6im82hfqw= -github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= -github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0= -github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= -github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= -github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= +github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= -github.com/kkHAIKE/contextcheck v1.1.3/go.mod h1:PG/cwd6c0705/LM0KTr1acO2gORUxkSVWyLJOFW5qoo= -github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.9.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/cpuid v1.2.1 h1:vJi+O/nMdFt0vqm8NZBI6wzALWdA2X+egi0ogNyrC/w= -github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= -github.com/kunwardeep/paralleltest v1.0.6/go.mod h1:Y0Y0XISdZM5IKm3TREQMZ6iteqn1YuwCsJO/0kL9Zes= -github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= -github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= -github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= -github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= -github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= -github.com/ldez/tagliatelle v0.3.1/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= -github.com/leonklingele/grouper v1.1.0/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/linxGnu/grocksdb v1.7.10/go.mod h1:0hTf+iA+GOr0jDX4CgIYyJZxqOH9XlBh6KVj8+zmF34= -github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= -github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE= -github.com/maratori/testpackage v1.1.0/go.mod h1:PeAhzU8qkCwdGEMTEupsHJNlQu2gZopMC6RjbhmHeDc= -github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= -github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= -github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.6/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/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= -github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= -github.com/mediocregopher/mediocre-go-lib v0.0.0-20181029021733-cb65787f37ed/go.mod h1:dSsfyI2zABAdhcbvkXqgxOxrCsbYeHCPgrZkku60dSg= -github.com/mediocregopher/radix/v3 v3.3.0/go.mod h1:EmfVyvspXz1uZEyPBMyGK+kjWiKQGvsUt6O3Pj+LDCQ= -github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= -github.com/mgechev/revive v1.2.4/go.mod h1:iAWlQishqCuj4yhV24FTnKSXGpbAA+0SckXB8GQMX/Q= -github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= -github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= -github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= -github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= -github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/moby/buildkit v0.10.4/go.mod h1:Yajz9vt1Zw5q9Pp4pdb3TCSUXJBIroIQGQ3TTs/sLug= -github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/sys/signal v0.6.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= -github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs= -github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= -github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= -github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= -github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= -github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= -github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= -github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= -github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= -github.com/nishanths/exhaustive v0.8.3/go.mod h1:qj+zJJUgJ76tR92+25+03oYUhzF4R7/2Wk7fGTfCHmg= -github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= -github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= -github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= -github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= -github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= -github.com/opencontainers/runc v1.1.2/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= -github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= -github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= -github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= -github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= -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/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= -github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= -github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= -github.com/pjbgf/sha1cd v0.2.3/go.mod h1:HOK9QrgzdHpbc2Kzip0Q1yi3M2MFGPADtR6HjG65m5M= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/profile v1.6.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pointlander/compress v1.1.1-0.20190518213731-ff44bd196cc3/go.mod h1:q5NXNGzqj5uPnVuhGkZfmgHqNUhf15VLi6L9kW0VEc0= -github.com/pointlander/jetset v1.0.1-0.20190518214125-eee7eff80bd4/go.mod h1:RdR1j20Aj5pB6+fw6Y9Ur7lMHpegTEjY1vc19hEZL40= -github.com/pointlander/peg v1.0.1/go.mod h1:5hsGDQR2oZI4QoWz0/Kdg3VSVEC31iJw/b7WjqCBGRI= -github.com/polyfloyd/go-errorlint v1.0.5/go.mod h1:APVvOesVSAnne5SClsPxPdfvZTVDojXh1/G3qb5wjGI= -github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30= -github.com/quasilyte/go-ruleguard v0.3.18/go.mod h1:lOIzcYlgxrQ2sGJ735EHXmf/e9MJ516j16K/Ifcttvs= -github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/dsl v0.3.21/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-20211022131956-028d6511ab71/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50= -github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= -github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= -github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= -github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= -github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= -github.com/ryancurrah/gomodguard v1.2.4/go.mod h1:+Kem4VjWwvFpUJRJSwa16s1tBJe+vbv02+naTow2f6M= -github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= -github.com/sagikazarmark/crypt v0.9.0/go.mod h1:RnH7sEhxfdnPm1z+XMgSLjWTEIjyK4z2dw6+4vHTMuo= -github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= -github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= -github.com/sashamelentyev/usestdlibvars v1.20.0/go.mod h1:0GaP+ecfZMXShS0A94CJn6aEuPRILv8h/VuWI9n1ygg= -github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= -github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= -github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= -github.com/securego/gosec/v2 v2.13.1/go.mod h1:EO1sImBMBWFjOTFzMWfTRrZW6M15gm60ljzrmy/wtHo= -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/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/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= -github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= -github.com/sivchari/tenv v1.7.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= -github.com/skeema/knownhosts v1.1.0/go.mod h1:sKFq3RD6/TKZkSWn8boUbDC7Qkgcv+8XXijpFO6roag= -github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4= -github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= -github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= -github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= -github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.13.0/go.mod h1:Icm2xNL3/8uyh/wFuB1jI7TiTNKp8632Nwegu+zgdYw= -github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As= -github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= -github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= -github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= -github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= -github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= -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/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= -github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= -github.com/timonwong/loggercheck v0.9.3/go.mod h1:wUqnk9yAOIKtGA39l1KLE9Iz0QiTocu/YZoOf+OzFdw= -github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tomarrell/wrapcheck/v2 v2.7.0/go.mod h1:ao7l5p0aOlUNJKI0qVwB4Yjlqutd0IvAB9Rdwyilxvg= -github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= -github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= -github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= -github.com/ultraware/whitespace v0.0.5/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= -github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/uudashr/gocognit v1.0.6/go.mod h1:nAIUuVBnYU7pcninia3BHOvQkpQCeO76Uscky5BOwcY= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= -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/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= -github.com/vektra/mockery/v2 v2.14.0/go.mod h1:bnD1T8tExSgPD1ripLkDbr60JA9VtQeu12P3wgLZd7M= -github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= -github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= -github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= -github.com/yeya24/promlinter v0.2.0/go.mod h1:u54lkmBOZrpEbQQ6gox2zWKKLKu2SGe+2KOiextY+IA= -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.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zondax/ledger-go v0.14.0/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= -gitlab.com/bosi/decorder v0.2.3/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/api/v3 v3.5.6/go.mod h1:KFtNaxGDw4Yx/BA4iPPwevUTAuqcsPxzyX8PHydchN8= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/pkg/v3 v3.5.6/go.mod h1:ggrwbk069qxpKPq8/FKkQ3Xq9y39kbFR4LnKszpRXeQ= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.etcd.io/etcd/client/v2 v2.305.6/go.mod h1:BHha8XJGe8vCIBfWBpbBLVZ4QjOIlfoouvOwydu63E0= -go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= -go.etcd.io/etcd/client/v3 v3.5.6/go.mod h1:f6GRinRMCsFVv9Ht42EyY7nfsVGwrNO0WEoS2pRKzQk= -go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= -go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= -go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= -go.etcd.io/gofail v0.1.0/go.mod h1:VZBCXYGZhHAinaBiiqYvuDynvahNsAyLFwB3kEHKz1M= -go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.3/go.mod h1:Dts42MGkzZne2yCru741+bFiTMWkIj/LLRizad7b9tw= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= -go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= -go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= -go.opentelemetry.io/otel v1.4.1/go.mod h1:StM6F/0fSwpd8dKWDCdRr7uRvEPYdW0hBSlbdTiUde4= -go.opentelemetry.io/otel v1.11.0/go.mod h1:H2KtuEphyMvlhZ+F7tg9GRhAOe60moNx61Ex+WmiKkk= -go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.4.1/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0/go.mod h1:hO1KLR7jcKaDDKDkvI9dP/FIhpmna5lkqPUQdEjFAM8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.4.1/go.mod h1:o5RW5o2pKpJLD5dNTCmjF1DorYwMeFJmb/rKr5sLaa8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0/go.mod h1:keUU7UfnwWTWpJ+FWnyqmogPa82nuU5VUANFq49hlMY= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.4.1/go.mod h1:c6E4V3/U+miqjs/8l950wggHGL1qzlp0Ypj9xoGrPqo= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0/go.mod h1:QNX1aly8ehqqX1LEa6YniTU7VY9I6R3X/oPxhGdTceE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.4.1/go.mod h1:VwYo0Hak6Efuy0TXsZs8o1hnV3dHDPNtDbycG0hI8+M= -go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= -go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= -go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= -go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= -go.opentelemetry.io/otel/sdk v1.4.1/go.mod h1:NBwHDgDIBYjwK2WNu1OPgsIc2IJzmBXNnvIJxJc8BpE= -go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= -go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= -go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= -go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= -go.opentelemetry.io/otel/trace v1.4.1/go.mod h1:iYEVbroFCNut9QkwEczV9vMRPHNKSSwYZjulEtsmhFc= -go.opentelemetry.io/otel/trace v1.11.0/go.mod h1:nyYjis9jy0gytE9LXGU+/m1sHTKbRY0fX0hulNNDP1U= -go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= -go.opentelemetry.io/proto/otlp v0.12.0/go.mod h1:TsIjwGWIx5VFYv9KGVlOpxoBl5Dy+63SUguV7GGvlSQ= -go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= -go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/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-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20200513190911-00229845015e/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= -golang.org/x/exp v0.0.0-20221019170559-20944726eadf/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= -golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= -golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= -golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/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-20210909193231-528a39cd75f3/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/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/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-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.1.0/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-20181221001348-537d06c36207/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-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= -golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/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-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -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-20190916130336-e45ffcd953cc/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-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -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-20200414032229-332987a829c3/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-20200724022722-7017fd6b1305/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-20200831203904-5a2aa26beb65/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-20201230224404-63754364767c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -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.9-0.20211228192929-ee1ca4ffc4da/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= -golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= -golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= -google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230202175211-008b39050e57/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= -google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= -google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= -google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= -google.golang.org/protobuf v1.27.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= -gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= -gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= -gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= -honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= -k8s.io/api v0.22.5/go.mod h1:mEhXyLaSD1qTOf40rRiKXkc+2iCem09rWLlFwhCEiAs= -k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= -k8s.io/apimachinery v0.22.5/go.mod h1:xziclGKwuuJ2RM5/rSFQSYAj0zdbci3DH8kj+WvyN0U= -k8s.io/apiserver v0.22.5/go.mod h1:s2WbtgZAkTKt679sYtSudEQrTGWUSQAPe6MupLnlmaQ= -k8s.io/client-go v0.22.5/go.mod h1:cs6yf/61q2T1SdQL5Rdcjg9J1ElXSwbjSrW2vFImM4Y= -k8s.io/component-base v0.22.5/go.mod h1:VK3I+TjuF9eaa+Ln67dKxhGar5ynVbwnGrUiNF4MqCI= -k8s.io/cri-api v0.23.1/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4= -k8s.io/cri-api v0.25.0/go.mod h1:J1rAyQkSJ2Q6I+aBMOVgg2/cbbebso6FNa0UagiR0kc= -k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ= -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-20220706161116-678bad134442/go.mod h1:F/Cxw/6mVrNKqrR2YjFf5CaW0Bw4RL8RfbEf4GRggJk= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= +google.golang.org/api v0.125.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230629202037-9506855d4529/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= diff --git a/interchaintest/acc_cache_test.go b/interchaintest/acc_cache_test.go new file mode 100644 index 000000000..3c255bbaa --- /dev/null +++ b/interchaintest/acc_cache_test.go @@ -0,0 +1,43 @@ +package interchaintest + +import ( + "testing" + + "github.com/cometbft/cometbft/crypto/ed25519" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stretchr/testify/require" +) + +// See https://github.com/cosmos/cosmos-sdk/issues/15317 for description of bug. +// Basically, in cosmos SDK, there is an account address cache that will ignore the bech32 prefix setting. +// This will cause the AccAddress.String() to print out unexpected prefixes. +// If this function fails you are on an unsafe SDK version that should NOT be used with the relayer. +func TestAccCacheBugfix(t *testing.T) { + sdk.SetAddrCacheEnabled(false) + + // Use a random key + priv := ed25519.GenPrivKey() + pub := priv.PubKey() + + //Set to 'osmo' + prefix := "osmo" + sdkConf := sdk.GetConfig() + sdkConf.SetBech32PrefixForAccount(prefix, prefix+"pub") + sdkConf.SetBech32PrefixForValidator(prefix+"valoper", prefix+"valoperpub") + sdkConf.SetBech32PrefixForConsensusNode(prefix+"valcons", prefix+"valconspub") + + addrOsmo := sdk.AccAddress(pub.Address()) + osmoAddrBech32 := addrOsmo.String() + + //Set to 'cosmos' + prefix = "cosmos" + sdkConf.SetBech32PrefixForAccount(prefix, prefix+"pub") + sdkConf.SetBech32PrefixForValidator(prefix+"valoper", prefix+"valoperpub") + sdkConf.SetBech32PrefixForConsensusNode(prefix+"valcons", prefix+"valconspub") + + addrCosmos := sdk.AccAddress(pub.Address()) + cosmosAddrBech32 := addrCosmos.String() + + //If the addresses are equal, the AccAddress caching caused a bug + require.NotEqual(t, osmoAddrBech32, cosmosAddrBech32) +} diff --git a/interchaintest/client_threshold_test.go b/interchaintest/client_threshold_test.go index 8b608ca68..fd77f70db 100644 --- a/interchaintest/client_threshold_test.go +++ b/interchaintest/client_threshold_test.go @@ -12,6 +12,7 @@ import ( "github.com/strangelove-ventures/interchaintest/v7/testreporter" "github.com/strangelove-ventures/interchaintest/v7/testutil" "github.com/stretchr/testify/require" + "go.uber.org/zap" "go.uber.org/zap/zaptest" "golang.org/x/sync/errgroup" ) @@ -24,8 +25,6 @@ const ( // Tests that the Relayer will update light clients within a // user specified time threshold. func TestScenarioClientThresholdUpdate(t *testing.T) { - t.Parallel() - ctx := context.Background() nv := 1 @@ -43,7 +42,7 @@ func TestScenarioClientThresholdUpdate(t *testing.T) { g0, g1 := chains[0], chains[1] client, network := interchaintest.DockerSetup(t) - relayerinterchaintest.BuildRelayerImage(t) + image := relayerinterchaintest.BuildRelayerImage(t) // Relayer is set with "--time-threshold 5m" // The client being created below also has a trusting period of 5m. @@ -51,7 +50,7 @@ func TestScenarioClientThresholdUpdate(t *testing.T) { r := interchaintest.NewBuiltinRelayerFactory( ibc.CosmosRly, zaptest.NewLogger(t), - interchaintestrelayer.CustomDockerImage(relayerinterchaintest.RelayerImageName, "latest", "100:1000"), + interchaintestrelayer.CustomDockerImage(image, "latest", "100:1000"), interchaintestrelayer.ImagePull(false), interchaintestrelayer.StartupFlags("--time-threshold", "20s"), ).Build(t, client, network) @@ -85,6 +84,9 @@ func TestScenarioClientThresholdUpdate(t *testing.T) { Client: client, NetworkID: network, })) + + t.Parallel() + t.Cleanup(func() { _ = ic.Close() }) @@ -144,9 +146,8 @@ func TestScenarioClientThresholdUpdate(t *testing.T) { // Tests that without the threshold flag, the clients will be updated // automatically due to passing 2/3 trusting period expiration. func TestScenarioClientTrustingPeriodUpdate(t *testing.T) { - t.Parallel() - ctx := context.Background() + t.Parallel() nv := 1 nf := 0 @@ -163,14 +164,15 @@ func TestScenarioClientTrustingPeriodUpdate(t *testing.T) { g0, g1 := chains[0], chains[1] client, network := interchaintest.DockerSetup(t) - relayerinterchaintest.BuildRelayerImage(t) + image := relayerinterchaintest.BuildRelayerImage(t) + logger := zaptest.NewLogger(t) // Relayer is set with "--time-threshold 0" // The Relayer should NOT continuously update clients r := interchaintest.NewBuiltinRelayerFactory( ibc.CosmosRly, - zaptest.NewLogger(t), - interchaintestrelayer.CustomDockerImage(relayerinterchaintest.RelayerImageName, "latest", "100:1000"), + logger, + interchaintestrelayer.CustomDockerImage(image, "latest", "100:1000"), interchaintestrelayer.ImagePull(false), ).Build(t, client, network) @@ -203,18 +205,24 @@ func TestScenarioClientTrustingPeriodUpdate(t *testing.T) { SkipPathCreation: false, })) + t.Cleanup(func() { _ = ic.Close() }) // Wait 2 blocks after building interchain require.NoError(t, testutil.WaitForBlocks(ctx, 2, g0, g1)) + g0Ctx := context.Background() + g1Ctx := context.Background() - g0Height, err := g0.Height(ctx) + g0Height, err := g0.Height(g0Ctx) require.NoError(t, err) - g1Height, err := g1.Height(ctx) + g1Height, err := g1.Height(g1Ctx) require.NoError(t, err) + logger.Info("Chain height", zap.String("g0 chainID", g0.Config().ChainID), zap.Uint64("height", g0Height)) + logger.Info("Chain height", zap.String("g1 chainID", g1.Config().ChainID), zap.Uint64("g1 height", g1Height)) + require.NoError(t, r.StartRelayer(ctx, eRep, ibcPath)) t.Cleanup(func() { _ = r.StopRelayer(ctx, eRep) @@ -222,13 +230,13 @@ func TestScenarioClientTrustingPeriodUpdate(t *testing.T) { const heightOffset = 10 - g0Conns, err := r.GetConnections(ctx, eRep, g0ChainId) + g0Conns, err := r.GetConnections(g0Ctx, eRep, g0ChainId) require.NoError(t, err) require.Len(t, g0Conns, 1) g0ClientID := g0Conns[0].ClientID - g1Conns, err := r.GetConnections(ctx, eRep, g1ChainId) + g1Conns, err := r.GetConnections(g1Ctx, eRep, g1ChainId) require.NoError(t, err) require.Len(t, g1Conns, 1) @@ -236,7 +244,11 @@ func TestScenarioClientTrustingPeriodUpdate(t *testing.T) { var eg errgroup.Group eg.Go(func() error { - msg, err := pollForUpdateClient(ctx, g0, g0Height, g0Height+heightOffset) + updatedG0Height, err := g0.Height(g0Ctx) + require.NoError(t, err) + logger.Info("G0 Chain height (2)", zap.String("g0 chainID", g0.Config().ChainID), zap.Uint64("g0 height", updatedG0Height)) + + msg, err := pollForUpdateClient(g0Ctx, g0, updatedG0Height, updatedG0Height+heightOffset) if err != nil { return fmt.Errorf("first chain: %w", err) } @@ -246,7 +258,11 @@ func TestScenarioClientTrustingPeriodUpdate(t *testing.T) { return nil }) eg.Go(func() error { - msg, err := pollForUpdateClient(ctx, g1, g1Height, g1Height+heightOffset) + updatedG1Height, err := g1.Height(g1Ctx) + require.NoError(t, err) + logger.Info("G1 Chain height (2)", zap.String("g1 chainID", g1.Config().ChainID), zap.Uint64("g1 height", updatedG1Height)) + + msg, err := pollForUpdateClient(g1Ctx, g1, updatedG1Height, updatedG1Height+heightOffset) if err != nil { return fmt.Errorf("second chain: %w", err) } diff --git a/interchaintest/docker.go b/interchaintest/docker.go index d44f35cc7..384b5e4c1 100644 --- a/interchaintest/docker.go +++ b/interchaintest/docker.go @@ -12,11 +12,12 @@ import ( dockertypes "github.com/docker/docker/api/types" "github.com/docker/docker/pkg/archive" + "github.com/google/uuid" "github.com/moby/moby/client" "github.com/stretchr/testify/require" ) -const RelayerImageName = "interchaintestrelayer" +const RelayerImagePrefix = "interchaintestrelayer" type dockerLogLine struct { Stream string `json:"stream"` @@ -29,7 +30,14 @@ type dockerErrorDetail struct { Message string `json:"message"` } -func BuildRelayerImage(t *testing.T) { +func uniqueRelayerImageName() (string, error) { + uuid, err := uuid.NewRandom() + if err != nil { + return "", fmt.Errorf("failed to generate uuid %v", err) + } + return RelayerImagePrefix + uuid.String()[:6], nil +} +func BuildRelayerImage(t *testing.T) string { _, b, _, _ := runtime.Caller(0) basepath := filepath.Join(filepath.Dir(b), "..") @@ -39,14 +47,34 @@ func BuildRelayerImage(t *testing.T) { cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) require.NoError(t, err, "error building docker client") + image, err := uniqueRelayerImageName() + require.NoError(t, err, "error generating unique tag for docker image") + res, err := cli.ImageBuild(context.Background(), tar, dockertypes.ImageBuildOptions{ Dockerfile: "local.Dockerfile", - Tags: []string{RelayerImageName}, + Tags: []string{image}, }) require.NoError(t, err, "error building docker image") defer res.Body.Close() + t.Cleanup(func() { + destroyRelayerImage(t, image) + }) handleDockerBuildOutput(t, res.Body) + return image +} + +func destroyRelayerImage(t *testing.T, image string) { + // Create a Docker client + cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) + require.NoError(t, err, "error building docker client") + + // Remove the Docker image using the provided tag (uniquestr) + _, err = cli.ImageRemove(context.Background(), image, dockertypes.ImageRemoveOptions{ + Force: true, // Force remove the image + PruneChildren: true, // Remove all child images + }) + require.NoError(t, err, "error removing docker image") } func handleDockerBuildOutput(t *testing.T, body io.Reader) { diff --git a/interchaintest/fee_middleware_test.go b/interchaintest/fee_middleware_test.go index 71d65d616..850fe27d7 100644 --- a/interchaintest/fee_middleware_test.go +++ b/interchaintest/fee_middleware_test.go @@ -16,13 +16,11 @@ import ( "go.uber.org/zap/zaptest" ) -func TestScenarioFeeMiddleware(t *testing.T) { +func TestRelayerFeeMiddleware(t *testing.T) { if testing.Short() { t.Skip() } - t.Parallel() - nv := 1 nf := 0 @@ -73,11 +71,13 @@ func TestScenarioFeeMiddleware(t *testing.T) { SkipPathCreation: false, })) + t.Parallel() + t.Cleanup(func() { _ = ic.Close() }) - err = testutil.WaitForBlocks(ctx, 10, chainA, chainB) + err = testutil.WaitForBlocks(ctx, 5, chainA, chainB) require.NoError(t, err) // ChainID of ChainA @@ -180,7 +180,7 @@ func TestScenarioFeeMiddleware(t *testing.T) { ) // Wait for relayer to run - err = testutil.WaitForBlocks(ctx, 5, chainA, chainB) + err = testutil.WaitForBlocks(ctx, 10, chainA, chainB) require.NoError(t, err) // Assigning denom diff --git a/interchaintest/feegrant_test.go b/interchaintest/feegrant_test.go new file mode 100644 index 000000000..6c35f2793 --- /dev/null +++ b/interchaintest/feegrant_test.go @@ -0,0 +1,547 @@ +package interchaintest + +import ( + "context" + "encoding/hex" + "fmt" + "math/rand" + "strings" + "testing" + "time" + + "github.com/avast/retry-go/v4" + rpcclient "github.com/cometbft/cometbft/rpc/client" + ctypes "github.com/cometbft/cometbft/rpc/core/types" + "github.com/cosmos/cosmos-sdk/types" + txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/cosmos/go-bip39" + transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + "github.com/cosmos/relayer/v2/relayer" + "github.com/cosmos/relayer/v2/relayer/chains/cosmos" + "github.com/cosmos/relayer/v2/relayer/processor" + interchaintest "github.com/strangelove-ventures/interchaintest/v7" + "github.com/strangelove-ventures/interchaintest/v7/ibc" + "github.com/strangelove-ventures/interchaintest/v7/testreporter" + "github.com/strangelove-ventures/interchaintest/v7/testutil" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zaptest" + "golang.org/x/sync/errgroup" +) + +// protoTxProvider is a type which can provide a proto transaction. It is a +// workaround to get access to the wrapper TxBuilder's method GetProtoTx(). +type protoTxProvider interface { + GetProtoTx() *txtypes.Tx +} + +type chainFeegrantInfo struct { + granter string + grantees []string +} + +func genMnemonic(t *testing.T) string { + // read entropy seed straight from tmcrypto.Rand and convert to mnemonic + entropySeed, err := bip39.NewEntropy(256) + if err != nil { + t.Fail() + } + + mn, err := bip39.NewMnemonic(entropySeed) + if err != nil { + t.Fail() + } + + return mn +} + +// TestRelayerFeeGrant Feegrant on a single chain +// Run this test with e.g. go test -timeout 300s -run ^TestRelayerFeeGrant$ github.com/cosmos/relayer/v2/ibctest. +// +// Helpful to debug: +// docker ps -a --format {{.Names}} then e.g. docker logs gaia-1-val-0-TestRelayerFeeGrant 2>&1 -f +func TestRelayerFeeGrant(t *testing.T) { + ctx := context.Background() + logger := zaptest.NewLogger(t) + + nv := 1 + nf := 0 + + //In order to have this image locally you'd need to build it with heighliner, e.g., + //from within the local "gaia" directory, run the following command: + //../heighliner/heighliner build -c gaia --local -f ../heighliner/chains.yaml + // gaiaImage := ibc.DockerImage{ + // Repository: "gaia", + // Version: "local", + // UidGid: "1025:1025", //the heighliner user string. this isn't exposed on ibctest + // } + + // gaiaChainSpec := &interchaintest.ChainSpec{ + // ChainName: "gaia", + // NumValidators: &nv, + // NumFullNodes: &nf, + // ChainConfig: ibc.ChainConfig{ + // Type: "cosmos", + // Name: "gaia", + // //ChainID: "gaia-1", //I believe this will be auto-generated? + // Images: []ibc.DockerImage{gaiaImage}, + // Bin: "gaiad", + // Bech32Prefix: "cosmos", + // Denom: "uatom", + // GasPrices: "0.01uatom", + // TrustingPeriod: "504h", + // GasAdjustment: 1.3, + // }} + + var tests = [][]*interchaintest.ChainSpec{ + { + {Name: "gaia", ChainName: "gaia", Version: "v7.0.3", NumValidators: &nv, NumFullNodes: &nf}, + {Name: "osmosis", ChainName: "osmosis", Version: "v14.0.1", NumValidators: &nv, NumFullNodes: &nf}, + }, + { + {Name: "gaia", ChainName: "gaia", Version: "v7.0.3", NumValidators: &nv, NumFullNodes: &nf}, + {Name: "kujira", ChainName: "kujira", Version: "v0.8.7", NumValidators: &nv, NumFullNodes: &nf}, + }, + } + + for _, tt := range tests { + testname := fmt.Sprintf("%s,%s", tt[0].Name, tt[1].Name) + t.Run(testname, func(t *testing.T) { + + // Chain Factory + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), tt) + + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + gaia, osmosis := chains[0], chains[1] + + // Relayer Factory to construct relayer + r := NewRelayerFactory(RelayerConfig{ + Processor: relayer.ProcessorEvents, + InitialBlockHistory: 100, + }).Build(t, nil, "") + + processor.PathProcMessageCollector = make(chan *processor.PathProcessorMessageResp, 10000) + + // Prep Interchain + const ibcPath = "gaia-osmosis" + ic := interchaintest.NewInterchain(). + AddChain(gaia). + AddChain(osmosis). + AddRelayer(r, "relayer"). + AddLink(interchaintest.InterchainLink{ + Chain1: gaia, + Chain2: osmosis, + Relayer: r, + Path: ibcPath, + }) + + // Reporter/logs + rep := testreporter.NewNopReporter() + eRep := rep.RelayerExecReporter(t) + + client, network := interchaintest.DockerSetup(t) + + // Build interchain + require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + + SkipPathCreation: false, + })) + + t.Parallel() + + // Get Channel ID + gaiaChans, err := r.GetChannels(ctx, eRep, gaia.Config().ChainID) + require.NoError(t, err) + gaiaChannel := gaiaChans[0] + osmosisChannel := gaiaChans[0].Counterparty + + // Create and Fund User Wallets + fundAmount := int64(10_000_000) + + // Tiny amount of funding, not enough to pay for a single TX fee (the GRANTER should be paying the fee) + granteeFundAmount := int64(10) + granteeKeyPrefix := "grantee1" + grantee2KeyPrefix := "grantee2" + grantee3KeyPrefix := "grantee3" + granterKeyPrefix := "default" + + mnemonicAny := genMnemonic(t) + gaiaGranterWallet, err := interchaintest.GetAndFundTestUserWithMnemonic(ctx, granterKeyPrefix, mnemonicAny, int64(fundAmount), gaia) + require.NoError(t, err) + + mnemonicAny = genMnemonic(t) + gaiaGranteeWallet, err := interchaintest.GetAndFundTestUserWithMnemonic(ctx, granteeKeyPrefix, mnemonicAny, int64(granteeFundAmount), gaia) + require.NoError(t, err) + + mnemonicAny = genMnemonic(t) + gaiaGrantee2Wallet, err := interchaintest.GetAndFundTestUserWithMnemonic(ctx, grantee2KeyPrefix, mnemonicAny, int64(granteeFundAmount), gaia) + require.NoError(t, err) + + mnemonicAny = genMnemonic(t) + gaiaGrantee3Wallet, err := interchaintest.GetAndFundTestUserWithMnemonic(ctx, grantee3KeyPrefix, mnemonicAny, int64(granteeFundAmount), gaia) + require.NoError(t, err) + + mnemonicAny = genMnemonic(t) + osmosisUser, err := interchaintest.GetAndFundTestUserWithMnemonic(ctx, "recipient", mnemonicAny, int64(fundAmount), osmosis) + require.NoError(t, err) + + mnemonicAny = genMnemonic(t) + gaiaUser, err := interchaintest.GetAndFundTestUserWithMnemonic(ctx, "recipient", mnemonicAny, int64(fundAmount), gaia) + require.NoError(t, err) + + mnemonic := gaiaGranterWallet.Mnemonic() + fmt.Printf("Wallet mnemonic: %s\n", mnemonic) + + rand.Seed(time.Now().UnixNano()) + + //IBC chain config is unrelated to RELAYER config so this step is necessary + if err := r.RestoreKey(ctx, + eRep, + gaia.Config(), + gaiaGranterWallet.KeyName(), + gaiaGranterWallet.Mnemonic(), + ); err != nil { + t.Fatalf("failed to restore granter key to relayer for chain %s: %s", gaia.Config().ChainID, err.Error()) + } + + //IBC chain config is unrelated to RELAYER config so this step is necessary + if err := r.RestoreKey(ctx, + eRep, + gaia.Config(), + gaiaGranteeWallet.KeyName(), + gaiaGranteeWallet.Mnemonic(), + ); err != nil { + t.Fatalf("failed to restore granter key to relayer for chain %s: %s", gaia.Config().ChainID, err.Error()) + } + + //IBC chain config is unrelated to RELAYER config so this step is necessary + if err := r.RestoreKey(ctx, + eRep, + gaia.Config(), + gaiaGrantee2Wallet.KeyName(), + gaiaGrantee2Wallet.Mnemonic(), + ); err != nil { + t.Fatalf("failed to restore granter key to relayer for chain %s: %s", gaia.Config().ChainID, err.Error()) + } + + //IBC chain config is unrelated to RELAYER config so this step is necessary + if err := r.RestoreKey(ctx, + eRep, + gaia.Config(), + gaiaGrantee3Wallet.KeyName(), + gaiaGrantee3Wallet.Mnemonic(), + ); err != nil { + t.Fatalf("failed to restore granter key to relayer for chain %s: %s", gaia.Config().ChainID, err.Error()) + } + + //IBC chain config is unrelated to RELAYER config so this step is necessary + if err := r.RestoreKey(ctx, + eRep, + osmosis.Config(), + osmosisUser.KeyName(), + osmosisUser.Mnemonic(), + ); err != nil { + t.Fatalf("failed to restore granter key to relayer for chain %s: %s", osmosis.Config().ChainID, err.Error()) + } + + //IBC chain config is unrelated to RELAYER config so this step is necessary + if err := r.RestoreKey(ctx, + eRep, + osmosis.Config(), + gaiaUser.KeyName(), + gaiaUser.Mnemonic(), + ); err != nil { + t.Fatalf("failed to restore granter key to relayer for chain %s: %s", gaia.Config().ChainID, err.Error()) + } + + gaiaGranteeAddr := gaiaGranteeWallet.FormattedAddress() + gaiaGrantee2Addr := gaiaGrantee2Wallet.FormattedAddress() + gaiaGrantee3Addr := gaiaGrantee3Wallet.FormattedAddress() + gaiaGranterAddr := gaiaGranterWallet.FormattedAddress() + + granteeCsv := gaiaGranteeWallet.KeyName() + "," + gaiaGrantee2Wallet.KeyName() + "," + gaiaGrantee3Wallet.KeyName() + + //You MUST run the configure feegrant command prior to starting the relayer, otherwise it'd be like you never set it up at all (within this test) + //Note that Gaia supports feegrants, but Osmosis does not (x/feegrant module, or any compatible module, is not included in Osmosis SDK app modules) + localRelayer := r.(*Relayer) + res := localRelayer.sys().Run(logger, "chains", "configure", "feegrant", "basicallowance", gaia.Config().ChainID, gaiaGranterWallet.KeyName(), "--grantees", granteeCsv, "--overwrite-granter") + if res.Err != nil { + fmt.Printf("configure feegrant results: %s\n", res.Stdout.String()) + t.Fatalf("failed to rly config feegrants: %v", res.Err) + } + + //Map of feegranted chains and the feegrant info for the chain + feegrantedChains := map[string]*chainFeegrantInfo{} + feegrantedChains[gaia.Config().ChainID] = &chainFeegrantInfo{granter: gaiaGranterAddr, grantees: []string{gaiaGranteeAddr, gaiaGrantee2Addr, gaiaGrantee3Addr}} + + time.Sleep(14 * time.Second) //commit a couple blocks + r.StartRelayer(ctx, eRep, ibcPath) + + // Send Transaction + amountToSend := int64(1_000) + + gaiaDstAddress := types.MustBech32ifyAddressBytes(osmosis.Config().Bech32Prefix, gaiaUser.Address()) + osmosisDstAddress := types.MustBech32ifyAddressBytes(gaia.Config().Bech32Prefix, osmosisUser.Address()) + + gaiaHeight, err := gaia.Height(ctx) + require.NoError(t, err) + + osmosisHeight, err := osmosis.Height(ctx) + require.NoError(t, err) + + var eg errgroup.Group + var gaiaTx ibc.Tx + + eg.Go(func() error { + gaiaTx, err = gaia.SendIBCTransfer(ctx, gaiaChannel.ChannelID, gaiaUser.KeyName(), ibc.WalletAmount{ + Address: gaiaDstAddress, + Denom: gaia.Config().Denom, + Amount: amountToSend, + }, + ibc.TransferOptions{}, + ) + if err != nil { + return err + } + if err := gaiaTx.Validate(); err != nil { + return err + } + + _, err = testutil.PollForAck(ctx, gaia, gaiaHeight, gaiaHeight+20, gaiaTx.Packet) + return err + }) + + eg.Go(func() error { + tx, err := osmosis.SendIBCTransfer(ctx, osmosisChannel.ChannelID, osmosisUser.KeyName(), ibc.WalletAmount{ + Address: osmosisDstAddress, + Denom: osmosis.Config().Denom, + Amount: amountToSend, + }, + ibc.TransferOptions{}, + ) + if err != nil { + return err + } + if err := tx.Validate(); err != nil { + return err + } + _, err = testutil.PollForAck(ctx, osmosis, osmosisHeight, osmosisHeight+20, tx.Packet) + return err + }) + + eg.Go(func() error { + tx, err := osmosis.SendIBCTransfer(ctx, osmosisChannel.ChannelID, osmosisUser.KeyName(), ibc.WalletAmount{ + Address: osmosisDstAddress, + Denom: osmosis.Config().Denom, + Amount: amountToSend, + }, + ibc.TransferOptions{}, + ) + if err != nil { + return err + } + if err := tx.Validate(); err != nil { + return err + } + _, err = testutil.PollForAck(ctx, osmosis, osmosisHeight, osmosisHeight+20, tx.Packet) + return err + }) + + eg.Go(func() error { + tx, err := osmosis.SendIBCTransfer(ctx, osmosisChannel.ChannelID, osmosisUser.KeyName(), ibc.WalletAmount{ + Address: osmosisDstAddress, + Denom: osmosis.Config().Denom, + Amount: amountToSend, + }, + ibc.TransferOptions{}, + ) + if err != nil { + return err + } + if err := tx.Validate(); err != nil { + return err + } + _, err = testutil.PollForAck(ctx, osmosis, osmosisHeight, osmosisHeight+20, tx.Packet) + return err + }) + + require.NoError(t, err) + require.NoError(t, eg.Wait()) + + feegrantMsgSigners := map[string][]string{} //chain to list of signers + + for len(processor.PathProcMessageCollector) > 0 { + select { + case curr, ok := <-processor.PathProcMessageCollector: + if ok && curr.Error == nil && curr.SuccessfulTx { + cProv, cosmProv := curr.DestinationChain.(*cosmos.CosmosProvider) + if cosmProv { + chain := cProv.PCfg.ChainID + feegrantInfo, isFeegrantedChain := feegrantedChains[chain] + if isFeegrantedChain && !strings.Contains(cProv.PCfg.KeyDirectory, t.Name()) { + //This would indicate that a parallel test is inserting msgs into the queue. + //We can safely skip over any messages inserted by other test cases. + fmt.Println("Skipping PathProcessorMessageResp from unrelated Parallel test case") + continue + } + + done := cProv.SetSDKContext() + + hash, err := hex.DecodeString(curr.Response.TxHash) + require.Nil(t, err) + txResp, err := TxWithRetry(ctx, cProv.RPCClient, hash) + require.Nil(t, err) + + require.Nil(t, err) + dc := cProv.Cdc.TxConfig.TxDecoder() + tx, err := dc(txResp.Tx) + require.Nil(t, err) + builder, err := cProv.Cdc.TxConfig.WrapTxBuilder(tx) + require.Nil(t, err) + txFinder := builder.(protoTxProvider) + fullTx := txFinder.GetProtoTx() + isFeegrantedMsg := false + + msgs := "" + msgType := "" + for _, m := range fullTx.GetMsgs() { + msgType = types.MsgTypeURL(m) + //We want all IBC transfers (on an open channel/connection) to be feegranted in round robin fashion + if msgType == "/ibc.core.channel.v1.MsgRecvPacket" || msgType == "/ibc.core.channel.v1.MsgAcknowledgement" { + isFeegrantedMsg = true + msgs += msgType + ", " + } else { + msgs += msgType + ", " + } + } + + //It's required that TXs be feegranted in a round robin fashion for this chain and message type + if isFeegrantedChain && isFeegrantedMsg { + fmt.Printf("Msg types: %+v\n", msgs) + signers := fullTx.GetSigners() + require.Equal(t, len(signers), 1) + granter := fullTx.FeeGranter() + + //Feegranter for the TX that was signed on chain must be the relayer chain's configured feegranter + require.Equal(t, feegrantInfo.granter, granter.String()) + require.NotEmpty(t, granter) + + for _, msg := range fullTx.GetMsgs() { + msgType = types.MsgTypeURL(msg) + //We want all IBC transfers (on an open channel/connection) to be feegranted in round robin fashion + if msgType == "/ibc.core.channel.v1.MsgRecvPacket" { + c := msg.(*chantypes.MsgRecvPacket) + appData := c.Packet.GetData() + tokenTransfer := &transfertypes.FungibleTokenPacketData{} + err := tokenTransfer.Unmarshal(appData) + if err == nil { + fmt.Printf("%+v\n", tokenTransfer) + } else { + fmt.Println(string(appData)) + } + } + } + + //Grantee for the TX that was signed on chain must be a configured grantee in the relayer's chain feegrants. + //In addition, the grantee must be used in round robin fashion + //expectedGrantee := nextGrantee(feegrantInfo) + actualGrantee := signers[0].String() + signerList, ok := feegrantMsgSigners[chain] + if ok { + signerList = append(signerList, actualGrantee) + feegrantMsgSigners[chain] = signerList + } else { + feegrantMsgSigners[chain] = []string{actualGrantee} + } + fmt.Printf("Chain: %s, msg type: %s, height: %d, signer: %s, granter: %s\n", chain, msgType, curr.Response.Height, actualGrantee, granter.String()) + } + done() + } + } + default: + fmt.Println("Unknown channel message") + } + } + + for chain, signers := range feegrantMsgSigners { + require.Equal(t, chain, gaia.Config().ChainID) + signerCountMap := map[string]int{} + + for _, signer := range signers { + count, ok := signerCountMap[signer] + if ok { + signerCountMap[signer] = count + 1 + } else { + signerCountMap[signer] = 1 + } + } + + highestCount := 0 + for _, count := range signerCountMap { + if count > highestCount { + highestCount = count + } + } + + //At least one feegranter must have signed a TX + require.GreaterOrEqual(t, highestCount, 1) + + //All of the feegrantees must have signed at least one TX + expectedFeegrantInfo := feegrantedChains[chain] + require.Equal(t, len(signerCountMap), len(expectedFeegrantInfo.grantees)) + + // verify that TXs were signed in a round robin fashion. + // no grantee should have signed more TXs than any other grantee (off by one is allowed). + for signer, count := range signerCountMap { + fmt.Printf("signer %s signed %d feegranted TXs \n", signer, count) + require.LessOrEqual(t, highestCount-count, 1) + } + } + + // Trace IBC Denom + gaiaDenomTrace := transfertypes.ParseDenomTrace(transfertypes.GetPrefixedDenom(osmosisChannel.PortID, osmosisChannel.ChannelID, gaia.Config().Denom)) + gaiaIbcDenom := gaiaDenomTrace.IBCDenom() + + osmosisDenomTrace := transfertypes.ParseDenomTrace(transfertypes.GetPrefixedDenom(gaiaChannel.PortID, gaiaChannel.ChannelID, osmosis.Config().Denom)) + osmosisIbcDenom := osmosisDenomTrace.IBCDenom() + + // Test destination wallets have increased funds + gaiaIBCBalance, err := osmosis.GetBalance(ctx, gaiaDstAddress, gaiaIbcDenom) + require.NoError(t, err) + require.Equal(t, amountToSend, gaiaIBCBalance) + + osmosisIBCBalance, err := gaia.GetBalance(ctx, osmosisDstAddress, osmosisIbcDenom) + require.NoError(t, err) + require.Equal(t, 3*amountToSend, osmosisIBCBalance) + + // Test grantee still has exact amount expected + gaiaGranteeIBCBalance, err := gaia.GetBalance(ctx, gaiaGranteeAddr, gaia.Config().Denom) + require.NoError(t, err) + require.Equal(t, granteeFundAmount, gaiaGranteeIBCBalance) + + // Test granter has less than they started with, meaning fees came from their account + gaiaGranterIBCBalance, err := gaia.GetBalance(ctx, gaiaGranterAddr, gaia.Config().Denom) + require.NoError(t, err) + require.Less(t, gaiaGranterIBCBalance, fundAmount) + r.StopRelayer(ctx, eRep) + + }) + } +} + +func TxWithRetry(ctx context.Context, client rpcclient.Client, hash []byte) (*ctypes.ResultTx, error) { + var err error + var res *ctypes.ResultTx + if err = retry.Do(func() error { + res, err = client.Tx(ctx, hash, true) + return err + }, retry.Context(ctx), relayer.RtyAtt, relayer.RtyDel, relayer.RtyErr); err != nil { + return res, err + } + + return res, err +} diff --git a/interchaintest/go.mod b/interchaintest/go.mod index 58fc82bef..7952e9d62 100644 --- a/interchaintest/go.mod +++ b/interchaintest/go.mod @@ -1,72 +1,78 @@ module github.com/cosmos/relayer/v2/interchaintest -go 1.20 +go 1.21 require ( cosmossdk.io/simapp v0.0.0-20230224204036-a6adb0821462 - github.com/cometbft/cometbft v0.37.0 - github.com/cosmos/cosmos-sdk v0.47.1 - github.com/cosmos/ibc-go/v7 v7.0.0 + github.com/avast/retry-go/v4 v4.3.4 + github.com/cometbft/cometbft v0.37.2 + github.com/cosmos/cosmos-sdk v0.47.5 + github.com/cosmos/go-bip39 v1.0.0 + github.com/cosmos/gogoproto v1.4.10 + github.com/cosmos/ibc-go/v7 v7.3.0 github.com/cosmos/relayer/v2 v2.0.0 - github.com/docker/docker v20.10.24+incompatible + github.com/docker/docker v24.0.1+incompatible + github.com/google/uuid v1.3.0 github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 - github.com/moby/moby v20.10.22+incompatible - github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230405184655-2e6d60073e71 - github.com/stretchr/testify v1.8.2 + github.com/moby/moby v24.0.2+incompatible + github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230608002938-79172615eed0 + github.com/stretchr/testify v1.8.4 go.uber.org/zap v1.24.0 - golang.org/x/sync v0.1.0 + golang.org/x/sync v0.2.0 ) require ( - cloud.google.com/go v0.110.0 // indirect - cloud.google.com/go/compute v1.18.0 // indirect + cloud.google.com/go v0.110.4 // indirect + cloud.google.com/go/compute v1.20.1 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.12.0 // indirect - cloud.google.com/go/storage v1.29.0 // indirect + cloud.google.com/go/iam v1.1.0 // indirect + cloud.google.com/go/storage v1.30.1 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/core v0.5.1 // indirect - cosmossdk.io/depinject v1.0.0-alpha.3 // indirect - cosmossdk.io/errors v1.0.0-beta.7 // indirect - cosmossdk.io/math v1.0.0 // indirect + cosmossdk.io/depinject v1.0.0-alpha.4 // indirect + cosmossdk.io/errors v1.0.0 // indirect + cosmossdk.io/log v1.2.1 // indirect + cosmossdk.io/math v1.1.2 // indirect cosmossdk.io/tools/rosetta v0.2.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect - github.com/BurntSushi/toml v1.2.1 // indirect + github.com/BurntSushi/toml v1.3.0 // indirect github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect github.com/ChainSafe/go-schnorrkel/1 v0.0.0-00010101000000-000000000000 // indirect + github.com/ComposableFi/go-subkey/v2 v2.0.0-tm03420 // indirect + github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e // indirect + github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec // indirect github.com/Microsoft/go-winio v0.6.0 // indirect - github.com/Microsoft/hcsshim v0.9.6 // indirect github.com/StirlingMarketingGroup/go-namecase v1.0.0 // indirect github.com/armon/go-metrics v0.4.1 // indirect - github.com/avast/retry-go/v4 v4.3.3 // indirect github.com/aws/aws-sdk-go v1.44.203 // indirect github.com/benbjohnson/clock v1.3.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect - github.com/btcsuite/btcd v0.22.3 // indirect + github.com/btcsuite/btcd v0.23.4 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect + github.com/btcsuite/btcd/btcutil v1.1.3 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect - github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect - github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.12 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect + github.com/cockroachdb/errors v1.10.0 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/redact v1.1.5 // indirect github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect - github.com/cometbft/cometbft-db v0.7.0 // indirect + github.com/cometbft/cometbft-db v0.8.0 // indirect github.com/confio/ics23/go v0.9.0 // indirect - github.com/containerd/cgroups v1.0.4 // indirect - github.com/containerd/containerd v1.6.18 // indirect + github.com/containerd/containerd v1.6.8 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/cosmos-proto v1.0.0-beta.2 // indirect - github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/gogoproto v1.4.6 // indirect github.com/cosmos/iavl v0.20.0 // indirect - github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab // indirect + github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1 // indirect + github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.12.2 // indirect github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect github.com/creachadair/taskgroup v0.4.2 // indirect @@ -81,7 +87,7 @@ require ( github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect - github.com/docker/distribution v2.8.1+incompatible // indirect + github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect @@ -89,10 +95,10 @@ require ( github.com/ethereum/go-ethereum v1.10.26 // indirect github.com/felixge/httpsnoop v1.0.2 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/getsentry/sentry-go v0.23.0 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-stack/stack v1.8.1 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gofrs/flock v0.8.1 // indirect @@ -108,9 +114,9 @@ require ( github.com/google/go-github/v43 v43.0.0 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/orderedcode v0.0.1 // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/s2a-go v0.1.4 // indirect github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.7.0 // indirect + github.com/googleapis/gax-go/v2 v2.11.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect @@ -120,7 +126,7 @@ require ( github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-getter v1.7.0 // indirect + github.com/hashicorp/go-getter v1.7.1 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-version v1.6.0 // indirect @@ -134,31 +140,32 @@ require ( github.com/ipfs/go-cid v0.2.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect github.com/jsternberg/zap-logfmt v1.3.0 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/klauspost/compress v1.16.3 // indirect github.com/klauspost/cpuid/v2 v2.2.3 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/libp2p/go-libp2p v0.22.0 // indirect - github.com/libp2p/go-libp2p-core v0.20.1 // indirect github.com/libp2p/go-openssl v0.1.0 // indirect + github.com/linxGnu/grocksdb v1.7.16 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-pointer v0.0.1 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mimoo/StrobeGo v0.0.0-20220103164710-9a04d6ca976b // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/minio/sha256-simd v1.0.0 // indirect + github.com/misko9/go-substrate-rpc-client/v4 v4.0.0-20230413215336-5bd2aea337ae // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/moby/sys/mount v0.3.3 // indirect - github.com/moby/sys/mountinfo v0.6.2 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/moby/patternmatcher v0.5.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect github.com/mr-tron/base58 v1.2.0 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/multiformats/go-base32 v0.0.4 // indirect @@ -170,61 +177,63 @@ require ( github.com/multiformats/go-varint v0.0.6 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0-rc2 // indirect - github.com/opencontainers/runc v1.1.5 // indirect + github.com/opencontainers/runc v1.1.3 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.6 // indirect - github.com/petermattis/goid v0.0.0-20221215004737-a150e88a970d // indirect + github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect github.com/pierrec/xxHash v0.1.5 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.14.0 // indirect + github.com/prometheus/client_golang v1.15.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.40.0 // indirect + github.com/prometheus/common v0.42.0 // indirect github.com/prometheus/procfs v0.9.0 // indirect github.com/rakyll/statik v0.1.7 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/rs/cors v1.8.3 // indirect + github.com/rs/zerolog v1.30.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect - github.com/spf13/afero v1.9.3 // indirect - github.com/spf13/cast v1.5.0 // indirect - github.com/spf13/cobra v1.6.1 // indirect + github.com/spf13/afero v1.9.5 // indirect + github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spf13/viper v1.15.0 // indirect + github.com/spf13/viper v1.16.0 // indirect github.com/subosito/gotenv v1.4.2 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect - github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.6.0 // indirect - github.com/tklauser/go-sysconf v0.3.10 // indirect + github.com/tyler-smith/go-bip32 v1.0.0 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ulikunitz/xz v0.5.11 // indirect - github.com/vedhavyas/go-subkey v1.0.3 // indirect github.com/zondax/hid v0.9.1 // indirect github.com/zondax/ledger-go v0.14.1 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.10.0 // indirect - go.uber.org/multierr v1.8.0 // indirect - golang.org/x/crypto v0.7.0 // indirect - golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect - golang.org/x/mod v0.9.0 // indirect - golang.org/x/net v0.8.0 // indirect - golang.org/x/oauth2 v0.5.0 // indirect - golang.org/x/sys v0.6.0 // indirect - golang.org/x/term v0.6.0 // indirect - golang.org/x/text v0.8.0 // indirect - golang.org/x/tools v0.7.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + golang.org/x/crypto v0.11.0 // indirect + golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect + golang.org/x/mod v0.11.0 // indirect + golang.org/x/net v0.12.0 // indirect + golang.org/x/oauth2 v0.8.0 // indirect + golang.org/x/sys v0.11.0 // indirect + golang.org/x/term v0.10.0 // indirect + golang.org/x/text v0.12.0 // indirect + golang.org/x/tools v0.9.3 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.110.0 // indirect + google.golang.org/api v0.126.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 // indirect - google.golang.org/grpc v1.54.0 // indirect - google.golang.org/protobuf v1.29.1 // indirect + google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/grpc v1.56.2 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v2 v2.4.0 // indirect @@ -233,11 +242,11 @@ require ( lukechampine.com/uint128 v1.2.0 // indirect modernc.org/cc/v3 v3.40.0 // indirect modernc.org/ccgo/v3 v3.16.13 // indirect - modernc.org/libc v1.22.3 // indirect + modernc.org/libc v1.22.5 // indirect modernc.org/mathutil v1.5.0 // indirect modernc.org/memory v1.5.0 // indirect modernc.org/opt v0.1.3 // indirect - modernc.org/sqlite v1.21.1 // indirect + modernc.org/sqlite v1.23.0 // indirect modernc.org/strutil v1.1.3 // indirect modernc.org/token v1.0.1 // indirect nhooyr.io/websocket v1.8.6 // indirect diff --git a/interchaintest/go.sum b/interchaintest/go.sum index f64f4e541..ef668b4a7 100644 --- a/interchaintest/go.sum +++ b/interchaintest/go.sum @@ -1,4 +1,3 @@ -bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= 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= @@ -33,8 +32,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk= +cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -71,8 +70,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY= -cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg= +cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -112,13 +111,12 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97 cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v0.12.0 h1:DRtTY29b75ciH6Ov1PHb4/iat2CLCvrOm40Q0a6DFpE= -cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v1.1.0 h1:67gSqaPukx7O8WLLHMa0PNs3EBGd2eE4d+psbO/CO94= +cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= -cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= @@ -176,8 +174,8 @@ cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3f cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.29.0 h1:6weCgzRvMg7lzuUurI4697AqIRPU1SvzHhynwpW31jI= -cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= +cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= @@ -193,12 +191,14 @@ cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= -cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= -cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= -cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= -cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= -cosmossdk.io/math v1.0.0 h1:ro9w7eKx23om2tZz/VM2Pf+z2WAbGX1yDQQOJ6iGeJw= -cosmossdk.io/math v1.0.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= +cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= +cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= +cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= +cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0= +cosmossdk.io/log v1.2.1 h1:Xc1GgTCicniwmMiKwDxUjO4eLhPxoVdI9vtMW8Ti/uk= +cosmossdk.io/log v1.2.1/go.mod h1:GNSCc/6+DhFIj1aLn/j7Id7PaO8DzNylUZoOYBL9+I4= +cosmossdk.io/math v1.1.2 h1:ORZetZCTyWkI5GlZ6CZS28fMHi83ZYf+A2vVnHNzZBM= +cosmossdk.io/math v1.1.2/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/simapp v0.0.0-20230224204036-a6adb0821462 h1:g8muUHnXL8vhld2Sjilyhb1UQObc+x9GVuDK43TYZns= cosmossdk.io/simapp v0.0.0-20230224204036-a6adb0821462/go.mod h1:4Dd3NLoLYoN90kZ0uyHoTHzVVk9+J0v4HhZRBNTAq2c= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= @@ -210,78 +210,53 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMb github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= -github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8 h1:V8krnnfGj4pV65YLUm3C0/8bl7V5Nry2Pwvy3ru/wLc= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= -github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= -github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= -github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.3.0 h1:Ws8e5YmnrGEHzZEzg0YvK/7COGYtTC5PbaH9oSSbgfA= +github.com/BurntSushi/toml v1.3.0/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/ChainSafe/go-schnorrkel v1.0.0 h1:3aDA67lAykLaG1y3AOjs88dMxC88PgUuHRrLeDnvGIM= github.com/ChainSafe/go-schnorrkel v1.0.0/go.mod h1:dpzHYVxLZcp8pjlV+O+UR8K0Hp/z7vcchBSbMBEhCw4= +github.com/ComposableFi/go-subkey/v2 v2.0.0-tm03420 h1:oknQF/iIhf5lVjbwjsVDzDByupRhga8nhA3NAmwyHDA= +github.com/ComposableFi/go-subkey/v2 v2.0.0-tm03420/go.mod h1:KYkiMX5AbOlXXYfxkrYPrRPV6EbVUALTQh5ptUOJzu8= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e h1:ahyvB3q25YnZWly5Gq1ekg6jcmWaGj/vG/MhF4aisoc= +github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e/go.mod h1:kGUqhHd//musdITWjFvNTHn90WG9bMLBEPQZ17Cmlpw= +github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec h1:1Qb69mGp/UtRPn422BH4/Y4Q3SLUrD9KHuDkm8iodFc= +github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec/go.mod h1:CD8UlnlLDiqb36L110uqiP2iSflVjx9g/3U9hCI4q2U= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -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.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= -github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= -github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= -github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= -github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= -github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= -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.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= -github.com/Microsoft/hcsshim v0.9.6 h1:VwnDOgLeoi2du6dAznfmspNqTiwczvjv4K7NxuY9jsY= -github.com/Microsoft/hcsshim v0.9.6/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= -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/Microsoft/hcsshim v0.9.4 h1:mnUj0ivWy6UzbB1uLFqKR6F+ZyiDc7j4iGgHTpO+5+I= +github.com/Microsoft/hcsshim v0.9.4/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= 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/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -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= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 h1:fLjPD/aNc3UIOA6tDi6QXUemppXK3P9BI7mr2hd6gx8= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/StirlingMarketingGroup/go-namecase v1.0.0 h1:2CzaNtCzc4iNHirR+5ru9OzGg8rQp860gqLBFqRI02Y= github.com/StirlingMarketingGroup/go-namecase v1.0.0/go.mod h1:ZsoSKcafcAzuBx+sndbxHu/RjDcDTrEdT4UvhniHfio= github.com/VictoriaMetrics/fastcache v1.6.0 h1:C/3Oi3EiBCqufydp1neRZkqcwmEiuRT9c3fqvvgKm5o= +github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= +github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= 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/alecthomas/participle/v2 v2.0.0-alpha7 h1:cK4vjj0VSgb3lN1nuKA5F7dw+1s1pWBe5bx7nNCnN+c= 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/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= 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= @@ -292,11 +267,9 @@ github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJ github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= 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/avast/retry-go/v4 v4.3.3 h1:G56Bp6mU0b5HE1SkaoVjscZjlQb0oy4mezwY/cGH19w= -github.com/avast/retry-go/v4 v4.3.3/go.mod h1:rg6XFaiuFYII0Xu3RDbZQkxCofFwruZKW8oEF1jpWiU= +github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbKhM= +github.com/avast/retry-go/v4 v4.3.4/go.mod h1:rv+Nla6Vk3/ilU0H51VHddWHiwimzX66yZ0JT6T+UvE= 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.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.203 h1:pcsP805b9acL3wUqa4JR2vg1k2wnItkDYNvfmcy6F+U= @@ -304,7 +277,6 @@ github.com/aws/aws-sdk-go v1.44.203/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8 github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -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= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -314,18 +286,20 @@ github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= -github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= -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/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= -github.com/btcsuite/btcd v0.22.3 h1:kYNaWFvOw6xvqP0vR20RP1Zq1DVMBxEO8QN5d1/EfNg= -github.com/btcsuite/btcd v0.22.3/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y= +github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= +github.com/btcsuite/btcd v0.23.0/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= +github.com/btcsuite/btcd v0.23.4 h1:IzV6qqkfwbItOS/sg/aDfPDsjPP8twrCOE2R93hxMlQ= +github.com/btcsuite/btcd v0.23.4/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= +github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= +github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= -github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ= +github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A= +github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE= +github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= +github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= @@ -334,13 +308,13 @@ github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce h1:YtWJF7RHm2pY github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= 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/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/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= +github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= @@ -348,15 +322,11 @@ github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInq github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.12 h1:DCYWIBOalB0mKKfUg2HhtGgIkBbMA1fnlnkZp7fHB18= -github.com/centrifuge/go-substrate-rpc-client/v4 v4.0.12/go.mod h1:5g1oM4Zu3BOaLpsKQ+O8PAv2kNuq+kPcA1VzFbsSqxE= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -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/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= @@ -368,16 +338,13 @@ github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObk github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= -github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= -github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= -github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cmars/basen v0.0.0-20150613233007-fe3947df716e h1:0XBUw73chJ1VYSsfvcPvVT7auykAJce9FpRr10L6Qhw= +github.com/cmars/basen v0.0.0-20150613233007-fe3947df716e/go.mod h1:P13beTBKr5Q18lJe1rIoLUqjM+CB1zYrRg44ZqGuQSA= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -389,163 +356,68 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= -github.com/cockroachdb/apd/v3 v3.1.0 h1:MK3Ow7LH0W8zkd5GMKA1PvS9qG3bWFI95WaVNfyZJ/w= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU= +github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA= github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c= -github.com/cometbft/cometbft v0.37.0 h1:M005vBaSaugvYYmNZwJOopynQSjwLoDTwflnQ/I/eYk= -github.com/cometbft/cometbft v0.37.0/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= -github.com/cometbft/cometbft-db v0.7.0 h1:uBjbrBx4QzU0zOEnU8KxoDl18dMNgDh+zZRUE0ucsbo= -github.com/cometbft/cometbft-db v0.7.0/go.mod h1:yiKJIm2WKrt6x8Cyxtq9YTEcIMPcEe4XPxhgX59Fzf0= +github.com/cometbft/cometbft v0.37.2 h1:XB0yyHGT0lwmJlFmM4+rsRnczPlHoAKFX6K8Zgc2/Jc= +github.com/cometbft/cometbft v0.37.2/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= +github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AKVZpjo= +github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0= github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= -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= -github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= -github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E= -github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= -github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= -github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI= -github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= -github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= -github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= -github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= -github.com/containerd/cgroups v1.0.4 h1:jN/mbWBEaz+T1pi5OFtnkQ+8qnmEbAr1Oo1FRm5B0dA= -github.com/containerd/cgroups v1.0.4/go.mod h1:nLNQtsF7Sl2HxNebu77i1R0oDlhiTG+kO4JTrUzo6IA= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= -github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= -github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= -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.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c= -github.com/containerd/containerd v1.6.18 h1:qZbsLvmyu+Vlty0/Ex5xc0z2YtKpIsb5n45mAMI+2Ns= -github.com/containerd/containerd v1.6.18/go.mod h1:1RdCUu95+gc2v9t3IL+zIlpClSmew7/0YS8O5eQZrOw= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/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-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/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= +github.com/containerd/containerd v1.6.8 h1:h4dOFDwzHmqFEP754PgfgTeVXFnLiRc6kiqC7tplDJs= +github.com/containerd/containerd v1.6.8/go.mod h1:By6p5KqPK0/7/CgO/A6t/Gz+CUYUu2zf1hUaaymVXB0= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= -github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= -github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= -github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= -github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= -github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= -github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= -github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= -github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= -github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0= -github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA= -github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow= -github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms= -github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= -github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= -github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= -github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8= -github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= -github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= -github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= -github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= -github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= -github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= -github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= -github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= -github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= -github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= -github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= -github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= -github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= -github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= -github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= -github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -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/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/go-systemd/v22 v22.5.0/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/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= -github.com/cosmos/cosmos-sdk v0.47.1 h1:HnaCYtaAMWZp1SdlwwE1mPJ8kFlZ/TuEJ/ciNXH6Uno= -github.com/cosmos/cosmos-sdk v0.47.1/go.mod h1:14tO5KQaTrl2q3OxBnDRfue7TRN9zkXS0cLutrSqkOo= +github.com/cosmos/cosmos-sdk v0.47.5 h1:n1+WjP/VM/gAEOx3TqU2/Ny734rj/MX1kpUnn7zVJP8= +github.com/cosmos/cosmos-sdk v0.47.5/go.mod h1:EHwCeN9IXonsjKcjpS12MqeStdZvIdxt3VYXhus3G3c= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= 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/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= -github.com/cosmos/gogoproto v1.4.6 h1:Ee7z15dWJaGlgM2rWrK8N2IX7PQcuccu8oG68jp5RL4= -github.com/cosmos/gogoproto v1.4.6/go.mod h1:VS/ASYmPgv6zkPKLjR9EB91lwbLHOzaGCirmKKhncfI= +github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI= +github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek= github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= -github.com/cosmos/ibc-go/v7 v7.0.0 h1:j4kyywlG0hhDmT9FmSaR5iCIka7Pz7kJTxGWY1nlV9Q= -github.com/cosmos/ibc-go/v7 v7.0.0/go.mod h1:BFh8nKWjr5zeR2OZfhkzdgDzj1+KjRn3aJLpwapStj8= -github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab h1:I9ialKTQo7248V827Bba4OuKPmk+FPzmTVHsLXaIJWw= -github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab/go.mod h1:2CwqasX5dSD7Hbp/9b6lhK6BwoBDCBldx7gPKRukR60= +github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1 h1:BvSKnPFKxL+TTSLxGKwJN4x0ndCZj0yfXhSvmsQztSA= +github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1/go.mod h1:A+CxAQdn2j6ihDTbClpEEBdHthWgAUAcHbRAQPY8sl4= +github.com/cosmos/ibc-go/v7 v7.3.0 h1:QtGeVMi/3JeLWuvEuC60sBHpAF40Oenx/y+bP8+wRRw= +github.com/cosmos/ibc-go/v7 v7.3.0/go.mod h1:mUmaHFXpXrEdcxfdXyau+utZf14pGKVUiXwYftRZZfQ= +github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= +github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/ledger-cosmos-go v0.12.2 h1:/XYaBlE2BJxtvpkHiBm97gFGSGmYGKunKyF3nNqAXZA= github.com/cosmos/ledger-cosmos-go v0.12.2/go.mod h1:ZcqYgnfNJ6lAXe4HPtWgarNEY+B74i+2/8MhZw4ziiI= github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM= github.com/cosmos/rosetta-sdk-go v0.10.0/go.mod h1:SImAZkb96YbwvoRkzSMQB6noNJXFgWl/ENIznEoYQI4= 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= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJFxv2Li8= github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cucumber/common/gherkin/go/v22 v22.0.0 h1:4K8NqptbvdOrjL9DEea6HFjSpbdT9+Q5kgLpmmsHYl0= -github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= -github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= -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/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -562,9 +434,10 @@ github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 h1:3GIJYXQDAKpLEFriGFN8SbSffak10UXHGdIcFaMPykY= github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0/go.mod h1:3s92l0paYkZoIHuj4X93Teg/HB7eGM9x/zokGw+u4mY= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= -github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= +github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= 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.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= @@ -572,35 +445,19 @@ github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/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/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= -github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE= -github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= +github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= +github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v24.0.1+incompatible h1:NxN81beIxDlUaVt46iUQrYHD9/W3u9EGl52r86O/IGw= +github.com/docker/docker v24.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= -github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= -github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= @@ -611,9 +468,6 @@ github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5m github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -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/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -627,37 +481,35 @@ github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go. github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/ethereum/go-ethereum v1.10.26 h1:i/7d9RBBwiXCEuyduBQzJw/mKmnvzsN14jqBmytw72s= github.com/ethereum/go-ethereum v1.10.26/go.mod h1:EYFyF19u3ezGLD4RqOkLq+ZCXzYbLoNDdZlMt7kyKFg= -github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= -github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= -github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o= github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -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= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= +github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= -github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= -github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE= +github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= 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/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= +github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= 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= -github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= @@ -670,28 +522,18 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= +github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= @@ -704,20 +546,14 @@ github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6Wezm 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-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= -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= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= 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/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= -github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= @@ -725,7 +561,6 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -785,21 +620,21 @@ github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8 github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= github.com/google/go-github/v43 v43.0.0 h1:y+GL7LIsAIF2NZlJ46ZoC/D1W1ivZasT0lnWHMYPZ+U= github.com/google/go-github/v43 v43.0.0/go.mod h1:ZkTvvmCXBvsfPpTHXnH/d2hP9Y0cTbvN9kr5xqyXOIc= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= 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.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= 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= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -819,11 +654,12 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ= +github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= 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= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= @@ -840,35 +676,27 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ= -github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= -github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4= +github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -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= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= 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/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/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/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= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -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.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= @@ -881,19 +709,17 @@ github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uM github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= 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 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.0 h1:bzrYP+qu/gMrL1au7/aDvkoOVGUJpeKBgbqRHACAFDY= -github.com/hashicorp/go-getter v1.7.0/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter v1.7.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY= +github.com/hashicorp/go-getter v1.7.1/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -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-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= @@ -921,6 +747,7 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU= github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= 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.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= @@ -933,25 +760,18 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 h1:H+uM0Bv88eur3ZSsd2NGKg3YIiuXxwxtlN7HjE66UTU= github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845/go.mod h1:c1tRKs5Tx7E2+uHGSyyncziFjvGpgv4H2HrqXeUQ/Uk= -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.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.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= github.com/improbable-eng/grpc-web v0.15.0/go.mod h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPtwNr0l57L4f878wP8= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/ipfs/go-cid v0.2.0 h1:01JTiihFq9en9Vz0lc0VDWvZe/uBonGpzo4THP0vcQ0= github.com/ipfs/go-cid v0.2.0/go.mod h1:P+HXFDF4CVhaVayiEb4wkAy7zBHxBwsJyt0Y5U6MLro= -github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b h1:izTof8BKh/nE1wrKOrloNA5q4odOarjf+Xpe+4qow98= -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/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= +github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= @@ -959,7 +779,6 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw 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/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= @@ -983,9 +802,7 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI 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/klauspost/compress v1.10.3/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.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY= @@ -995,66 +812,61 @@ github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa02 github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU= github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= 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= 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/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/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/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/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/libp2p/go-libp2p v0.22.0 h1:2Tce0kHOp5zASFKJbNzRElvh0iZwdtG5uZheNW8chIw= github.com/libp2p/go-libp2p v0.22.0/go.mod h1:UDolmweypBSjQb2f7xutPnwZ/fxioLbMBxSjRksxxU4= -github.com/libp2p/go-libp2p-core v0.20.1 h1:fQz4BJyIFmSZAiTbKV8qoYhEH5Dtv/cVhZbG3Ib/+Cw= -github.com/libp2p/go-libp2p-core v0.20.1/go.mod h1:6zR8H7CvQWgYLsbG4on6oLNSGcyKaYFSEYyDt51+bIY= github.com/libp2p/go-openssl v0.1.0 h1:LBkKEcUv6vtZIQLVTegAil8jbNpJErQ9AnT+bWV+Ooo= github.com/libp2p/go-openssl v0.1.0/go.mod h1:OiOxwPpL3n4xlenjx2h7AwSGaFSC/KZvf6gNdOBQMtc= 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/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= +github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= +github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -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.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= -github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= github.com/mattn/go-runewidth v0.0.2/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.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= -github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= -github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= +github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= 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/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= github.com/mimoo/StrobeGo v0.0.0-20220103164710-9a04d6ca976b h1:QrHweqAtyJ9EwCaGHBu1fghwxIPiopAHV06JlXrMHjk= github.com/mimoo/StrobeGo v0.0.0-20220103164710-9a04d6ca976b/go.mod h1:xxLb2ip6sSUts3g1irPVHyk/DGslwQsNOo9I7smJfNU= @@ -1062,7 +874,8 @@ github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= +github.com/misko9/go-substrate-rpc-client/v4 v4.0.0-20230413215336-5bd2aea337ae h1:ZYbJh4TLwfSuSQe6DT/1982SfNNBcmvzrX5FycfSrmo= +github.com/misko9/go-substrate-rpc-client/v4 v4.0.0-20230413215336-5bd2aea337ae/go.mod h1:XexEkZgpnQ3sqUYz84DFoVUcDake6G/tYHrwdbdERhM= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -1076,20 +889,15 @@ github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:F github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= -github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= -github.com/moby/moby v20.10.22+incompatible h1:KHnFMlxjgGizH7+3fQj8+PjmrwEnilKgahf/TgTQIxI= -github.com/moby/moby v20.10.22+incompatible/go.mod h1:fDXVQ6+S340veQPv35CzDahGBmHsiclFwfEygB/TWMc= -github.com/moby/sys/mount v0.3.3 h1:fX1SVkXFJ47XWDoeFW4Sq7PdQJnV2QIDZAqjNqgEjUs= -github.com/moby/sys/mount v0.3.3/go.mod h1:PBaEorSNTLG5t/+4EgukEQVlAvVEc6ZjTySwKdqp5K0= -github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= -github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/moby v24.0.2+incompatible h1:yH+5dRHH1x3XRKzl1THA2aGTy6CHYnkt5N924ADMax8= +github.com/moby/moby v24.0.2+incompatible/go.mod h1:fDXVQ6+S340veQPv35CzDahGBmHsiclFwfEygB/TWMc= +github.com/moby/patternmatcher v0.5.0 h1:YCZgJOeULcxLw1Q+sVR636pmS7sPEn1Qo2iAN6M7DBo= +github.com/moby/patternmatcher v0.5.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= -github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= -github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= -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/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae h1:O4SWKdcHVCvYqyDV+9CJA1fcDN2L11Bule0iFy3YlAI= +github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -1118,13 +926,10 @@ github.com/multiformats/go-multihash v0.2.1 h1:aem8ZT0VA2nCHHk7bPJ1BjUbHNciqZC/d github.com/multiformats/go-multihash v0.2.1/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc= github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY= github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -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/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/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= @@ -1132,71 +937,39 @@ github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzE github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= 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= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= -github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= 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.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/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= -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= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -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.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q= +github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= 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= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= -github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= -github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= -github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= -github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= +github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= -github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= -github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= -github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= @@ -1207,28 +980,29 @@ github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJ github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= 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/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= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= 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.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= -github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= +github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= +github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20221215004737-a150e88a970d h1:htwtWgtQo8YS6JFWWi2DNgY0RwSGJ1ruMoxY6CUUclk= -github.com/petermattis/goid v0.0.0-20221215004737-a150e88a970d/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU= +github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= 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= github.com/pierrec/xxHash v0.1.5 h1:n/jBpwTHiER4xYvK3/CdPVnLDPchj8eTJFFLUb4QHBo= github.com/pierrec/xxHash v0.1.5/go.mod h1:w2waW5Zoa/Wc4Yqe0wgrIYAGKqRMf7czn2HNKXmuL+I= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -1237,19 +1011,14 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR 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/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= 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.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= -github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM= +github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -1258,31 +1027,20 @@ github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.40.0 h1:Afz7EVRqGg2Mqqf4JuF9vdvp1pi220m55Pi9T2JnO4Q= -github.com/prometheus/common v0.40.0/go.mod h1:L65ZJPSmfn/UBWLQIHV7dBrKFidB/wPlF1y5TlSt9OE= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= @@ -1292,39 +1050,38 @@ github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Ung github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M= 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/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= +github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= 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.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c= +github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w= 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/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= 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/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -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= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= 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= @@ -1332,7 +1089,6 @@ github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= 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/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= @@ -1342,47 +1098,36 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO 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.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= -github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= +github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= -github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= -github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= +github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= 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 v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= -github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= -github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= -github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= -github.com/strangelove-ventures/go-subkey v1.0.7 h1:cOP/Lajg3uxV/tvspu0m6+0Cu+DJgygkEAbx/s+f35I= -github.com/strangelove-ventures/go-subkey v1.0.7/go.mod h1:E34izOIEm+sZ1YmYawYRquqBQWeZBjVB4pF7bMuhc1c= -github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230405184655-2e6d60073e71 h1:bbhg6Iol/5UR65+4kPaki+3mNUgyvcQe+ZHrleorKKY= -github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230405184655-2e6d60073e71/go.mod h1:tkBlI3o0Z1jgkZIkckOLIHJuR+S0LbGoBEGg4NQ4Aa8= +github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= +github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= +github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230608002938-79172615eed0 h1:WoRj3il7OqGknKxf3IRwGTY65AVbTnDjKAgezpEHM3E= +github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230608002938-79172615eed0/go.mod h1:RG6EsHW08mfwJQmZykqzkAQwAmVojcrqujjFBFPIHcY= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= -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/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.1.5-0.20170601210322-f6abca593680/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= @@ -1393,18 +1138,16 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= -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.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= -github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= -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/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= @@ -1414,34 +1157,24 @@ github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYa github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= 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/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/tyler-smith/go-bip32 v1.0.0 h1:sDR9juArbUgX+bO/iblgZnMPeWY1KZMUC2AFUJdv5KE= +github.com/tyler-smith/go-bip32 v1.0.0/go.mod h1:onot+eHknzV4BVPwrzqY5OoVpyCvnwD7lMawL5aQupE= 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/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= +github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -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/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= -github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -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/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/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/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1450,22 +1183,14 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -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/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= github.com/zondax/ledger-go v0.14.1 h1:Pip65OOl4iJ84WTpA4BKChvOufMhhbxED3BaihoZN4c= github.com/zondax/ledger-go v0.14.1/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= -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.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= -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= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= @@ -1481,42 +1206,38 @@ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqe go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= 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/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= 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.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= -go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +golang.org/x/crypto v0.0.0-20170613210332-850760c427c5/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= 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-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-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/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-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1528,8 +1249,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us= +golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1556,12 +1277,12 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= -golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +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= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1573,16 +1294,12 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 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-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= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1598,8 +1315,8 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/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= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 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= @@ -1612,7 +1329,7 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b 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-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1625,8 +1342,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1652,8 +1369,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= -golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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= @@ -1668,8 +1385,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1686,39 +1403,27 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w 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-20190522044717-8097e1b27ff5/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= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 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-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= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 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= @@ -1727,24 +1432,16 @@ golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7w 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-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= -golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/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-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-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1754,11 +1451,9 @@ golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1771,6 +1466,7 @@ golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/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-20210906170528-6f6e22806c34/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-20210927094055-39ccf1dd6fa6/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-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1797,13 +1493,14 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= 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= @@ -1813,19 +1510,18 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/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-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/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-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1836,11 +1532,8 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBn 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= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/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-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1866,17 +1559,14 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjs golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/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-20200616133436-c1934b75d054/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-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-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/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= @@ -1891,8 +1581,8 @@ 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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= +golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= 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= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1902,7 +1592,6 @@ golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNq golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -1952,8 +1641,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU= -google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= 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= @@ -1963,14 +1652,12 @@ google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= 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-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-20190307195333-5fe7a883aa19/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= -google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= 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= @@ -1980,7 +1667,6 @@ google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -1996,14 +1682,12 @@ google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 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-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= 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= google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 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= @@ -2077,9 +1761,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 h1:EfLuoKW5WfkgVdDy7dTK8qSbH37AX5mj/MFh+bGPz14= -google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= -google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= +google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 h1:s5YSX+ZH5b5vS9rnpGymvIyMpLRJizowqDlOuyjXnTk= +google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -2089,7 +1776,6 @@ google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -2122,8 +1808,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= -google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.56.2 h1:fVRFRnXvU+x6C4IlHZewvJOVHoOv1TUuQyoRsYnB4bI= +google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -2140,33 +1826,25 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.29.1 h1:7QBf+IK2gx70Ap/hDsOmam3GE0v9HicjfEdAxE62UoM= -google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= 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-20200902074654-038fdea0a05b/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.27/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/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= @@ -2185,10 +1863,8 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= -gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -2197,36 +1873,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= 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= -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= -k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= -k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= -k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc= -k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= -k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM= -k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q= -k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= -k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= -k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0= -k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0= -k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= -k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI= -k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM= -k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= -k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= -k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= -k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -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= +launchpad.net/gocheck v0.0.0-20140225173054-000000000087 h1:Izowp2XBH6Ya6rv+hqbceQyw/gSGoXfH/UPoTGduL54= +launchpad.net/gocheck v0.0.0-20140225173054-000000000087/go.mod h1:hj7XX3B/0A+80Vse0e+BUHsHMTEhd0O4cpUHr/e/BUM= lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0= lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI= @@ -2236,23 +1884,27 @@ modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0= modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw= modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM= -modernc.org/libc v1.22.3 h1:D/g6O5ftAfavceqlLOFwaZuA5KYafKwmr30A6iSqoyY= -modernc.org/libc v1.22.3/go.mod h1:MQrloYP209xa2zHome2a8HLiLm6k0UT8CoHpV74tOFw= +modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= +modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE= +modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY= modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sqlite v1.21.1 h1:GyDFqNnESLOhwwDRaHGdp2jKLDzpyT/rNLglX3ZkMSU= -modernc.org/sqlite v1.21.1/go.mod h1:XwQ0wZPIh1iKb5mkvCJ3szzbhk+tykC8ZWqTRTgYRwI= +modernc.org/sqlite v1.23.0 h1:MWTFBI5H1WLnXpNBh/BTruBVqzzoh28DA0iOnlkkRaM= +modernc.org/sqlite v1.23.0/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk= modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY= modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= -modernc.org/tcl v1.15.1 h1:mOQwiEK4p7HruMZcwKTZPw/aqtGM4aY00uzWhlKKYws= +modernc.org/tcl v1.15.2 h1:C4ybAYCGJw968e+Me18oW55kD/FexcHbqH2xak1ROSY= +modernc.org/tcl v1.15.2/go.mod h1:3+k/ZaEbKrC8ePv8zJWPtBSW0V7Gg9g8rkmhI1Kfs3c= modernc.org/token v1.0.1 h1:A3qvTqOwexpfZZeyI0FeGPDlSWX5pjZu9hF4lU+EKWg= modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/z v1.7.0 h1:xkDw/KepgEjeizO2sNco+hqYkU12taxQFqPEmgm1GWE= +modernc.org/z v1.7.3 h1:zDJf6iHjrnB+WRD88stbXokugjyc0/pB91ri1gO6LZY= +modernc.org/z v1.7.3/go.mod h1:Ipv4tsdxZRbQyLq9Q1M6gdbkxYzdlrciF2Hi/lS7nWE= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= @@ -2260,13 +1912,7 @@ pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/interchaintest/ibc_test.go b/interchaintest/ibc_test.go index 6ee722104..81140ba74 100644 --- a/interchaintest/ibc_test.go +++ b/interchaintest/ibc_test.go @@ -48,10 +48,11 @@ func TestRelayerInProcess(t *testing.T) { func TestRelayerDockerEventProcessor(t *testing.T) { t.Parallel() + image := relayerinterchaintest.BuildRelayerImage(t) rf := interchaintest.NewBuiltinRelayerFactory( ibc.CosmosRly, zaptest.NewLogger(t), - interchaintestrelayer.CustomDockerImage(relayerinterchaintest.RelayerImageName, "latest", "100:1000"), + interchaintestrelayer.CustomDockerImage(image, "latest", "100:1000"), interchaintestrelayer.ImagePull(false), interchaintestrelayer.StartupFlags("--processor", "events", "--block-history", "100"), ) @@ -64,12 +65,12 @@ func TestRelayerDockerEventProcessor(t *testing.T) { // Relayer runs using the legacy processor. func TestRelayerDockerLegacyProcessor(t *testing.T) { t.Parallel() - relayerinterchaintest.BuildRelayerImage(t) + image := relayerinterchaintest.BuildRelayerImage(t) rf := interchaintest.NewBuiltinRelayerFactory( ibc.CosmosRly, zaptest.NewLogger(t), - interchaintestrelayer.CustomDockerImage(relayerinterchaintest.RelayerImageName, "latest", "100:1000"), + interchaintestrelayer.CustomDockerImage(image, "latest", "100:1000"), interchaintestrelayer.ImagePull(false), interchaintestrelayer.StartupFlags("--processor", "legacy"), ) diff --git a/interchaintest/ica_channel_close_test.go b/interchaintest/ica_channel_close_test.go index b21a41c32..6eac44b64 100644 --- a/interchaintest/ica_channel_close_test.go +++ b/interchaintest/ica_channel_close_test.go @@ -26,8 +26,6 @@ func TestScenarioICAChannelClose(t *testing.T) { t.Skip("skipping in short mode") } - t.Parallel() - client, network := interchaintest.DockerSetup(t) rep := testreporter.NewNopReporter() @@ -93,6 +91,8 @@ func TestScenarioICAChannelClose(t *testing.T) { // BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), })) + t.Parallel() + // Fund a user account on chain1 and chain2 const userFunds = int64(10_000_000_000) users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), userFunds, chain1, chain2) @@ -244,7 +244,7 @@ func TestScenarioICAChannelClose(t *testing.T) { // Wait for ack _, err = cosmos.PollForMessage(ctx, chain1, ir, - c1h, c1h+10, ackFound) + c1h, c1h+25, ackFound) require.NoError(t, err) // Assert that the funds have been received by the user account on chain2 @@ -311,7 +311,7 @@ func TestScenarioICAChannelClose(t *testing.T) { // Wait for channel open confirm _, err = cosmos.PollForMessage(ctx, chain2, ir, - c2h, c2h+30, channelFound) + c2h, c2h+40, channelFound) require.NoError(t, err) // Assert that a new channel has been opened and the same ICA is in use diff --git a/interchaintest/interchain_accounts_test.go b/interchaintest/interchain_accounts_test.go index 0185b2bc2..0ec0a1df5 100644 --- a/interchaintest/interchain_accounts_test.go +++ b/interchaintest/interchain_accounts_test.go @@ -27,8 +27,6 @@ func TestScenarioInterchainAccounts(t *testing.T) { t.Skip("skipping in short mode") } - t.Parallel() - client, network := interchaintest.DockerSetup(t) rep := testreporter.NewNopReporter() @@ -94,6 +92,8 @@ func TestScenarioInterchainAccounts(t *testing.T) { // BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), })) + t.Parallel() + // Fund a user account on chain1 and chain2 const userFunds = int64(10_000_000_000) users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), userFunds, chain1, chain2) diff --git a/interchaintest/localhost_client_test.go b/interchaintest/localhost_client_test.go new file mode 100644 index 000000000..24a9ec11d --- /dev/null +++ b/interchaintest/localhost_client_test.go @@ -0,0 +1,472 @@ +package interchaintest_test + +import ( + "context" + "encoding/json" + "fmt" + "strconv" + "testing" + + transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + relayertest "github.com/cosmos/relayer/v2/interchaintest" + "github.com/strangelove-ventures/interchaintest/v7" + "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v7/ibc" + "github.com/strangelove-ventures/interchaintest/v7/testreporter" + "github.com/strangelove-ventures/interchaintest/v7/testutil" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zaptest" +) + +func TestLocalhost_TokenTransfers(t *testing.T) { + if testing.Short() { + t.Skip() + } + + t.Parallel() + + numVals := 1 + numFullNodes := 0 + image := ibc.DockerImage{ + Repository: "ghcr.io/cosmos/ibc-go-simd", + Version: "v7.1.0-rc0", + UidGid: "", + } + cdc := cosmos.DefaultEncoding() + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + { + Name: "ibc-go-simd", + ChainName: "simd", + Version: "main", + NumValidators: &numVals, + NumFullNodes: &numFullNodes, + ChainConfig: ibc.ChainConfig{ + Type: "cosmos", + Name: "simd", + ChainID: "chain-a", + Images: []ibc.DockerImage{image}, + Bin: "simd", + Bech32Prefix: "cosmos", + Denom: "stake", + CoinType: "118", + GasPrices: "0.0stake", + GasAdjustment: 1.1, + EncodingConfig: &cdc, + UsingNewGenesisCommand: true, + }}}, + ) + + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + chainA := chains[0].(*cosmos.CosmosChain) + + ctx := context.Background() + client, network := interchaintest.DockerSetup(t) + + rf := relayertest.NewRelayerFactory(relayertest.RelayerConfig{InitialBlockHistory: 50}) + r := rf.Build(t, client, network) + + const pathLocalhost = "chainA-localhost" + + ic := interchaintest.NewInterchain(). + AddChain(chainA). + AddRelayer(r, "relayer") + + rep := testreporter.NewNopReporter() + eRep := rep.RelayerExecReporter(t) + + require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + SkipPathCreation: true, + })) + + t.Cleanup(func() { + _ = ic.Close() + }) + + const relayerKey = "relayer-key" + const mnemonic = "all unit ordinary card sword document left illegal frog chuckle assume gift south settle can explain wagon beef story praise gorilla arch close good" + + // initialize a new acc for the relayer along with a couple user accs + initBal := int64(10_000_000) + _, err = interchaintest.GetAndFundTestUserWithMnemonic(ctx, relayerKey, mnemonic, initBal, chainA) + require.NoError(t, err) + + users := interchaintest.GetAndFundTestUsers(t, ctx, "test-key", initBal, chainA, chainA) + err = testutil.WaitForBlocks(ctx, 5, chainA) + require.NoError(t, err) + + userA, userB := users[0], users[1] + + // assert initial balances are correct + userABal, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, initBal, userABal) + + userBBal, err := chainA.GetBalance(ctx, userB.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, initBal, userBBal) + + // configure the relayer for a localhost connection + err = r.AddChainConfiguration(ctx, eRep, chainA.Config(), relayerKey, chainA.GetHostRPCAddress(), chainA.GetHostGRPCAddress()) + require.NoError(t, err) + + err = r.RestoreKey(ctx, eRep, chainA.Config(), relayerKey, mnemonic) + require.NoError(t, err) + + err = r.GeneratePath(ctx, eRep, chainA.Config().ChainID, chainA.Config().ChainID, pathLocalhost) + require.NoError(t, err) + + updateCmd := []string{ + "paths", "update", pathLocalhost, + "--src-client-id", ibcexported.LocalhostClientID, + "--src-connection-id", ibcexported.LocalhostConnectionID, + "--dst-client-id", ibcexported.LocalhostClientID, + "--dst-connection-id", ibcexported.LocalhostConnectionID, + } + res := r.Exec(ctx, eRep, updateCmd, nil) + require.NoError(t, res.Err) + + // initialize new channels + err = r.CreateChannel(ctx, eRep, pathLocalhost, ibc.DefaultChannelOpts()) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, chainA) + require.NoError(t, err) + + channels, err := r.GetChannels(ctx, eRep, chainA.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 2, len(channels)) + + channel := channels[0] + + // compose the ibc denom for balance assertions + denom := transfertypes.GetPrefixedDenom(channel.Counterparty.PortID, channel.Counterparty.ChannelID, chainA.Config().Denom) + trace := transfertypes.ParseDenomTrace(denom) + + // start the relayer + require.NoError(t, r.StartRelayer(ctx, eRep, pathLocalhost)) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + panic(fmt.Errorf("an error occured while stopping the relayer: %s", err)) + } + }, + ) + + // compose and send a localhost IBC transfer which should be successful + const transferAmount = int64(1_000) + transfer := ibc.WalletAmount{ + Address: userB.FormattedAddress(), + Denom: chainA.Config().Denom, + Amount: transferAmount, + } + + cmd := []string{ + chainA.Config().Bin, "tx", "ibc-transfer", "transfer", "transfer", + channel.ChannelID, + transfer.Address, + fmt.Sprintf("%d%s", transfer.Amount, transfer.Denom), + "--from", userA.FormattedAddress(), + "--gas-prices", "0.0stake", + "--gas-adjustment", "1.2", + "--keyring-backend", "test", + "--absolute-timeouts", + "--packet-timeout-timestamp", "9999999999999999999", + "--output", "json", + "-y", + "--home", chainA.HomeDir(), + "--node", chainA.GetRPCAddress(), + "--chain-id", chainA.Config().ChainID, + } + _, _, err = chainA.Exec(ctx, cmd, nil) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chainA) + require.NoError(t, err) + + // assert that the updated balances are correct + newBalA, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, userABal-transferAmount, newBalA) + + newBalB, err := chainA.GetBalance(ctx, userB.FormattedAddress(), trace.IBCDenom()) + require.NoError(t, err) + require.Equal(t, transferAmount, newBalB) + + // compose and send another localhost IBC transfer which should succeed + cmd = []string{ + chainA.Config().Bin, "tx", "ibc-transfer", "transfer", "transfer", + channel.ChannelID, + transfer.Address, + fmt.Sprintf("%d%s", transfer.Amount, transfer.Denom), + "--from", userA.FormattedAddress(), + "--gas-prices", "0.0stake", + "--gas-adjustment", "1.2", + "--keyring-backend", "test", + "--absolute-timeouts", + "--packet-timeout-timestamp", "9999999999999999999", + "--output", "json", + "-y", + "--home", chainA.HomeDir(), + "--node", chainA.GetRPCAddress(), + "--chain-id", chainA.Config().ChainID, + } + _, _, err = chainA.Exec(ctx, cmd, nil) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chainA) + require.NoError(t, err) + + // assert that the balances are updated + tmpBalA := newBalA + newBalA, err = chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, tmpBalA-transferAmount, newBalA) + + tmpBalB := newBalB + newBalB, err = chainA.GetBalance(ctx, userB.FormattedAddress(), trace.IBCDenom()) + require.NoError(t, err) + require.Equal(t, tmpBalB+transferAmount, newBalB) +} + +func TestLocalhost_InterchainAccounts(t *testing.T) { + if testing.Short() { + t.Skip() + } + + t.Parallel() + + numVals := 1 + numFullNodes := 0 + image := ibc.DockerImage{ + Repository: "ghcr.io/cosmos/ibc-go-simd", + Version: "v7.1.0-rc0", + UidGid: "", + } + cdc := cosmos.DefaultEncoding() + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + { + Name: "ibc-go-simd", + ChainName: "simd", + Version: "main", + NumValidators: &numVals, + NumFullNodes: &numFullNodes, + ChainConfig: ibc.ChainConfig{ + Type: "cosmos", + Name: "simd", + ChainID: "chain-a", + Images: []ibc.DockerImage{image}, + Bin: "simd", + Bech32Prefix: "cosmos", + Denom: "stake", + CoinType: "118", + GasPrices: "0.0stake", + GasAdjustment: 1.1, + EncodingConfig: &cdc, + UsingNewGenesisCommand: true, + }}}, + ) + + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + chainA := chains[0].(*cosmos.CosmosChain) + + ctx := context.Background() + client, network := interchaintest.DockerSetup(t) + + rf := relayertest.NewRelayerFactory(relayertest.RelayerConfig{InitialBlockHistory: 50}) + r := rf.Build(t, client, network) + + const pathLocalhost = "chainA-localhost" + + ic := interchaintest.NewInterchain(). + AddChain(chainA). + AddRelayer(r, "relayer") + + rep := testreporter.NewNopReporter() + eRep := rep.RelayerExecReporter(t) + + require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + SkipPathCreation: true, + })) + + t.Cleanup(func() { + _ = ic.Close() + }) + + const ( + relayerKey = "relayer-key" + mnemonic = "all unit ordinary card sword document left illegal frog chuckle assume gift south settle can explain wagon beef story praise gorilla arch close good" + ) + + // initialize a new acc for the relayer along with a new user acc + const initBal = int64(10_000_000) + _, err = interchaintest.GetAndFundTestUserWithMnemonic(ctx, relayerKey, mnemonic, initBal, chainA) + require.NoError(t, err) + + users := interchaintest.GetAndFundTestUsers(t, ctx, "test-key", initBal, chainA) + userA := users[0] + + err = testutil.WaitForBlocks(ctx, 5, chainA) + require.NoError(t, err) + + // assert initial balance is correct + userABal, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, initBal, userABal) + + // configure the relayer for a localhost connection + err = r.AddChainConfiguration(ctx, eRep, chainA.Config(), relayerKey, chainA.GetHostRPCAddress(), chainA.GetHostGRPCAddress()) + require.NoError(t, err) + + err = r.RestoreKey(ctx, eRep, chainA.Config(), relayerKey, mnemonic) + require.NoError(t, err) + + err = r.GeneratePath(ctx, eRep, chainA.Config().ChainID, chainA.Config().ChainID, pathLocalhost) + require.NoError(t, err) + + updateCmd := []string{ + "paths", "update", pathLocalhost, + "--src-client-id", ibcexported.LocalhostClientID, + "--src-connection-id", ibcexported.LocalhostConnectionID, + "--dst-client-id", ibcexported.LocalhostClientID, + "--dst-connection-id", ibcexported.LocalhostConnectionID, + } + res := r.Exec(ctx, eRep, updateCmd, nil) + require.NoError(t, res.Err) + + // start the relayer + require.NoError(t, r.StartRelayer(ctx, eRep, pathLocalhost)) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + panic(fmt.Errorf("an error occured while stopping the relayer: %s", err)) + } + }, + ) + + // register a new interchain account + registerCmd := []string{ + chainA.Config().Bin, "tx", "interchain-accounts", "controller", "register", ibcexported.LocalhostConnectionID, + "--from", userA.FormattedAddress(), + "--gas-prices", "0.0stake", + "--gas-adjustment", "1.2", + "--keyring-backend", "test", + "--output", "json", + "-y", + "--home", chainA.HomeDir(), + "--node", chainA.GetRPCAddress(), + "--chain-id", chainA.Config().ChainID, + } + + _, _, err = chainA.Exec(ctx, registerCmd, nil) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, chainA) + require.NoError(t, err) + + channels, err := r.GetChannels(ctx, eRep, chainA.Config().ChainID) + require.NoError(t, err) + require.Equal(t, 2, len(channels)) + + // query for the newly created ica + queryCmd := []string{ + chainA.Config().Bin, "q", "interchain-accounts", "controller", "interchain-account", + userA.FormattedAddress(), ibcexported.LocalhostConnectionID, + "--home", chainA.HomeDir(), + "--node", chainA.GetRPCAddress(), + "--chain-id", chainA.Config().ChainID, + } + stdout, _, err := chainA.Exec(ctx, queryCmd, nil) + require.NoError(t, err) + + icaAddr := parseInterchainAccountField(stdout) + require.NotEmpty(t, icaAddr) + + // asser the ICA balance, send some funds to the ICA, then re-assert balances + icaBal, err := chainA.GetBalance(ctx, icaAddr, chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, int64(0), icaBal) + + const transferAmount = 1000 + transfer := ibc.WalletAmount{ + Address: icaAddr, + Denom: chainA.Config().Denom, + Amount: transferAmount, + } + err = chainA.SendFunds(ctx, userA.KeyName(), transfer) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chainA) + require.NoError(t, err) + + newBalICA, err := chainA.GetBalance(ctx, icaAddr, chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, int64(transferAmount), newBalICA) + + newBalA, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, userABal-transferAmount, newBalA) + + // compose msg to send to ICA + rawMsg, err := json.Marshal(map[string]any{ + "@type": "/cosmos.bank.v1beta1.MsgSend", + "from_address": icaAddr, + "to_address": userA.FormattedAddress(), + "amount": []map[string]any{ + { + "denom": chainA.Config().Denom, + "amount": strconv.Itoa(transferAmount), + }, + }, + }) + require.NoError(t, err) + + generateCmd := []string{ + chainA.Config().Bin, "tx", "interchain-accounts", "host", "generate-packet-data", string(rawMsg), + } + msgBz, _, err := chainA.Exec(ctx, generateCmd, nil) + require.NoError(t, err) + + // send tx to our ICA + sendCmd := []string{ + chainA.Config().Bin, "tx", "interchain-accounts", "controller", "send-tx", + ibcexported.LocalhostConnectionID, string(msgBz), + "--from", userA.FormattedAddress(), + "--gas-prices", "0.0stake", + "--gas-adjustment", "1.2", + "--keyring-backend", "test", + "--output", "json", + "-y", + "--home", chainA.HomeDir(), + "--node", chainA.GetRPCAddress(), + "--chain-id", chainA.Config().ChainID, + } + _, _, err = chainA.Exec(ctx, sendCmd, nil) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chainA) + require.NoError(t, err) + + // assert updated balances are correct + finalBalICA, err := chainA.GetBalance(ctx, icaAddr, chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, newBalICA-transferAmount, finalBalICA) + + finalBalA, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + require.Equal(t, newBalA+int64(transferAmount), finalBalA) +} diff --git a/interchaintest/misbehaviour_test.go b/interchaintest/misbehaviour_test.go index 6d10003e9..9c99c5504 100644 --- a/interchaintest/misbehaviour_test.go +++ b/interchaintest/misbehaviour_test.go @@ -14,12 +14,15 @@ import ( cometprotoversion "github.com/cometbft/cometbft/proto/tendermint/version" comettypes "github.com/cometbft/cometbft/types" cometversion "github.com/cometbft/cometbft/version" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdked25519 "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" "github.com/cosmos/cosmos-sdk/std" sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/cosmos/gogoproto/proto" transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + "github.com/cosmos/ibc-go/v7/modules/core/exported" ibctypes "github.com/cosmos/ibc-go/v7/modules/core/types" ibccomettypes "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" ibctesting "github.com/cosmos/ibc-go/v7/testing" @@ -32,21 +35,22 @@ import ( "github.com/strangelove-ventures/interchaintest/v7/testreporter" "github.com/strangelove-ventures/interchaintest/v7/testutil" "github.com/stretchr/testify/require" + "go.uber.org/zap" "go.uber.org/zap/zaptest" ) -func TestScenarioMisbehaviourDetection(t *testing.T) { +func TestRelayerMisbehaviourDetection(t *testing.T) { if testing.Short() { t.Skip() } - t.Parallel() - numVals := 1 numFullNodes := 0 - cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ - {Name: "gaia", Version: "v9.0.0-rc1", NumValidators: &numVals, NumFullNodes: &numFullNodes, ChainConfig: ibc.ChainConfig{ChainID: "chain-a", GasPrices: "0.0uatom"}}, - {Name: "gaia", Version: "v9.0.0-rc1", NumValidators: &numVals, NumFullNodes: &numFullNodes, ChainConfig: ibc.ChainConfig{ChainID: "chain-b", GasPrices: "0.0uatom"}}}, + logger := zaptest.NewLogger(t) + + cf := interchaintest.NewBuiltinChainFactory(logger, []*interchaintest.ChainSpec{ + {Name: "gaia", Version: "v9.0.0-rc1", NumValidators: &numVals, NumFullNodes: &numFullNodes, ChainConfig: ibc.ChainConfig{ChainID: "chain-a", GasPrices: "0.0uatom", Bech32Prefix: "cosmos"}}, + {Name: "gaia", Version: "v9.0.0-rc1", NumValidators: &numVals, NumFullNodes: &numFullNodes, ChainConfig: ibc.ChainConfig{ChainID: "chain-b", GasPrices: "0.0uatom", Bech32Prefix: "cosmos"}}}, ) chains, err := cf.Chains(t.Name()) @@ -83,6 +87,8 @@ func TestScenarioMisbehaviourDetection(t *testing.T) { SkipPathCreation: false, })) + t.Parallel() + t.Cleanup(func() { _ = ic.Close() }) @@ -90,6 +96,7 @@ func TestScenarioMisbehaviourDetection(t *testing.T) { // create a new user account and wait a few blocks for it to be created on chain user := interchaintest.GetAndFundTestUsers(t, ctx, "user-1", 10_000_000, chainA)[0] err = testutil.WaitForBlocks(ctx, 5, chainA) + require.NoError(t, err) // Start the relayer require.NoError(t, r.StartRelayer(ctx, eRep, pathChainAChainB)) @@ -171,9 +178,19 @@ func TestScenarioMisbehaviourDetection(t *testing.T) { // attempt to update client with duplicate header b := cosmos.NewBroadcaster(t, chainA) - msg, err := clienttypes.NewMsgUpdateClient(clientID, newHeader, user.FormattedAddress()) + m, ok := newHeader.(proto.Message) + require.True(t, ok) + + protoAny, err := codectypes.NewAnyWithValue(m) require.NoError(t, err) + msg := &clienttypes.MsgUpdateClient{ + ClientId: clientID, + ClientMessage: protoAny, + Signer: user.FormattedAddress(), + } + logger.Info("Misbehaviour test, MsgUpdateClient", zap.String("Signer", user.FormattedAddress())) + resp, err := cosmos.BroadcastTx(ctx, b, user, msg) require.NoError(t, err) assertTransactionIsValid(t, resp) @@ -200,6 +217,7 @@ func TestScenarioMisbehaviourDetection(t *testing.T) { } func assertTransactionIsValid(t *testing.T, resp sdk.TxResponse) { + t.Helper() require.NotNil(t, resp) require.NotEqual(t, 0, resp.GasUsed) require.NotEqual(t, 0, resp.GasWanted) @@ -209,7 +227,13 @@ func assertTransactionIsValid(t *testing.T, resp sdk.TxResponse) { require.NotEmpty(t, resp.Events) } -func queryHeaderAtHeight(ctx context.Context, t *testing.T, height int64, chain *cosmos.CosmosChain) (*ibccomettypes.Header, error) { +func queryHeaderAtHeight( + ctx context.Context, + t *testing.T, + height int64, + chain *cosmos.CosmosChain, +) (*ibccomettypes.Header, error) { + t.Helper() var ( page = 1 perPage = 100000 @@ -239,7 +263,8 @@ func createTMClientHeader( tmValSet, tmTrustedVals *comettypes.ValidatorSet, signers []comettypes.PrivValidator, oldHeader *ibccomettypes.Header, -) *ibccomettypes.Header { +) exported.ClientMessage { + t.Helper() var ( valSet *cometproto.ValidatorSet trustedVals *cometproto.ValidatorSet diff --git a/interchaintest/multi_channel_test.go b/interchaintest/multi_channel_test.go index 6904f5751..ad123f756 100644 --- a/interchaintest/multi_channel_test.go +++ b/interchaintest/multi_channel_test.go @@ -18,13 +18,13 @@ import ( ) func TestMultipleChannelsOneConnection(t *testing.T) { - relayerinterchaintest.BuildRelayerImage(t) + image := relayerinterchaintest.BuildRelayerImage(t) client, network := interchaintest.DockerSetup(t) r := interchaintest.NewBuiltinRelayerFactory( ibc.CosmosRly, zaptest.NewLogger(t), - interchaintestrelayer.CustomDockerImage(relayerinterchaintest.RelayerImageName, "latest", "100:1000"), + interchaintestrelayer.CustomDockerImage(image, "latest", "100:1000"), interchaintestrelayer.ImagePull(false), ).Build(t, client, network) diff --git a/interchaintest/path_filter_test.go b/interchaintest/path_filter_test.go index 7889587d2..3ef7b9215 100644 --- a/interchaintest/path_filter_test.go +++ b/interchaintest/path_filter_test.go @@ -21,7 +21,6 @@ import ( // TestScenarioPathFilterAllow tests the channel allowlist func TestScenarioPathFilterAllow(t *testing.T) { - t.Parallel() ctx := context.Background() nv := 1 @@ -43,6 +42,8 @@ func TestScenarioPathFilterAllow(t *testing.T) { InitialBlockHistory: 100, }).Build(t, nil, "") + t.Parallel() + // Prep Interchain const ibcPath = "gaia-osmosis" ic := interchaintest.NewInterchain(). @@ -89,6 +90,14 @@ func TestScenarioPathFilterAllow(t *testing.T) { gaiaUser, osmosisUser := users[0].(*cosmos.CosmosWallet), users[1].(*cosmos.CosmosWallet) r.StartRelayer(ctx, eRep, ibcPath) + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occured while stopping the relayer: %s", err) + } + }, + ) // Send Transaction amountToSend := int64(1_000_000) @@ -159,7 +168,6 @@ func TestScenarioPathFilterAllow(t *testing.T) { // TestScenarioPathFilterDeny tests the channel denylist func TestScenarioPathFilterDeny(t *testing.T) { - t.Parallel() ctx := context.Background() nv := 1 @@ -208,6 +216,8 @@ func TestScenarioPathFilterDeny(t *testing.T) { SkipPathCreation: false, })) + t.Parallel() + // Get Channel ID gaiaChans, err := r.GetChannels(ctx, eRep, gaia.Config().ChainID) require.NoError(t, err) @@ -226,6 +236,14 @@ func TestScenarioPathFilterDeny(t *testing.T) { gaiaUser, osmosisUser := users[0].(*cosmos.CosmosWallet), users[1].(*cosmos.CosmosWallet) r.StartRelayer(ctx, eRep, ibcPath) + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occured while stopping the relayer: %s", err) + } + }, + ) // Send Transaction amountToSend := int64(1_000_000) diff --git a/interchaintest/relayer.go b/interchaintest/relayer.go index 1283ac9a8..8641830bc 100644 --- a/interchaintest/relayer.go +++ b/interchaintest/relayer.go @@ -9,6 +9,7 @@ import ( "testing" "github.com/cosmos/cosmos-sdk/crypto/keyring" + "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/relayer/v2/cmd" "github.com/cosmos/relayer/v2/internal/relayertest" "github.com/cosmos/relayer/v2/relayer" @@ -37,6 +38,9 @@ func NewRelayer( t *testing.T, config RelayerConfig, ) ibc.Relayer { + //prevent incorrect bech32 address prefixed addresses when calling AccAddress.String() + types.SetAddrCacheEnabled(false) + r := &Relayer{ t: t, home: t.TempDir(), @@ -84,13 +88,13 @@ func (r *Relayer) AddChainConfiguration(ctx context.Context, _ ibc.RelayerExecRe return nil } -func (r *Relayer) AddKey(ctx context.Context, _ ibc.RelayerExecReporter, chainID, keyName, coinType, signingAlgorithm string) (ibc.Wallet, error) { - res := r.sys().RunC(ctx, r.log(), "keys", "add", chainID, keyName, "--coin-type", coinType, "--signing-algorithm", signingAlgorithm) +func (r *Relayer) AddKey(ctx context.Context, _ ibc.RelayerExecReporter, chainID, keyName, coinType string) (ibc.Wallet, error) { + res := r.sys().RunC(ctx, r.log(), "keys", "add", chainID, keyName, "--coin-type", coinType) if res.Err != nil { return nil, res.Err } - var w ibc.Wallet + var w *interchaintestcosmos.CosmosWallet if err := json.Unmarshal(res.Stdout.Bytes(), &w); err != nil { return nil, err } @@ -98,8 +102,8 @@ func (r *Relayer) AddKey(ctx context.Context, _ ibc.RelayerExecReporter, chainID return w, nil } -func (r *Relayer) RestoreKey(ctx context.Context, _ ibc.RelayerExecReporter, chainID, keyName, coinType, signingAlgorithm, mnemonic string) error { - res := r.sys().RunC(ctx, r.log(), "keys", "restore", chainID, keyName, mnemonic, "--coin-type", coinType, "--signing-algorithm", signingAlgorithm) +func (r *Relayer) RestoreKey(ctx context.Context, _ ibc.RelayerExecReporter, cfg ibc.ChainConfig, keyName, mnemonic string) error { + res := r.sys().RunC(ctx, r.log(), "keys", "restore", cfg.ChainID, keyName, mnemonic, "--coin-type", cfg.CoinType) if res.Err != nil { return res.Err } @@ -348,3 +352,10 @@ func (r *Relayer) GetWallet(chainID string) (ibc.Wallet, bool) { } return rly.NewWallet(keyName, address, ""), true } + +// SetClientContractHash sets the wasm client contract hash in the chain's config if the counterparty chain in a path used 08-wasm +// to instantiate the client. +func (r *Relayer) SetClientContractHash(ctx context.Context, rep ibc.RelayerExecReporter, cfg ibc.ChainConfig, hash string) error { + //TODO implement me + panic("implement me") +} diff --git a/interchaintest/relayer_factory.go b/interchaintest/relayer_factory.go index 9349a72a3..c833591bc 100644 --- a/interchaintest/relayer_factory.go +++ b/interchaintest/relayer_factory.go @@ -5,7 +5,6 @@ import ( "github.com/docker/docker/client" "github.com/strangelove-ventures/interchaintest/v7/ibc" - "github.com/strangelove-ventures/interchaintest/v7/label" interchaintestrelayer "github.com/strangelove-ventures/interchaintest/v7/relayer" ) @@ -41,8 +40,4 @@ func (RelayerFactory) Capabilities() map[interchaintestrelayer.Capability]bool { return interchaintestrelayer.FullCapabilities() } -func (RelayerFactory) Labels() []label.Relayer { - return []label.Relayer{label.Rly} -} - func (RelayerFactory) Name() string { return "github.com/cosmos/relayer" } diff --git a/interchaintest/relayer_override_test.go b/interchaintest/relayer_override_test.go index 2885c21ff..d729cc719 100644 --- a/interchaintest/relayer_override_test.go +++ b/interchaintest/relayer_override_test.go @@ -23,13 +23,13 @@ import ( // is a client-id present in the relative path config. If the override flag is present, the relayer should always // attempt to create a new light client and then overwrite the config file if successful. func TestClientOverrideFlag(t *testing.T) { - relayerinterchaintest.BuildRelayerImage(t) + image := relayerinterchaintest.BuildRelayerImage(t) client, network := interchaintest.DockerSetup(t) r := interchaintest.NewBuiltinRelayerFactory( ibc.CosmosRly, zaptest.NewLogger(t), - interchaintestrelayer.CustomDockerImage(relayerinterchaintest.RelayerImageName, "latest", "100:1000"), + interchaintestrelayer.CustomDockerImage(image, "latest", "100:1000"), interchaintestrelayer.ImagePull(false), ).Build(t, client, network) diff --git a/interchaintest/stride/stride_icq_test.go b/interchaintest/stride/stride_icq_test.go index 00a42c609..ac9a067e4 100644 --- a/interchaintest/stride/stride_icq_test.go +++ b/interchaintest/stride/stride_icq_test.go @@ -16,6 +16,7 @@ import ( "github.com/strangelove-ventures/interchaintest/v7/testreporter" "github.com/strangelove-ventures/interchaintest/v7/testutil" "github.com/stretchr/testify/require" + "go.uber.org/zap" "go.uber.org/zap/zaptest" "golang.org/x/sync/errgroup" ) @@ -26,9 +27,6 @@ func TestScenarioStrideICAandICQ(t *testing.T) { if testing.Short() { t.Skip() } - - t.Parallel() - client, network := interchaintest.DockerSetup(t) rep := testreporter.NewNopReporter() @@ -38,9 +36,10 @@ func TestScenarioStrideICAandICQ(t *testing.T) { nf := 0 nv := 1 + logger := zaptest.NewLogger(t) // Define chains involved in test - cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + cf := interchaintest.NewBuiltinChainFactory(logger, []*interchaintest.ChainSpec{ { Name: "stride", ChainName: "stride", @@ -113,10 +112,15 @@ func TestScenarioStrideICAandICQ(t *testing.T) { SkipPathCreation: false, })) + + t.Parallel() + t.Cleanup(func() { _ = ic.Close() }) + logger.Info("TestScenarioStrideICAandICQ [1]") + // Fund user accounts, so we can query balances and make assertions. const userFunds = int64(10_000_000_000_000) users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), userFunds, stride, gaia) @@ -128,6 +132,8 @@ func TestScenarioStrideICAandICQ(t *testing.T) { err = r.StartRelayer(ctx, eRep, pathStrideGaia) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [2]") + t.Cleanup( func() { err := r.StopRelayer(ctx, eRep) @@ -147,6 +153,8 @@ func TestScenarioStrideICAandICQ(t *testing.T) { strideAdminAddr, err := types.Bech32ifyAddressBytes(strideCfg.Bech32Prefix, strideAdminAddrBytes) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [3]") + err = stride.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{ Address: strideAdminAddr, Amount: userFunds, @@ -154,12 +162,16 @@ func TestScenarioStrideICAandICQ(t *testing.T) { }) require.NoError(t, err, "failed to fund stride admin account") + logger.Info("TestScenarioStrideICAandICQ [4]") + // get native chain user addresses strideAddr := strideUser.FormattedAddress() require.NotEmpty(t, strideAddr) + logger.Info("TestScenarioStrideICAandICQ [5]", zap.String("stride addr", strideAddr)) gaiaAddress := gaiaUser.FormattedAddress() require.NotEmpty(t, gaiaAddress) + logger.Info("TestScenarioStrideICAandICQ [6]", zap.String("gaia addr", gaiaAddress)) // get ibc paths gaiaConns, err := r.GetConnections(ctx, eRep, gaiaCfg.ChainID) @@ -168,6 +180,8 @@ func TestScenarioStrideICAandICQ(t *testing.T) { gaiaChans, err := r.GetChannels(ctx, eRep, gaiaCfg.ChainID) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [7]") + atomIBCDenom := transfertypes.ParseDenomTrace( transfertypes.GetPrefixedDenom( gaiaChans[0].Counterparty.PortID, @@ -182,6 +196,8 @@ func TestScenarioStrideICAandICQ(t *testing.T) { gaiaHeight, err := gaia.Height(ctx) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [8]") + // Fund stride user with ibc denom atom tx, err := gaia.SendIBCTransfer(ctx, gaiaChans[0].ChannelID, gaiaUser.KeyName(), ibc.WalletAmount{ Amount: 1_000_000_000_000, @@ -190,13 +206,19 @@ func TestScenarioStrideICAandICQ(t *testing.T) { }, ibc.TransferOptions{}) require.NoError(t, err) - _, err = testutil.PollForAck(ctx, gaia, gaiaHeight, gaiaHeight+10, tx.Packet) + logger.Info("TestScenarioStrideICAandICQ [9]") + + _, err = testutil.PollForAck(ctx, gaia, gaiaHeight, gaiaHeight+40, tx.Packet) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [10]") + require.NoError(t, eg.Wait()) + logger.Info("TestScenarioStrideICAandICQ [11]") + // Register gaia host zone - _, err = strideFullNode.ExecTx(ctx, StrideAdminAccount, + res, err := strideFullNode.ExecTx(ctx, StrideAdminAccount, "stakeibc", "register-host-zone", gaiaConns[0].Counterparty.ConnectionId, gaiaCfg.Denom, gaiaCfg.Bech32Prefix, atomIBCDenom, gaiaChans[0].Counterparty.ChannelID, "1", @@ -204,30 +226,40 @@ func TestScenarioStrideICAandICQ(t *testing.T) { ) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [12]", zap.String("execTx res", res)) + gaiaHeight, err = gaia.Height(ctx) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [13]") + // Wait for the ICA accounts to be setup // Poll for 4 MsgChannelOpenConfirm with timeout after 15 blocks. chanCount := 0 _, err = cosmos.PollForMessage( - ctx, gaia, gaiaCfg.EncodingConfig.InterfaceRegistry, gaiaHeight, gaiaHeight+15, + ctx, gaia, gaiaCfg.EncodingConfig.InterfaceRegistry, gaiaHeight, gaiaHeight+40, func(found *chantypes.MsgChannelOpenConfirm) bool { chanCount++; return chanCount == 4 }, ) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [14]") + // Get validator address gaiaVal1Address, err := gaia.Validators[0].KeyBech32(ctx, "validator", "val") require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [15]") + // Add gaia validator - _, err = strideFullNode.ExecTx(ctx, StrideAdminAccount, + res, err = strideFullNode.ExecTx(ctx, StrideAdminAccount, "stakeibc", "add-validator", gaiaCfg.ChainID, "gval1", gaiaVal1Address, "10", "5", ) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [16]", zap.String("execTx res", res)) + var gaiaHostZone HostZoneWrapper // query gaia host zone @@ -238,20 +270,31 @@ func TestScenarioStrideICAandICQ(t *testing.T) { err = json.Unmarshal(stdout, &gaiaHostZone) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [17]", zap.String("execQuery res", string(stdout))) + // Liquid stake some atom - _, err = strideFullNode.ExecTx(ctx, strideUser.KeyName(), + res, err = strideFullNode.ExecTx(ctx, strideUser.KeyName(), "stakeibc", "liquid-stake", "1000000000000", gaiaCfg.Denom, ) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [18]", zap.String("execTx res", res)) + strideHeight, err := stride.Height(ctx) require.NoError(t, err) + logger.Info("TestScenarioStrideICAandICQ [19]") + // Poll for MsgSubmitQueryResponse with timeout after 20 blocks - _, err = cosmos.PollForMessage( - ctx, stride, strideCfg.EncodingConfig.InterfaceRegistry, strideHeight, strideHeight+20, + resp, err := cosmos.PollForMessage( + ctx, stride, strideCfg.EncodingConfig.InterfaceRegistry, strideHeight, strideHeight+40, func(found *rlystride.MsgSubmitQueryResponse) bool { return true }, ) + + logger.Info("TestScenarioStrideICAandICQ [20]", zap.String("[poll for msg] resp", resp.String())) + if err != nil { + logger.Info("error poll: " + err.Error()) + } require.NoError(t, err) } diff --git a/interchaintest/tendermint_v0.37_boundary_test.go b/interchaintest/tendermint_v0.37_boundary_test.go index c7972c1ac..e25790176 100644 --- a/interchaintest/tendermint_v0.37_boundary_test.go +++ b/interchaintest/tendermint_v0.37_boundary_test.go @@ -18,8 +18,6 @@ func TestScenarioTendermint37Boundary(t *testing.T) { t.Skip("skipping in short mode") } - t.Parallel() - nv := 1 nf := 0 @@ -56,8 +54,11 @@ func TestScenarioTendermint37Boundary(t *testing.T) { rf := relayerinterchaintest.NewRelayerFactory(relayerinterchaintest.RelayerConfig{ InitialBlockHistory: 50, }) + r := rf.Build(t, client, network) + t.Parallel() + ic := interchaintest.NewInterchain(). AddChain(chain). AddChain(counterpartyChain). diff --git a/local.Dockerfile b/local.Dockerfile index 42e30e564..6cd45dd2c 100644 --- a/local.Dockerfile +++ b/local.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.20-alpine3.16 AS build-env +FROM golang:1-alpine3.17 AS build-env RUN apk add --update --no-cache curl make git libc-dev bash gcc linux-headers eudev-dev diff --git a/main.go b/main.go index 2dd1b6e4d..958a04ad7 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,15 @@ package main -import "github.com/cosmos/relayer/v2/cmd" +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/relayer/v2/cmd" +) func main() { cmd.Execute() } + +func init() { + //prevent incorrect bech32 address prefixed addresses when calling AccAddress.String() + sdk.SetAddrCacheEnabled(false) +} diff --git a/proto/cosmos/crypto/sr25519/keys.proto b/proto/cosmos/crypto/sr25519/keys.proto index eed481375..384cafe3a 100644 --- a/proto/cosmos/crypto/sr25519/keys.proto +++ b/proto/cosmos/crypto/sr25519/keys.proto @@ -8,13 +8,14 @@ import "gogoproto/gogo.proto"; // Originally github.com/cosmos/cosmos-sdk/crypto/keys/sr25519 option go_package = "github.com/cosmos/relayer/v2/relayer/chains/cosmos/keys/sr25519"; -option (gogoproto.messagename_all) = true; +option (gogoproto.messagename_all) = true; option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_getters_all) = false; +option (gogoproto.goproto_getters_all) = false; // PubKey defines a sr25519 ECDSA public key. message PubKey { - option (gogoproto.goproto_stringer) = false; + option (gogoproto.goproto_stringer) = false; - bytes key = 1 [(gogoproto.casttype) = "github.com/cometbft/cometbft/crypto/sr25519.PubKey"]; + bytes key = 1 [ (gogoproto.casttype) = + "github.com/cometbft/cometbft/crypto/sr25519.PubKey" ]; } diff --git a/relayer/chains/cosmos/codec.go b/relayer/chains/cosmos/codec.go index 0fcfbd389..16cdaa16f 100644 --- a/relayer/chains/cosmos/codec.go +++ b/relayer/chains/cosmos/codec.go @@ -10,7 +10,6 @@ import ( "github.com/cosmos/cosmos-sdk/x/auth/tx" authz "github.com/cosmos/cosmos-sdk/x/authz/module" "github.com/cosmos/cosmos-sdk/x/bank" - "github.com/cosmos/cosmos-sdk/x/capability" "github.com/cosmos/cosmos-sdk/x/crisis" "github.com/cosmos/cosmos-sdk/x/distribution" feegrant "github.com/cosmos/cosmos-sdk/x/feegrant/module" @@ -23,6 +22,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/staking" "github.com/cosmos/cosmos-sdk/x/upgrade" upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client" + "github.com/cosmos/ibc-go/modules/capability" ibcfee "github.com/cosmos/ibc-go/v7/modules/apps/29-fee" "github.com/cosmos/ibc-go/v7/modules/apps/transfer" ibc "github.com/cosmos/ibc-go/v7/modules/core" diff --git a/relayer/chains/cosmos/cosmos_chain_processor.go b/relayer/chains/cosmos/cosmos_chain_processor.go index 1feb92124..ad2d56c6c 100644 --- a/relayer/chains/cosmos/cosmos_chain_processor.go +++ b/relayer/chains/cosmos/cosmos_chain_processor.go @@ -12,6 +12,7 @@ import ( clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" conntypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" "github.com/cosmos/relayer/v2/relayer/processor" "github.com/cosmos/relayer/v2/relayer/provider" @@ -70,6 +71,7 @@ func NewCosmosChainProcessor(log *zap.Logger, provider *CosmosProvider, metrics const ( queryTimeout = 5 * time.Second + queryStateTimeout = 60 * time.Second blockResultsQueryTimeout = 2 * time.Minute latestHeightQueryRetryDelay = 1 * time.Second latestHeightQueryRetries = 5 @@ -166,15 +168,29 @@ func (ccp *CosmosChainProcessor) clientState(ctx context.Context, clientID strin if state, ok := ccp.latestClientState[clientID]; ok && state.TrustingPeriod > 0 { return state, nil } - cs, err := ccp.chainProvider.queryTMClientState(ctx, int64(ccp.latestBlock.Height), clientID) - if err != nil { - return provider.ClientState{}, err - } - clientState := provider.ClientState{ - ClientID: clientID, - ConsensusHeight: cs.GetLatestHeight().(clienttypes.Height), - TrustingPeriod: cs.TrustingPeriod, + + var clientState provider.ClientState + if clientID == ibcexported.LocalhostClientID { + cs, err := ccp.chainProvider.queryLocalhostClientState(ctx, int64(ccp.latestBlock.Height)) + if err != nil { + return provider.ClientState{}, err + } + clientState = provider.ClientState{ + ClientID: clientID, + ConsensusHeight: cs.GetLatestHeight().(clienttypes.Height), + } + } else { + cs, err := ccp.chainProvider.queryTMClientState(ctx, int64(ccp.latestBlock.Height), clientID) + if err != nil { + return provider.ClientState{}, err + } + clientState = provider.ClientState{ + ClientID: clientID, + ConsensusHeight: cs.GetLatestHeight().(clienttypes.Height), + TrustingPeriod: cs.TrustingPeriod, + } } + ccp.latestClientState[clientID] = clientState return clientState, nil } @@ -264,7 +280,7 @@ func (ccp *CosmosChainProcessor) Run(ctx context.Context, initialBlockHistory ui // initializeConnectionState will bootstrap the connectionStateCache with the open connection state. func (ccp *CosmosChainProcessor) initializeConnectionState(ctx context.Context) error { - ctx, cancel := context.WithTimeout(ctx, queryTimeout) + ctx, cancel := context.WithTimeout(ctx, queryStateTimeout) defer cancel() connections, err := ccp.chainProvider.QueryConnections(ctx) if err != nil { @@ -284,7 +300,7 @@ func (ccp *CosmosChainProcessor) initializeConnectionState(ctx context.Context) // initializeChannelState will bootstrap the channelStateCache with the open channel state. func (ccp *CosmosChainProcessor) initializeChannelState(ctx context.Context) error { - ctx, cancel := context.WithTimeout(ctx, queryTimeout) + ctx, cancel := context.WithTimeout(ctx, queryStateTimeout) defer cancel() channels, err := ccp.chainProvider.QueryChannels(ctx) if err != nil { @@ -300,12 +316,13 @@ func (ccp *CosmosChainProcessor) initializeChannelState(ctx context.Context) err continue } ccp.channelConnections[ch.ChannelId] = ch.ConnectionHops[0] - ccp.channelStateCache[processor.ChannelKey{ + k := processor.ChannelKey{ ChannelID: ch.ChannelId, PortID: ch.PortId, CounterpartyChannelID: ch.Counterparty.ChannelId, CounterpartyPortID: ch.Counterparty.PortId, - }] = ch.State == chantypes.OPEN + } + ccp.channelStateCache.SetOpen(k, ch.State == chantypes.OPEN, ch.Ordering) } return nil } @@ -371,17 +388,27 @@ func (ccp *CosmosChainProcessor) queryCycle(ctx context.Context, persistence *qu queryCtx, cancelQueryCtx := context.WithTimeout(ctx, blockResultsQueryTimeout) defer cancelQueryCtx() blockRes, err = ccp.chainProvider.RPCClient.BlockResults(queryCtx, &i) + if err != nil && ccp.metrics != nil { + ccp.metrics.IncBlockQueryFailure(chainID, "RPC Client") + } return err }) eg.Go(func() (err error) { queryCtx, cancelQueryCtx := context.WithTimeout(ctx, queryTimeout) defer cancelQueryCtx() ibcHeader, err = ccp.chainProvider.QueryIBCHeader(queryCtx, i) + if err != nil && ccp.metrics != nil { + ccp.metrics.IncBlockQueryFailure(chainID, "IBC Header") + } return err }) if err := eg.Wait(); err != nil { - ccp.log.Warn("Error querying block data", zap.Error(err)) + ccp.log.Debug( + "Error querying block data", + zap.Int64("height", i), + zap.Error(err), + ) persistence.retriesAtLatestQueriedBlock++ if persistence.retriesAtLatestQueriedBlock >= blockMaxRetries { @@ -394,6 +421,13 @@ func (ccp *CosmosChainProcessor) queryCycle(ctx context.Context, persistence *qu break } + ccp.log.Debug( + "Queried block", + zap.Int64("height", i), + zap.Int64("latest", persistence.latestHeight), + zap.Int64("delta", persistence.latestHeight-i), + ) + persistence.retriesAtLatestQueriedBlock = 0 latestHeader = ibcHeader.(provider.TendermintIBCHeader) @@ -505,22 +539,25 @@ func (ccp *CosmosChainProcessor) CurrentRelayerBalance(ctx context.Context) { } // Get the balance for the chain provider's key - relayerWalletBalance, err := ccp.chainProvider.QueryBalance(ctx, ccp.chainProvider.Key()) + relayerWalletBalances, err := ccp.chainProvider.QueryBalance(ctx, ccp.chainProvider.Key()) if err != nil { ccp.log.Error( "Failed to query relayer balance", zap.Error(err), ) } - + address, err := ccp.chainProvider.Address() + if err != nil { + ccp.log.Error( + "Failed to get relayer bech32 wallet addresss", + zap.Error(err), + ) + } // Print the relevant gas prices for _, gasDenom := range *ccp.parsedGasPrices { - for _, balance := range relayerWalletBalance { - if balance.Denom == gasDenom.Denom { - // Convert to a big float to get a float64 for metrics - f, _ := big.NewFloat(0.0).SetInt(balance.Amount.BigInt()).Float64() - ccp.metrics.SetWalletBalance(ccp.chainProvider.ChainId(), ccp.chainProvider.Key(), balance.Denom, f) - } - } + bal := relayerWalletBalances.AmountOf(gasDenom.Denom) + // Convert to a big float to get a float64 for metrics + f, _ := big.NewFloat(0.0).SetInt(bal.BigInt()).Float64() + ccp.metrics.SetWalletBalance(ccp.chainProvider.ChainId(), ccp.chainProvider.PCfg.GasPrices, ccp.chainProvider.Key(), address, gasDenom.Denom, f) } } diff --git a/relayer/chains/cosmos/feegrant.go b/relayer/chains/cosmos/feegrant.go new file mode 100644 index 000000000..e2ffbab45 --- /dev/null +++ b/relayer/chains/cosmos/feegrant.go @@ -0,0 +1,516 @@ +package cosmos + +import ( + "context" + "errors" + "fmt" + "regexp" + "strconv" + "time" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/crypto/hd" + "github.com/cosmos/cosmos-sdk/types" + sdk "github.com/cosmos/cosmos-sdk/types" + txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/cosmos/cosmos-sdk/x/feegrant" +) + +// Searches for valid, existing BasicAllowance grants for the ChainClient's configured Feegranter. +// Expired grants are ignored. Other grant types are ignored. +func (cc *CosmosProvider) GetValidBasicGrants() ([]*feegrant.Grant, error) { + validGrants := []*feegrant.Grant{} + + if cc.PCfg.FeeGrants == nil { + return nil, errors.New("no feegrant configuration for chainclient") + } + + keyNameOrAddress := cc.PCfg.FeeGrants.GranterKey + address, err := cc.AccountFromKeyOrAddress(keyNameOrAddress) + if err != nil { + return nil, err + } + + encodedAddr := cc.MustEncodeAccAddr(address) + grants, err := cc.QueryFeegrantsByGranter(encodedAddr, nil) + if err != nil { + return nil, err + } + + for _, grant := range grants { + switch grant.Allowance.TypeUrl { + case "/cosmos.feegrant.v1beta1.BasicAllowance": + //var feegrantAllowance feegrant.BasicAllowance + var feegrantAllowance feegrant.FeeAllowanceI + e := cc.Cdc.InterfaceRegistry.UnpackAny(grant.Allowance, &feegrantAllowance) + if e != nil { + return nil, e + } + //feegrantAllowance := grant.Allowance.GetCachedValue().(*feegrant.BasicAllowance) + if isValidGrant(feegrantAllowance.(*feegrant.BasicAllowance)) { + validGrants = append(validGrants, grant) + } + default: + fmt.Printf("Ignoring grant type %s for granter %s and grantee %s\n", grant.Allowance.TypeUrl, grant.Granter, grant.Grantee) + } + } + + return validGrants, nil +} + +// Searches for valid, existing BasicAllowance grants for the given grantee & ChainClient's configured granter. +// Expired grants are ignored. Other grant types are ignored. +func (cc *CosmosProvider) GetGranteeValidBasicGrants(granteeKey string) ([]*feegrant.Grant, error) { + validGrants := []*feegrant.Grant{} + + if cc.PCfg.FeeGrants == nil { + return nil, errors.New("no feegrant configuration for chainclient") + } + + granterAddr, err := cc.AccountFromKeyOrAddress(cc.PCfg.FeeGrants.GranterKey) + if err != nil { + return nil, err + } + granterEncodedAddr := cc.MustEncodeAccAddr(granterAddr) + + address, err := cc.AccountFromKeyOrAddress(granteeKey) + if err != nil { + return nil, err + } + + encodedAddr := cc.MustEncodeAccAddr(address) + grants, err := cc.QueryFeegrantsByGrantee(encodedAddr, nil) + if err != nil { + return nil, err + } + + for _, grant := range grants { + if grant.Granter == granterEncodedAddr { + switch grant.Allowance.TypeUrl { + case "/cosmos.feegrant.v1beta1.BasicAllowance": + var feegrantAllowance feegrant.FeeAllowanceI + e := cc.Cdc.InterfaceRegistry.UnpackAny(grant.Allowance, &feegrantAllowance) + if e != nil { + return nil, e + } + if isValidGrant(feegrantAllowance.(*feegrant.BasicAllowance)) { + validGrants = append(validGrants, grant) + } + default: + fmt.Printf("Ignoring grant type %s for granter %s and grantee %s\n", grant.Allowance.TypeUrl, grant.Granter, grant.Grantee) + } + } + } + + return validGrants, nil +} + +// True if the grant has not expired and all coins have positive balances, false otherwise +// Note: technically, any single coin with a positive balance makes the grant usable +func isValidGrant(a *feegrant.BasicAllowance) bool { + //grant expired due to time limit + if a.Expiration != nil && time.Now().After(*a.Expiration) { + return false + } + + //feegrant without a spending limit specified allows unlimited fees to be spent + valid := true + + //spending limit is specified, check if there are funds remaining on every coin + if a.SpendLimit != nil { + for _, coin := range a.SpendLimit { + if coin.Amount.LTE(types.ZeroInt()) { + valid = false + } + } + } + + return valid +} + +func (cc *CosmosProvider) ConfigureFeegrants(numGrantees int, granterKey string) error { + cc.PCfg.FeeGrants = &FeeGrantConfiguration{ + GranteesWanted: numGrantees, + GranterKey: granterKey, + ManagedGrantees: []string{}, + } + + return cc.PCfg.FeeGrants.AddGranteeKeys(cc) +} + +func (cc *CosmosProvider) ConfigureWithGrantees(grantees []string, granterKey string) error { + if len(grantees) == 0 { + return errors.New("list of grantee names cannot be empty") + } + + cc.PCfg.FeeGrants = &FeeGrantConfiguration{ + GranteesWanted: len(grantees), + GranterKey: granterKey, + ManagedGrantees: grantees, + } + + for _, newGrantee := range grantees { + if !cc.KeyExists(newGrantee) { + //Add another key to the chain client for the grantee + _, err := cc.AddKey(newGrantee, sdk.CoinType, string(hd.Secp256k1Type)) + if err != nil { + return err + } + } + } + + return nil +} + +func (fg *FeeGrantConfiguration) AddGranteeKeys(cc *CosmosProvider) error { + for i := len(fg.ManagedGrantees); i < fg.GranteesWanted; i++ { + newGranteeIdx := strconv.Itoa(len(fg.ManagedGrantees) + 1) + newGrantee := "grantee" + newGranteeIdx + + //Add another key to the chain client for the grantee + _, err := cc.AddKey(newGrantee, sdk.CoinType, string(hd.Secp256k1Type)) + if err != nil { + return err + } + + fg.ManagedGrantees = append(fg.ManagedGrantees, newGrantee) + } + + return nil +} + +// Get the feegrant params to use for the next TX. If feegrants are not configured for the chain client, the default key will be used for TX signing. +// Otherwise, a configured feegrantee will be chosen for TX signing in round-robin fashion. +func (cc *CosmosProvider) GetTxFeeGrant() (txSignerKey string, feeGranterKey string) { + //By default, we should sign TXs with the ChainClient's default key + txSignerKey = cc.PCfg.Key + + if cc.PCfg.FeeGrants == nil { + fmt.Printf("cc.Config.FeeGrants == nil\n") + return + } + + // Use the ChainClient's configured Feegranter key for the next TX. + feeGranterKey = cc.PCfg.FeeGrants.GranterKey + + // The ChainClient Feegrant configuration has never been verified on chain. + // Don't use Feegrants as it could cause the TX to fail on chain. + if feeGranterKey == "" || cc.PCfg.FeeGrants.BlockHeightVerified <= 0 { + fmt.Printf("cc.Config.FeeGrants.BlockHeightVerified <= 0\n") + feeGranterKey = "" + return + } + + //Pick the next managed grantee in the list as the TX signer + lastGranteeIdx := cc.PCfg.FeeGrants.GranteeLastSignerIndex + + if lastGranteeIdx >= 0 && lastGranteeIdx <= len(cc.PCfg.FeeGrants.ManagedGrantees)-1 { + txSignerKey = cc.PCfg.FeeGrants.ManagedGrantees[lastGranteeIdx] + cc.PCfg.FeeGrants.GranteeLastSignerIndex = cc.PCfg.FeeGrants.GranteeLastSignerIndex + 1 + + //Restart the round robin at 0 if we reached the end of the list of grantees + if cc.PCfg.FeeGrants.GranteeLastSignerIndex == len(cc.PCfg.FeeGrants.ManagedGrantees) { + cc.PCfg.FeeGrants.GranteeLastSignerIndex = 0 + } + } + + return +} + +// Ensure all Basic Allowance grants are in place for the given ChainClient. +// This will query (RPC) for existing grants and create new grants if they don't exist. +func (cc *CosmosProvider) EnsureBasicGrants(ctx context.Context, memo string) (*sdk.TxResponse, error) { + if cc.PCfg.FeeGrants == nil { + return nil, errors.New("ChainClient must be a FeeGranter to establish grants") + } else if len(cc.PCfg.FeeGrants.ManagedGrantees) == 0 { + return nil, errors.New("ChainClient is a FeeGranter, but is not managing any Grantees") + } + + granterKey := cc.PCfg.FeeGrants.GranterKey + if granterKey == "" { + granterKey = cc.PCfg.Key + } + + granterAcc, err := cc.GetKeyAddressForKey(granterKey) + if err != nil { + fmt.Printf("Retrieving key '%s': ChainClient FeeGranter misconfiguration: %s", granterKey, err.Error()) + return nil, err + } + + granterAddr, granterAddrErr := cc.EncodeBech32AccAddr(granterAcc) + if granterAddrErr != nil { + return nil, granterAddrErr + } + + validGrants, err := cc.GetValidBasicGrants() + failedLookupGrantsByGranter := err != nil + + msgs := []sdk.Msg{} + numGrantees := len(cc.PCfg.FeeGrants.ManagedGrantees) + grantsNeeded := 0 + + for _, grantee := range cc.PCfg.FeeGrants.ManagedGrantees { + + //Searching for all grants with the given granter failed, so we will search by the grantee. + //Reason this lookup sometimes fails is because the 'Search by granter' request is in SDK v0.46+ + if failedLookupGrantsByGranter { + validGrants, err = cc.GetGranteeValidBasicGrants(grantee) + if err != nil { + return nil, err + } + } + + granteeAcc, err := cc.GetKeyAddressForKey(grantee) + if err != nil { + fmt.Printf("Misconfiguration for grantee key %s. Error: %s\n", grantee, err.Error()) + return nil, err + } + + granteeAddr, granteeAddrErr := cc.EncodeBech32AccAddr(granteeAcc) + if granteeAddrErr != nil { + return nil, granteeAddrErr + } + + hasGrant := false + for _, basicGrant := range validGrants { + if basicGrant.Grantee == granteeAddr { + fmt.Printf("Valid grant found for granter %s, grantee %s\n", basicGrant.Granter, basicGrant.Grantee) + hasGrant = true + } + } + + if !hasGrant { + grantsNeeded += 1 + fmt.Printf("Grant will be created on chain for granter %s and grantee %s\n", granterAddr, granteeAddr) + grantMsg, err := cc.getMsgGrantBasicAllowance(granterAcc, granteeAcc) + if err != nil { + return nil, err + } + msgs = append(msgs, grantMsg) + } + } + + if len(msgs) > 0 { + cliCtx := client.Context{}.WithClient(cc.RPCClient). + WithInterfaceRegistry(cc.Cdc.InterfaceRegistry). + WithChainID(cc.PCfg.ChainID). + WithCodec(cc.Cdc.Marshaler). + WithFromAddress(granterAcc) + + granterExists := cc.EnsureExists(cliCtx, granterAcc) == nil + + //Feegranter exists on chain + if granterExists { + txResp, err := cc.SubmitTxAwaitResponse(ctx, msgs, memo, 0, granterKey) + if err != nil { + fmt.Printf("Error: SubmitTxAwaitResponse: %s", err.Error()) + return nil, err + } else if txResp != nil && txResp.TxResponse != nil && txResp.TxResponse.Code != 0 { + fmt.Printf("Submitting grants for granter %s failed. Code: %d, TX hash: %s\n", granterKey, txResp.TxResponse.Code, txResp.TxResponse.TxHash) + return nil, fmt.Errorf("could not configure feegrant for granter %s", granterKey) + } + + fmt.Printf("TX succeeded, %d new grants configured, %d grants already in place. TX hash: %s\n", grantsNeeded, numGrantees-grantsNeeded, txResp.TxResponse.TxHash) + return txResp.TxResponse, err + } else { + return nil, fmt.Errorf("granter %s does not exist on chain", granterKey) + } + } else { + fmt.Printf("All grantees (%d total) already had valid feegrants. Feegrant configuration verified.\n", numGrantees) + } + + return nil, nil +} + +func getGasTokenDenom(gasPrices string) (string, error) { + r := regexp.MustCompile(`(?P[0-9.]*)(?P.*)`) + submatches := r.FindStringSubmatch(gasPrices) + if len(submatches) != 3 { + return "", errors.New("could not find fee denom") + } + + return submatches[2], nil +} + +// GrantBasicAllowance Send a feegrant with the basic allowance type. +// This function does not check for existing feegrant authorizations. +// TODO: check for existing authorizations prior to attempting new one. +func (cc *CosmosProvider) GrantAllGranteesBasicAllowance(ctx context.Context, gas uint64) error { + if cc.PCfg.FeeGrants == nil { + return errors.New("ChainClient must be a FeeGranter to establish grants") + } else if len(cc.PCfg.FeeGrants.ManagedGrantees) == 0 { + return errors.New("ChainClient is a FeeGranter, but is not managing any Grantees") + } + + granterKey := cc.PCfg.FeeGrants.GranterKey + if granterKey == "" { + granterKey = cc.PCfg.Key + } + granterAddr, err := cc.GetKeyAddressForKey(granterKey) + if err != nil { + fmt.Printf("ChainClient FeeGranter misconfiguration: %s", err.Error()) + return err + } + + for _, grantee := range cc.PCfg.FeeGrants.ManagedGrantees { + granteeAddr, err := cc.GetKeyAddressForKey(grantee) + + if err != nil { + fmt.Printf("Misconfiguration for grantee %s. Error: %s\n", grantee, err.Error()) + return err + } + + grantResp, err := cc.GrantBasicAllowance(ctx, granterAddr, granterKey, granteeAddr, gas) + if err != nil { + return err + } else if grantResp != nil && grantResp.TxResponse != nil && grantResp.TxResponse.Code != 0 { + fmt.Printf("grantee %s and granter %s. Code: %d\n", granterAddr.String(), granteeAddr.String(), grantResp.TxResponse.Code) + return fmt.Errorf("could not configure feegrant for granter %s and grantee %s", granterAddr.String(), granteeAddr.String()) + } + } + return nil +} + +// GrantBasicAllowance Send a feegrant with the basic allowance type. +// This function does not check for existing feegrant authorizations. +// TODO: check for existing authorizations prior to attempting new one. +func (cc *CosmosProvider) GrantAllGranteesBasicAllowanceWithExpiration(ctx context.Context, gas uint64, expiration time.Time) error { + if cc.PCfg.FeeGrants == nil { + return errors.New("ChainClient must be a FeeGranter to establish grants") + } else if len(cc.PCfg.FeeGrants.ManagedGrantees) == 0 { + return errors.New("ChainClient is a FeeGranter, but is not managing any Grantees") + } + + granterKey := cc.PCfg.FeeGrants.GranterKey + if granterKey == "" { + granterKey = cc.PCfg.Key + } + + granterAddr, err := cc.GetKeyAddressForKey(granterKey) + if err != nil { + fmt.Printf("ChainClient FeeGranter misconfiguration: %s", err.Error()) + return err + } + + for _, grantee := range cc.PCfg.FeeGrants.ManagedGrantees { + granteeAddr, err := cc.GetKeyAddressForKey(grantee) + + if err != nil { + fmt.Printf("Misconfiguration for grantee %s. Error: %s\n", grantee, err.Error()) + return err + } + + grantResp, err := cc.GrantBasicAllowanceWithExpiration(ctx, granterAddr, granterKey, granteeAddr, gas, expiration) + if err != nil { + return err + } else if grantResp != nil && grantResp.TxResponse != nil && grantResp.TxResponse.Code != 0 { + fmt.Printf("grantee %s and granter %s. Code: %d\n", granterAddr.String(), granteeAddr.String(), grantResp.TxResponse.Code) + return fmt.Errorf("could not configure feegrant for granter %s and grantee %s", granterAddr.String(), granteeAddr.String()) + } + } + return nil +} + +func (cc *CosmosProvider) getMsgGrantBasicAllowanceWithExpiration(granter sdk.AccAddress, grantee sdk.AccAddress, expiration time.Time) (sdk.Msg, error) { + //thirtyMin := time.Now().Add(30 * time.Minute) + feeGrantBasic := &feegrant.BasicAllowance{ + Expiration: &expiration, + } + msgGrantAllowance, err := feegrant.NewMsgGrantAllowance(feeGrantBasic, granter, grantee) + if err != nil { + fmt.Printf("Error: GrantBasicAllowance.NewMsgGrantAllowance: %s", err.Error()) + return nil, err + } + + //Due to the way Lens configures the SDK, addresses will have the 'cosmos' prefix which + //doesn't necessarily match the chain prefix of the ChainClient config. So calling the internal + //'NewMsgGrantAllowance' function will return the *incorrect* 'cosmos' prefixed bech32 address. + + //Update the Grant to ensure the correct chain-specific granter is set + granterAddr, granterAddrErr := cc.EncodeBech32AccAddr(granter) + if granterAddrErr != nil { + fmt.Printf("EncodeBech32AccAddr: %s", granterAddrErr.Error()) + return nil, granterAddrErr + } + + //Update the Grant to ensure the correct chain-specific grantee is set + granteeAddr, granteeAddrErr := cc.EncodeBech32AccAddr(grantee) + if granteeAddrErr != nil { + fmt.Printf("EncodeBech32AccAddr: %s", granteeAddrErr.Error()) + return nil, granteeAddrErr + } + + //override the 'cosmos' prefixed bech32 addresses with the correct chain prefix + msgGrantAllowance.Grantee = granteeAddr + msgGrantAllowance.Granter = granterAddr + + return msgGrantAllowance, nil +} + +func (cc *CosmosProvider) getMsgGrantBasicAllowance(granter sdk.AccAddress, grantee sdk.AccAddress) (sdk.Msg, error) { + //thirtyMin := time.Now().Add(30 * time.Minute) + feeGrantBasic := &feegrant.BasicAllowance{ + //Expiration: &thirtyMin, + } + msgGrantAllowance, err := feegrant.NewMsgGrantAllowance(feeGrantBasic, granter, grantee) + if err != nil { + fmt.Printf("Error: GrantBasicAllowance.NewMsgGrantAllowance: %s", err.Error()) + return nil, err + } + + //Due to the way Lens configures the SDK, addresses will have the 'cosmos' prefix which + //doesn't necessarily match the chain prefix of the ChainClient config. So calling the internal + //'NewMsgGrantAllowance' function will return the *incorrect* 'cosmos' prefixed bech32 address. + + //Update the Grant to ensure the correct chain-specific granter is set + granterAddr, granterAddrErr := cc.EncodeBech32AccAddr(granter) + if granterAddrErr != nil { + fmt.Printf("EncodeBech32AccAddr: %s", granterAddrErr.Error()) + return nil, granterAddrErr + } + + //Update the Grant to ensure the correct chain-specific grantee is set + granteeAddr, granteeAddrErr := cc.EncodeBech32AccAddr(grantee) + if granteeAddrErr != nil { + fmt.Printf("EncodeBech32AccAddr: %s", granteeAddrErr.Error()) + return nil, granteeAddrErr + } + + //override the 'cosmos' prefixed bech32 addresses with the correct chain prefix + msgGrantAllowance.Grantee = granteeAddr + msgGrantAllowance.Granter = granterAddr + + return msgGrantAllowance, nil +} + +func (cc *CosmosProvider) GrantBasicAllowance(ctx context.Context, granter sdk.AccAddress, granterKeyName string, grantee sdk.AccAddress, gas uint64) (*txtypes.GetTxResponse, error) { + msgGrantAllowance, err := cc.getMsgGrantBasicAllowance(granter, grantee) + if err != nil { + return nil, err + } + + msgs := []sdk.Msg{msgGrantAllowance} + txResp, err := cc.SubmitTxAwaitResponse(ctx, msgs, "", gas, granterKeyName) + if err != nil { + fmt.Printf("Error: GrantBasicAllowance.SubmitTxAwaitResponse: %s", err.Error()) + return nil, err + } + + return txResp, nil +} + +func (cc *CosmosProvider) GrantBasicAllowanceWithExpiration(ctx context.Context, granter sdk.AccAddress, granterKeyName string, grantee sdk.AccAddress, gas uint64, expiration time.Time) (*txtypes.GetTxResponse, error) { + msgGrantAllowance, err := cc.getMsgGrantBasicAllowanceWithExpiration(granter, grantee, expiration) + if err != nil { + return nil, err + } + + msgs := []sdk.Msg{msgGrantAllowance} + txResp, err := cc.SubmitTxAwaitResponse(ctx, msgs, "", gas, granterKeyName) + if err != nil { + fmt.Printf("Error: GrantBasicAllowance.SubmitTxAwaitResponse: %s", err.Error()) + return nil, err + } + + return txResp, nil +} diff --git a/relayer/chains/cosmos/grpc_query.go b/relayer/chains/cosmos/grpc_query.go index dec0c84a8..33f274e8d 100644 --- a/relayer/chains/cosmos/grpc_query.go +++ b/relayer/chains/cosmos/grpc_query.go @@ -177,7 +177,7 @@ func (cc *CosmosProvider) TxServiceBroadcast(ctx context.Context, req *tx.Broadc wg.Add(1) - if err := cc.broadcastTx(ctx, req.TxBytes, nil, nil, ctx, blockTimeout, callback); err != nil { + if err := cc.broadcastTx(ctx, req.TxBytes, nil, nil, ctx, blockTimeout, []func(*provider.RelayerTxResponse, error){callback}); err != nil { return nil, err } diff --git a/relayer/chains/cosmos/keys.go b/relayer/chains/cosmos/keys.go index 0ccdd0938..ce6c2a2ef 100644 --- a/relayer/chains/cosmos/keys.go +++ b/relayer/chains/cosmos/keys.go @@ -4,6 +4,8 @@ import ( "errors" "os" + "github.com/cosmos/relayer/v2/relayer/provider" + ckeys "github.com/cosmos/cosmos-sdk/client/keys" "github.com/cosmos/cosmos-sdk/crypto/hd" "github.com/cosmos/cosmos-sdk/crypto/keyring" @@ -12,7 +14,6 @@ import ( "github.com/cosmos/relayer/v2/relayer/chains/cosmos/keys/sr25519" "github.com/cosmos/relayer/v2/relayer/codecs/ethermint" "github.com/cosmos/relayer/v2/relayer/codecs/injective" - "github.com/cosmos/relayer/v2/relayer/provider" ) const ethereumCoinType = uint32(60) @@ -69,6 +70,13 @@ func (cc *CosmosProvider) AddKey(name string, coinType uint32, signingAlgorithm return ko, nil } +// Updates config.yaml chain with the specified key. +// It fails config is already using the same key or if the key does not exist +func (cc *CosmosProvider) UseKey(key string) error { + cc.PCfg.Key = key + return nil +} + // RestoreKey converts a mnemonic to a private key and BIP-39 HD Path and persists it to the keystore. // It fails if there is an existing key with the same address. func (cc *CosmosProvider) RestoreKey(name, mnemonic string, coinType uint32, signingAlgorithm string) (address string, err error) { @@ -192,8 +200,8 @@ func (cc *CosmosProvider) ExportPrivKeyArmor(keyName string) (armor string, err } // GetKeyAddress returns the account address representation for the currently configured key. -func (cc *CosmosProvider) GetKeyAddress() (sdk.AccAddress, error) { - info, err := cc.Keybase.Key(cc.PCfg.Key) +func (cc *CosmosProvider) GetKeyAddress(key string) (sdk.AccAddress, error) { + info, err := cc.Keybase.Key(key) if err != nil { return nil, err } @@ -219,3 +227,34 @@ func CreateMnemonic() (string, error) { func (cc *CosmosProvider) EncodeBech32AccAddr(addr sdk.AccAddress) (string, error) { return sdk.Bech32ifyAddressBytes(cc.PCfg.AccountPrefix, addr) } + +func (cc *CosmosProvider) DecodeBech32AccAddr(addr string) (sdk.AccAddress, error) { + return sdk.GetFromBech32(addr, cc.PCfg.AccountPrefix) +} + +func (cc *CosmosProvider) GetKeyAddressForKey(key string) (sdk.AccAddress, error) { + info, err := cc.Keybase.Key(key) + if err != nil { + return nil, err + } + return info.GetAddress() +} + +func (cc *CosmosProvider) KeyFromKeyOrAddress(keyOrAddress string) (string, error) { + switch { + case keyOrAddress == "": + return cc.PCfg.Key, nil + case cc.KeyExists(keyOrAddress): + return keyOrAddress, nil + default: + acc, err := cc.DecodeBech32AccAddr(keyOrAddress) + if err != nil { + return "", err + } + kr, err := cc.Keybase.KeyByAddress(acc) + if err != nil { + return "", err + } + return kr.Name, nil + } +} diff --git a/relayer/chains/cosmos/keys/sr25519/keys.pb.go b/relayer/chains/cosmos/keys/sr25519/keys.pb.go index 49a3599b7..9d6762141 100644 --- a/relayer/chains/cosmos/keys/sr25519/keys.pb.go +++ b/relayer/chains/cosmos/keys/sr25519/keys.pb.go @@ -8,8 +8,8 @@ package sr25519 import ( fmt "fmt" github_com_cometbft_cometbft_crypto_sr25519 "github.com/cometbft/cometbft/crypto/sr25519" + _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" - _ "github.com/gogo/protobuf/gogoproto" io "io" math "math" math_bits "math/bits" diff --git a/relayer/chains/cosmos/log.go b/relayer/chains/cosmos/log.go index 75e43a982..22342e549 100644 --- a/relayer/chains/cosmos/log.go +++ b/relayer/chains/cosmos/log.go @@ -1,13 +1,17 @@ package cosmos import ( + "errors" "reflect" "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" typestx "github.com/cosmos/cosmos-sdk/types/tx" + feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" "github.com/cosmos/relayer/v2/relayer/provider" "go.uber.org/zap" "go.uber.org/zap/zapcore" @@ -52,6 +56,12 @@ func (cc *CosmosProvider) LogFailedTx(res *provider.RelayerTxResponse, err error fields = append(fields, msgTypesField(msgs)) if err != nil { + + if errors.Is(err, chantypes.ErrRedundantTx) { + cc.log.Debug("Redundant message(s)", fields...) + return + } + // Make a copy since we may continue to the warning errorFields := append(fields, zap.Error(err)) cc.log.Error( @@ -154,6 +164,19 @@ func getFeePayer(tx *typestx.Tx) string { case *clienttypes.MsgUpdateClient: // Same failure mode as MsgCreateClient. return firstMsg.Signer + case *clienttypes.MsgUpgradeClient: + return firstMsg.Signer + case *clienttypes.MsgSubmitMisbehaviour: + // Same failure mode as MsgCreateClient. + return firstMsg.Signer + case *feetypes.MsgRegisterPayee: + return firstMsg.Relayer + case *feetypes.MsgRegisterCounterpartyPayee: + return firstMsg.Relayer + case *feetypes.MsgPayPacketFee: + return firstMsg.Signer + case *feetypes.MsgPayPacketFeeAsync: + return firstMsg.PacketFee.RefundAddress default: return firstMsg.GetSigners()[0].String() } diff --git a/relayer/chains/cosmos/message_handlers.go b/relayer/chains/cosmos/message_handlers.go index 1e6a811c0..029ddd652 100644 --- a/relayer/chains/cosmos/message_handlers.go +++ b/relayer/chains/cosmos/message_handlers.go @@ -40,7 +40,7 @@ func (ccp *CosmosChainProcessor) handlePacketMessage(eventType string, pi provid } if eventType == chantypes.EventTypeTimeoutPacket && pi.ChannelOrder == chantypes.ORDERED.String() { - ccp.channelStateCache[k] = false + ccp.channelStateCache.SetOpen(k, false, chantypes.ORDERED) } if !c.PacketFlow.ShouldRetainSequence(ccp.pathProcessors, k, ccp.chainProvider.ChainId(), eventType, pi.Sequence) { @@ -78,19 +78,19 @@ func (ccp *CosmosChainProcessor) handleChannelMessage(eventType string, ci provi } } if !found { - ccp.channelStateCache[channelKey] = false + ccp.channelStateCache.SetOpen(channelKey, false, ci.Order) } } else { switch eventType { case chantypes.EventTypeChannelOpenTry: - ccp.channelStateCache[channelKey] = false + ccp.channelStateCache.SetOpen(channelKey, false, ci.Order) case chantypes.EventTypeChannelOpenAck, chantypes.EventTypeChannelOpenConfirm: - ccp.channelStateCache[channelKey] = true + ccp.channelStateCache.SetOpen(channelKey, true, ci.Order) ccp.logChannelOpenMessage(eventType, ci) case chantypes.EventTypeChannelCloseConfirm: for k := range ccp.channelStateCache { if k.PortID == ci.PortID && k.ChannelID == ci.ChannelID { - ccp.channelStateCache[k] = false + ccp.channelStateCache.SetOpen(channelKey, false, ci.Order) break } } diff --git a/relayer/chains/cosmos/message_handlers_test.go b/relayer/chains/cosmos/message_handlers_test.go index 10ebc9771..8038b3e5e 100644 --- a/relayer/chains/cosmos/message_handlers_test.go +++ b/relayer/chains/cosmos/message_handlers_test.go @@ -128,7 +128,7 @@ func TestChannelStateCache(t *testing.T) { // The channel state is not open, but the entry should exist in the channelStateCache. // MsgInitKey returns the ChannelKey with an empty counterparty channel ID. - require.False(t, ccp.channelStateCache[k.MsgInitKey()]) + require.False(t, ccp.channelStateCache[k.MsgInitKey()].Open) // Observe MsgChannelOpenAck, which does have counterparty channel ID. ccp.handleChannelMessage(chantypes.EventTypeChannelOpenAck, msgOpenAck, c) @@ -139,7 +139,7 @@ func TestChannelStateCache(t *testing.T) { // The fully populated ChannelKey should now be the only entry for this channel. // The channel now open. - require.True(t, ccp.channelStateCache[k]) + require.True(t, ccp.channelStateCache[k].Open) }) t.Run("handshake already occurred", func(t *testing.T) { @@ -156,7 +156,7 @@ func TestChannelStateCache(t *testing.T) { // Initialize channelStateCache with populated channel ID and counterparty channel ID. // This emulates initializeChannelState after a recent channel handshake has completed - ccp.channelStateCache[k] = true + ccp.channelStateCache.SetOpen(k, true, chantypes.NONE) // Observe MsgChannelOpenInit, which does not have counterparty channel ID. ccp.handleChannelMessage(chantypes.EventTypeChannelOpenInit, msgOpenInit, c) @@ -166,7 +166,7 @@ func TestChannelStateCache(t *testing.T) { // The fully populated ChannelKey should still be the only entry for this channel. // The channel is still marked open since it was open during initializeChannelState. - require.True(t, ccp.channelStateCache[k]) + require.True(t, ccp.channelStateCache[k].Open) // Observe MsgChannelOpenAck, which does have counterparty channel ID. ccp.handleChannelMessage(chantypes.EventTypeChannelOpenAck, msgOpenAck, c) @@ -175,6 +175,6 @@ func TestChannelStateCache(t *testing.T) { require.Len(t, ccp.channelStateCache, 1) // The fully populated ChannelKey should still be the only entry for this channel. - require.True(t, ccp.channelStateCache[k]) + require.True(t, ccp.channelStateCache[k].Open) }) } diff --git a/relayer/chains/cosmos/module/app_module.go b/relayer/chains/cosmos/module/app_module.go index 94119092a..39e6ea36b 100644 --- a/relayer/chains/cosmos/module/app_module.go +++ b/relayer/chains/cosmos/module/app_module.go @@ -5,6 +5,7 @@ import ( "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine" + localhost "github.com/cosmos/ibc-go/v7/modules/light-clients/09-localhost" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/spf13/cobra" @@ -26,7 +27,7 @@ func (AppModuleBasic) RegisterLegacyAminoCodec(*codec.LegacyAmino) {} func (AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry) { tmlightclient.RegisterInterfaces(registry) solomachine.RegisterInterfaces(registry) - // TODO: add the localhost light client when ibc-go v7.1.0 is available + localhost.RegisterInterfaces(registry) } // RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for the ibc module. diff --git a/relayer/chains/cosmos/msg.go b/relayer/chains/cosmos/msg.go index 85621e95c..ddd5a770d 100644 --- a/relayer/chains/cosmos/msg.go +++ b/relayer/chains/cosmos/msg.go @@ -10,14 +10,16 @@ import ( "go.uber.org/zap/zapcore" ) - type CosmosMessage struct { - Msg sdk.Msg + Msg sdk.Msg + SetSigner func(string) //callback to update the Msg Signer field + FeegrantDisabled bool //marks whether this message type should ALWAYS disable feegranting (use the default signer) } -func NewCosmosMessage(msg sdk.Msg) provider.RelayerMessage { +func NewCosmosMessage(msg sdk.Msg, optionalSetSigner func(string)) provider.RelayerMessage { return CosmosMessage{ - Msg: msg, + Msg: msg, + SetSigner: optionalSetSigner, } } @@ -34,7 +36,7 @@ func CosmosMsgs(rm ...provider.RelayerMessage) []sdk.Msg { sdkMsgs := make([]sdk.Msg, 0) for _, rMsg := range rm { if val, ok := rMsg.(CosmosMessage); !ok { - fmt.Printf("got data of type %T but wanted provider.CosmosMessage \n", val) + fmt.Printf("got data of type %T but wanted provider.CosmosMessage \n", rMsg) return nil } else { sdkMsgs = append(sdkMsgs, val.Msg) diff --git a/relayer/chains/cosmos/provider.go b/relayer/chains/cosmos/provider.go index 4fbea4d0e..3c7ff47fc 100644 --- a/relayer/chains/cosmos/provider.go +++ b/relayer/chains/cosmos/provider.go @@ -35,28 +35,46 @@ var ( const cometEncodingThreshold = "v0.37.0-alpha" type CosmosProviderConfig struct { - KeyDirectory string `json:"key-directory" yaml:"key-directory"` - Key string `json:"key" yaml:"key"` - ChainName string `json:"-" yaml:"-"` - ChainID string `json:"chain-id" yaml:"chain-id"` - RPCAddr string `json:"rpc-addr" yaml:"rpc-addr"` - AccountPrefix string `json:"account-prefix" yaml:"account-prefix"` - KeyringBackend string `json:"keyring-backend" yaml:"keyring-backend"` - GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` - GasPrices string `json:"gas-prices" yaml:"gas-prices"` - MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` - MaxGasAmount uint64 `json:"max-gas-amount" yaml:"max-gas-amount"` - Debug bool `json:"debug" yaml:"debug"` - Timeout string `json:"timeout" yaml:"timeout"` - BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` - OutputFormat string `json:"output-format" yaml:"output-format"` - SignModeStr string `json:"sign-mode" yaml:"sign-mode"` - ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` - Modules []module.AppModuleBasic `json:"-" yaml:"-"` - Slip44 *int `json:"coin-type" yaml:"coin-type"` - SigningAlgorithm string `json:"signing-algorithm" yaml:"signing-algorithm"` - Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` - MinLoopDuration time.Duration `json:"min-loop-duration" yaml:"min-loop-duration"` + KeyDirectory string `json:"key-directory" yaml:"key-directory"` + Key string `json:"key" yaml:"key"` + ChainName string `json:"-" yaml:"-"` + ChainID string `json:"chain-id" yaml:"chain-id"` + RPCAddr string `json:"rpc-addr" yaml:"rpc-addr"` + AccountPrefix string `json:"account-prefix" yaml:"account-prefix"` + KeyringBackend string `json:"keyring-backend" yaml:"keyring-backend"` + GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` + GasPrices string `json:"gas-prices" yaml:"gas-prices"` + MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` + MaxGasAmount uint64 `json:"max-gas-amount" yaml:"max-gas-amount"` + Debug bool `json:"debug" yaml:"debug"` + Timeout string `json:"timeout" yaml:"timeout"` + BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` + OutputFormat string `json:"output-format" yaml:"output-format"` + SignModeStr string `json:"sign-mode" yaml:"sign-mode"` + ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` + Modules []module.AppModuleBasic `json:"-" yaml:"-"` + Slip44 *int `json:"coin-type" yaml:"coin-type"` + SigningAlgorithm string `json:"signing-algorithm" yaml:"signing-algorithm"` + Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` + MinLoopDuration time.Duration `json:"min-loop-duration" yaml:"min-loop-duration"` + ExtensionOptions []provider.ExtensionOption `json:"extension-options" yaml:"extension-options"` + + //If FeeGrantConfiguration is set, TXs submitted by the ChainClient will be signed by the FeeGrantees in a round-robin fashion by default. + FeeGrants *FeeGrantConfiguration `json:"feegrants" yaml:"feegrants"` +} + +// By default, TXs will be signed by the feegrantees 'ManagedGrantees' keys in a round robin fashion. +// Clients can use other signing keys by invoking 'tx.SendMsgsWith' and specifying the signing key. +type FeeGrantConfiguration struct { + GranteesWanted int `json:"num_grantees" yaml:"num_grantees"` + //Normally this is the default ChainClient key + GranterKey string `json:"granter" yaml:"granter"` + //List of keys (by name) that this FeeGranter manages + ManagedGrantees []string `json:"grantees" yaml:"grantees"` + //Last checked on chain (0 means grants never checked and may not exist) + BlockHeightVerified int64 `json:"block_last_verified" yaml:"block_last_verified"` + //Index of the last ManagedGrantee used as a TX signer + GranteeLastSignerIndex int } func (pc CosmosProviderConfig) Validate() error { @@ -91,6 +109,7 @@ func (pc CosmosProviderConfig) NewProvider(log *zap.Logger, homepath string, deb KeyringOptions: []keyring.Option{ethermint.EthSecp256k1Option()}, Input: os.Stdin, Output: os.Stdout, + walletStateMap: map[string]*WalletState{}, // TODO: this is a bit of a hack, we should probably have a better way to inject modules Cdc: MakeCodec(pc.Modules, pc.ExtraCodecs), @@ -112,8 +131,13 @@ type CosmosProvider struct { Cdc Codec // TODO: GRPC Client type? - nextAccountSeq uint64 - txMu sync.Mutex + //nextAccountSeq uint64 + feegrantMu sync.Mutex + + // the map key is the TX signer, which can either be 'default' (provider key) or a feegrantee + // the purpose of the map is to lock on the signer from TX creation through submission, + // thus making TX sequencing errors less likely. + walletStateMap map[string]*WalletState // metrics to monitor the provider TotalFees sdk.Coins @@ -125,6 +149,11 @@ type CosmosProvider struct { cometLegacyEncoding bool } +type WalletState struct { + NextAccountSequence uint64 + Mu sync.Mutex +} + func (cc *CosmosProvider) ProviderConfig() provider.ProviderConfig { return cc.PCfg } @@ -174,22 +203,34 @@ func (cc *CosmosProvider) Address() (string, error) { return out, err } +func (cc *CosmosProvider) MustEncodeAccAddr(addr sdk.AccAddress) string { + enc, err := cc.EncodeBech32AccAddr(addr) + if err != nil { + panic(err) + } + return enc +} + +// AccountFromKeyOrAddress returns an account from either a key or an address. +// If 'keyOrAddress' is the empty string, this returns the default key's address. +func (cc *CosmosProvider) AccountFromKeyOrAddress(keyOrAddress string) (out sdk.AccAddress, err error) { + switch { + case keyOrAddress == "": + out, err = cc.GetKeyAddress(cc.PCfg.Key) + case cc.KeyExists(keyOrAddress): + out, err = cc.GetKeyAddress(keyOrAddress) + default: + out, err = sdk.GetFromBech32(keyOrAddress, cc.PCfg.AccountPrefix) + } + return +} + func (cc *CosmosProvider) TrustingPeriod(ctx context.Context) (time.Duration, error) { - res, err := cc.QueryStakingParams(ctx) - var unbondingTime time.Duration + unbondingTime, err := cc.QueryUnbondingPeriod(ctx) if err != nil { - // Attempt ICS query - consumerUnbondingPeriod, consumerErr := cc.queryConsumerUnbondingPeriod(ctx) - if consumerErr != nil { - return 0, - fmt.Errorf("failed to query unbonding period as both standard and consumer chain: %s: %w", err.Error(), consumerErr) - } - unbondingTime = consumerUnbondingPeriod - } else { - unbondingTime = res.UnbondingTime + return 0, err } - // We want the trusting period to be 85% of the unbonding time. // Go mentions that the time.Duration type can track approximately 290 years. // We don't want to lose precision if the duration is a very long duration @@ -296,9 +337,9 @@ func (cc *CosmosProvider) SetMetrics(m *processor.PrometheusMetrics) { cc.metrics = m } -func (cc *CosmosProvider) updateNextAccountSequence(seq uint64) { - if seq > cc.nextAccountSeq { - cc.nextAccountSeq = seq +func (cc *CosmosProvider) updateNextAccountSequence(sequenceGuard *WalletState, seq uint64) { + if seq > sequenceGuard.NextAccountSequence { + sequenceGuard.NextAccountSequence = seq } } diff --git a/relayer/chains/cosmos/query.go b/relayer/chains/cosmos/query.go index f8025456e..d41f25bdc 100644 --- a/relayer/chains/cosmos/query.go +++ b/relayer/chains/cosmos/query.go @@ -17,8 +17,10 @@ import ( "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + grpctypes "github.com/cosmos/cosmos-sdk/types/grpc" querytypes "github.com/cosmos/cosmos-sdk/types/query" bankTypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/cosmos/cosmos-sdk/x/feegrant" "github.com/cosmos/cosmos-sdk/x/params/types/proposal" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" @@ -33,6 +35,7 @@ import ( "github.com/cosmos/relayer/v2/relayer/provider" "go.uber.org/zap" "golang.org/x/sync/errgroup" + "google.golang.org/grpc/metadata" ) const PaginationDelay = 10 * time.Millisecond @@ -183,6 +186,93 @@ func parseEventsFromResponseDeliverTx(resp abci.ResponseDeliverTx) []provider.Re return events } +// QueryFeegrantsByGrantee returns all requested grants for the given grantee. +// Default behavior will return all grants. +func (cc *CosmosProvider) QueryFeegrantsByGrantee(address string, paginator *querytypes.PageRequest) ([]*feegrant.Grant, error) { + grants := []*feegrant.Grant{} + allPages := paginator == nil + + req := &feegrant.QueryAllowancesRequest{Grantee: address, Pagination: paginator} + queryClient := feegrant.NewQueryClient(cc) + ctx, cancel := cc.GetQueryContext(0) + defer cancel() + hasNextPage := true + + for { + res, err := queryClient.Allowances(ctx, req) + if err != nil { + return nil, err + } + + if res.Allowances != nil { + grants = append(grants, res.Allowances...) + } + + if res.Pagination != nil { + req.Pagination.Key = res.Pagination.NextKey + if len(res.Pagination.NextKey) == 0 { + hasNextPage = false + } + } else { + hasNextPage = false + } + + if !allPages || !hasNextPage { + break + } + } + + return grants, nil +} + +// Feegrant_GrantsByGranterRPC returns all requested grants for the given Granter. +// Default behavior will return all grants. +func (cc *CosmosProvider) QueryFeegrantsByGranter(address string, paginator *querytypes.PageRequest) ([]*feegrant.Grant, error) { + grants := []*feegrant.Grant{} + allPages := paginator == nil + + req := &feegrant.QueryAllowancesByGranterRequest{Granter: address, Pagination: paginator} + queryClient := feegrant.NewQueryClient(cc) + ctx, cancel := cc.GetQueryContext(0) + defer cancel() + hasNextPage := true + + for { + res, err := queryClient.AllowancesByGranter(ctx, req) + if err != nil { + return nil, err + } + + if res.Allowances != nil { + grants = append(grants, res.Allowances...) + } + + if res.Pagination != nil && res.Pagination.NextKey != nil { + req.Pagination.Key = res.Pagination.NextKey + if len(res.Pagination.NextKey) == 0 { + hasNextPage = false + } + } else { + hasNextPage = false + } + + if !allPages || !hasNextPage { + break + } + } + + return grants, nil +} + +// GetQueryContext returns a context that includes the height and uses the timeout from the config +func (cc *CosmosProvider) GetQueryContext(height int64) (context.Context, context.CancelFunc) { + timeout, _ := time.ParseDuration(cc.PCfg.Timeout) // Timeout is validated in the config so no error check + ctx, cancel := context.WithTimeout(context.Background(), timeout) + strHeight := strconv.FormatInt(height, 10) + ctx = metadata.AppendToOutgoingContext(ctx, grpctypes.GRPCBlockHeightHeader, strHeight) + return ctx, cancel +} + // QueryBalance returns the amount of coins in the relayer account func (cc *CosmosProvider) QueryBalance(ctx context.Context, keyName string) (sdk.Coins, error) { addr, err := cc.ShowAddress(keyName) @@ -220,47 +310,55 @@ func (cc *CosmosProvider) QueryBalanceWithAddress(ctx context.Context, address s return coins, nil } -func (cc *CosmosProvider) queryConsumerUnbondingPeriod(ctx context.Context) (time.Duration, error) { +func (cc *CosmosProvider) queryParamsSubspaceTime(ctx context.Context, subspace string, key string) (time.Duration, error) { queryClient := proposal.NewQueryClient(cc) - params := proposal.QueryParamsRequest{Subspace: "ccvconsumer", Key: "UnbondingPeriod"} + params := proposal.QueryParamsRequest{Subspace: subspace, Key: key} - resICS, err := queryClient.Params(ctx, ¶ms) + res, err := queryClient.Params(ctx, ¶ms) if err != nil { - return 0, fmt.Errorf("failed to make ccvconsumer params request: %w", err) + return 0, fmt.Errorf("failed to make %s params request: %w", subspace, err) } - if resICS.Param.Value == "" { - return 0, fmt.Errorf("ccvconsumer unbonding period is empty") + if res.Param.Value == "" { + return 0, fmt.Errorf("%s %s is empty", subspace, key) } - unbondingPeriod, err := strconv.ParseUint(strings.ReplaceAll(resICS.Param.Value, `"`, ""), 10, 64) + unbondingValue, err := strconv.ParseUint(strings.ReplaceAll(res.Param.Value, `"`, ""), 10, 64) if err != nil { - return 0, fmt.Errorf("failed to parse unbonding period from ccvconsumer param: %w", err) + return 0, fmt.Errorf("failed to parse %s from %s param: %w", key, subspace, err) } - return time.Duration(unbondingPeriod), nil + return time.Duration(unbondingValue), nil } // QueryUnbondingPeriod returns the unbonding period of the chain func (cc *CosmosProvider) QueryUnbondingPeriod(ctx context.Context) (time.Duration, error) { + + // Attempt ICS query + consumerUnbondingPeriod, consumerErr := cc.queryParamsSubspaceTime(ctx, "ccvconsumer", "UnbondingPeriod") + if consumerErr == nil { + return consumerUnbondingPeriod, nil + } + + //Attempt Staking query. + unbondingPeriod, stakingParamsErr := cc.queryParamsSubspaceTime(ctx, "staking", "UnbondingTime") + if stakingParamsErr == nil { + return unbondingPeriod, nil + } + + // Fallback req := stakingtypes.QueryParamsRequest{} queryClient := stakingtypes.NewQueryClient(cc) - res, err := queryClient.Params(ctx, &req) - if err != nil { - // Attempt ICS query - consumerUnbondingPeriod, consumerErr := cc.queryConsumerUnbondingPeriod(ctx) - if consumerErr != nil { - return 0, - fmt.Errorf("failed to query unbonding period as both standard and consumer chain: %s: %w", err.Error(), consumerErr) - } + if err == nil { + return res.Params.UnbondingTime, nil - return consumerUnbondingPeriod, nil } - return res.Params.UnbondingTime, nil + return 0, + fmt.Errorf("failed to query unbonding period from ccvconsumer, staking & fallback : %w: %s : %s", consumerErr, stakingParamsErr.Error(), err.Error()) } // QueryTendermintProof performs an ABCI query with the given key and returns @@ -897,7 +995,6 @@ func (cc *CosmosProvider) QueryUnreceivedPackets(ctx context.Context, height uin func sendPacketQuery(channelID string, portID string, seq uint64) string { x := []string{ fmt.Sprintf("%s.packet_src_channel='%s'", spTag, channelID), - fmt.Sprintf("%s.packet_src_port='%s'", spTag, portID), fmt.Sprintf("%s.packet_sequence='%d'", spTag, seq), } return strings.Join(x, " AND ") @@ -906,7 +1003,6 @@ func sendPacketQuery(channelID string, portID string, seq uint64) string { func writeAcknowledgementQuery(channelID string, portID string, seq uint64) string { x := []string{ fmt.Sprintf("%s.packet_dst_channel='%s'", waTag, channelID), - fmt.Sprintf("%s.packet_dst_port='%s'", waTag, portID), fmt.Sprintf("%s.packet_sequence='%d'", waTag, seq), } return strings.Join(x, " AND ") @@ -1007,6 +1103,29 @@ func (cc *CosmosProvider) QueryNextSeqRecv(ctx context.Context, height int64, ch }, nil } +// QueryNextSeqAck returns the next seqAck for a configured channel +func (cc *CosmosProvider) QueryNextSeqAck(ctx context.Context, height int64, channelid, portid string) (recvRes *chantypes.QueryNextSequenceReceiveResponse, err error) { + key := host.NextSequenceAckKey(portid, channelid) + + value, proofBz, proofHeight, err := cc.QueryTendermintProof(ctx, height, key) + if err != nil { + return nil, err + } + + // check if next sequence receive exists + if len(value) == 0 { + return nil, sdkerrors.Wrapf(chantypes.ErrChannelNotFound, "portID (%s), channelID (%s)", portid, channelid) + } + + sequence := binary.BigEndian.Uint64(value) + + return &chantypes.QueryNextSequenceReceiveResponse{ + NextSequenceReceive: sequence, + Proof: proofBz, + ProofHeight: proofHeight, + }, nil +} + // QueryPacketCommitment returns the packet commitment proof at a given height func (cc *CosmosProvider) QueryPacketCommitment(ctx context.Context, height int64, channelid, portid string, seq uint64) (comRes *chantypes.QueryPacketCommitmentResponse, err error) { key := host.PacketCommitmentKey(portid, channelid, seq) diff --git a/relayer/chains/cosmos/relayer_packets.go b/relayer/chains/cosmos/relayer_packets.go index 168b6be9a..ad7779c6a 100644 --- a/relayer/chains/cosmos/relayer_packets.go +++ b/relayer/chains/cosmos/relayer_packets.go @@ -66,7 +66,9 @@ func (rp relayMsgTimeout) Msg(src provider.ChainProvider, srcPortId, srcChanId, Signer: addr, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } type relayMsgRecvPacket struct { @@ -129,7 +131,9 @@ func (rp relayMsgRecvPacket) Msg(src provider.ChainProvider, srcPortId, srcChanI Signer: addr, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } type relayMsgPacketAck struct { @@ -184,5 +188,7 @@ func (rp relayMsgPacketAck) Msg(src provider.ChainProvider, srcPortId, srcChanId Signer: addr, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } diff --git a/relayer/chains/cosmos/stride/messages.pb.go b/relayer/chains/cosmos/stride/messages.pb.go index d99e7cc34..6c438a3fa 100644 --- a/relayer/chains/cosmos/stride/messages.pb.go +++ b/relayer/chains/cosmos/stride/messages.pb.go @@ -7,8 +7,8 @@ import ( fmt "fmt" crypto "github.com/cometbft/cometbft/proto/tendermint/crypto" _ "github.com/cosmos/cosmos-proto" + _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" - _ "github.com/gogo/protobuf/gogoproto" io "io" math "math" math_bits "math/bits" @@ -78,32 +78,32 @@ func init() { var fileDescriptor_25adad4f8ed32400 = []byte{ // 415 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0xbf, 0xae, 0xd3, 0x30, - 0x14, 0x87, 0xe3, 0x7b, 0xa1, 0xb7, 0x4d, 0x8b, 0x80, 0x50, 0xa1, 0xb4, 0x48, 0x49, 0x94, 0x29, - 0x0c, 0x24, 0x2a, 0x48, 0x0c, 0x65, 0x22, 0x5b, 0x25, 0x10, 0x25, 0xdd, 0x58, 0xa2, 0xfc, 0x71, - 0x13, 0x4b, 0x4d, 0x1c, 0x6c, 0xa7, 0x52, 0xde, 0x80, 0x91, 0x91, 0xb1, 0x0f, 0xc1, 0x43, 0x30, - 0x56, 0x4c, 0x4c, 0x15, 0x6a, 0x07, 0x98, 0xfb, 0x04, 0xc8, 0x76, 0x52, 0xa1, 0x4e, 0x39, 0x39, - 0xdf, 0xe7, 0x1c, 0xff, 0xec, 0xa8, 0x0e, 0x65, 0x04, 0xa5, 0xd0, 0x43, 0x25, 0x83, 0x24, 0xc9, - 0x23, 0x54, 0x7e, 0xae, 0x21, 0x69, 0xbc, 0xed, 0xcc, 0x2b, 0x20, 0xa5, 0x51, 0x06, 0xa9, 0x5b, - 0x11, 0xcc, 0xb0, 0x36, 0x91, 0xa6, 0x7b, 0x65, 0xba, 0xdb, 0xd9, 0x74, 0x9c, 0xe1, 0x0c, 0x0b, - 0xcb, 0xe3, 0x95, 0x5c, 0x30, 0x9d, 0x24, 0x98, 0x16, 0x98, 0x86, 0x12, 0xc8, 0x97, 0x16, 0x3d, - 0x4b, 0x70, 0x01, 0x59, 0xbc, 0x66, 0x5e, 0x42, 0x9a, 0x8a, 0x61, 0xaf, 0x22, 0x18, 0xaf, 0x25, - 0xb4, 0xff, 0xdc, 0xa8, 0x4f, 0xdf, 0xd3, 0x6c, 0x55, 0xc7, 0x05, 0x62, 0x1f, 0xf9, 0x8c, 0x00, - 0xd2, 0x0a, 0x97, 0x14, 0x6a, 0xae, 0xda, 0x17, 0x93, 0x43, 0x94, 0xea, 0xc0, 0x02, 0xce, 0xc0, - 0x7f, 0x72, 0x3e, 0x98, 0x0f, 0x9b, 0xa8, 0xd8, 0xcc, 0xed, 0x8e, 0xd8, 0xc1, 0x9d, 0x28, 0x17, - 0x29, 0xf7, 0xc5, 0x26, 0xb9, 0x7f, 0x73, 0xed, 0x77, 0xc4, 0x0e, 0xee, 0x44, 0xb9, 0x48, 0xb5, - 0xe7, 0x6a, 0x8f, 0x40, 0x5a, 0x6f, 0x98, 0x7e, 0x6b, 0x01, 0x67, 0xe4, 0x3f, 0x3e, 0x1f, 0xcc, - 0x07, 0xd2, 0x96, 0x7d, 0x3b, 0x68, 0x05, 0xed, 0x9d, 0x3a, 0x10, 0x9b, 0x0e, 0x71, 0x45, 0xf5, - 0x7b, 0x16, 0x70, 0x86, 0x2f, 0x27, 0x6e, 0x17, 0xcb, 0x95, 0xb1, 0xdc, 0x25, 0x37, 0x3e, 0x54, - 0xd4, 0x1f, 0x9f, 0x0f, 0xe6, 0x23, 0xf9, 0xa1, 0xcb, 0x2a, 0x3b, 0xe8, 0x57, 0x2d, 0xe7, 0x83, - 0x73, 0x88, 0xb2, 0x9c, 0xe9, 0xf7, 0x2d, 0xe0, 0xdc, 0xfe, 0x3f, 0x58, 0xf6, 0xed, 0xa0, 0x15, - 0xb4, 0x37, 0xea, 0x68, 0x4d, 0x70, 0x11, 0x46, 0x69, 0x4a, 0x20, 0xa5, 0x7a, 0x4f, 0xe4, 0xd2, - 0x7f, 0x7e, 0x7f, 0x31, 0x6e, 0xcf, 0xf8, 0xad, 0x24, 0x2b, 0x46, 0x50, 0x99, 0x05, 0x43, 0x6e, - 0xb7, 0xad, 0xf9, 0xe8, 0xcb, 0xce, 0x54, 0xbe, 0xed, 0x4c, 0xf0, 0x77, 0x67, 0x2a, 0xfe, 0xf2, - 0xc7, 0xd1, 0x00, 0xfb, 0xa3, 0x01, 0x7e, 0x1f, 0x0d, 0xf0, 0xf5, 0x64, 0x28, 0xfb, 0x93, 0xa1, - 0xfc, 0x3a, 0x19, 0xca, 0xa7, 0xd7, 0x19, 0x62, 0x79, 0x1d, 0xf3, 0x40, 0xed, 0xcd, 0x79, 0x04, - 0x6e, 0xa2, 0x06, 0x92, 0xcb, 0x53, 0x9c, 0x31, 0xed, 0xa8, 0xfc, 0x39, 0xe2, 0x9e, 0xb8, 0xc2, - 0x57, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x72, 0x51, 0x12, 0x90, 0x57, 0x02, 0x00, 0x00, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0x3f, 0x0f, 0x93, 0x40, + 0x18, 0x87, 0xb9, 0x56, 0xfb, 0x87, 0xd6, 0xa8, 0xd8, 0x18, 0x5a, 0x23, 0x10, 0x26, 0x1c, 0x3c, + 0x52, 0x4d, 0x1c, 0xea, 0x24, 0x5b, 0x07, 0xb5, 0xd2, 0xcd, 0x85, 0x50, 0xb8, 0xc2, 0x25, 0x85, + 0xc3, 0xbb, 0xa3, 0x09, 0xdf, 0xc0, 0xd1, 0xd1, 0xb1, 0x1f, 0xc2, 0x0f, 0xe1, 0xd8, 0x38, 0x39, + 0x35, 0xa6, 0x5d, 0x74, 0xed, 0x27, 0x30, 0xdc, 0xd1, 0x6a, 0x3a, 0xf1, 0xf2, 0x3e, 0xcf, 0xf1, + 0xbb, 0xf7, 0x0e, 0xd5, 0x61, 0x9c, 0xe2, 0x18, 0xb9, 0x38, 0xe7, 0x88, 0x46, 0x69, 0x88, 0xf3, + 0x4f, 0x25, 0xa2, 0x95, 0xbb, 0x9d, 0xba, 0x19, 0x62, 0x2c, 0x4c, 0x10, 0x83, 0x05, 0x25, 0x9c, + 0x68, 0x63, 0x69, 0xc2, 0x1b, 0x13, 0x6e, 0xa7, 0x93, 0x51, 0x42, 0x12, 0x22, 0x2c, 0xb7, 0xae, + 0xe4, 0x82, 0xc9, 0x38, 0x22, 0x2c, 0x23, 0x2c, 0x90, 0x40, 0xbe, 0x34, 0xe8, 0x29, 0x47, 0x79, + 0x8c, 0x68, 0x86, 0x73, 0xee, 0x46, 0xb4, 0x2a, 0x38, 0x71, 0x0b, 0x4a, 0xc8, 0x5a, 0x62, 0xfb, + 0x4f, 0x4b, 0x7d, 0xfc, 0x96, 0x25, 0xcb, 0x72, 0x95, 0x61, 0xfe, 0xa1, 0x4e, 0xf1, 0x11, 0x2b, + 0x48, 0xce, 0x90, 0x06, 0xd5, 0x9e, 0xc8, 0x0e, 0x70, 0xac, 0x03, 0x0b, 0x38, 0x7d, 0xef, 0xd1, + 0xf9, 0x60, 0xde, 0xaf, 0xc2, 0x6c, 0x33, 0xb3, 0x2f, 0xc4, 0xf6, 0xbb, 0xa2, 0x9c, 0xc7, 0xb5, + 0x2f, 0xb6, 0x59, 0xfb, 0xad, 0x5b, 0xff, 0x42, 0x6c, 0xbf, 0x2b, 0xca, 0x79, 0xac, 0x3d, 0x53, + 0x3b, 0x14, 0xb1, 0x72, 0xc3, 0xf5, 0xb6, 0x05, 0x9c, 0xa1, 0xf7, 0xf0, 0x7c, 0x30, 0xef, 0x49, + 0x5b, 0xf6, 0x6d, 0xbf, 0x11, 0xb4, 0x77, 0x6a, 0x5f, 0x6c, 0x3a, 0x20, 0x05, 0xd3, 0xef, 0x58, + 0xc0, 0x19, 0xbc, 0x78, 0x02, 0xff, 0x0d, 0x06, 0xe5, 0x60, 0x70, 0x51, 0x3b, 0xef, 0x0b, 0xe6, + 0x8d, 0xce, 0x07, 0xf3, 0x81, 0xfc, 0xd4, 0x75, 0x9d, 0xed, 0xf7, 0x8a, 0x86, 0xd7, 0xd1, 0x29, + 0xc2, 0x49, 0xca, 0xf5, 0xbb, 0x16, 0x70, 0xda, 0xff, 0x47, 0xcb, 0xbe, 0xed, 0x37, 0x82, 0xf6, + 0x5a, 0x1d, 0xae, 0x29, 0xc9, 0x82, 0x30, 0x8e, 0x29, 0x62, 0x4c, 0xef, 0x88, 0xc9, 0xf4, 0x1f, + 0xdf, 0x9e, 0x8f, 0x9a, 0x73, 0x7e, 0x23, 0xc9, 0x92, 0x53, 0x9c, 0x27, 0xfe, 0xa0, 0xb6, 0x9b, + 0xd6, 0x6c, 0xf8, 0x79, 0x67, 0x2a, 0x5f, 0x77, 0x26, 0xf8, 0xbd, 0x33, 0x15, 0x6f, 0xf1, 0xfd, + 0x68, 0x80, 0xfd, 0xd1, 0x00, 0xbf, 0x8e, 0x06, 0xf8, 0x72, 0x32, 0x94, 0xfd, 0xc9, 0x50, 0x7e, + 0x9e, 0x0c, 0xe5, 0xe3, 0xab, 0x04, 0xf3, 0xb4, 0x5c, 0xc1, 0x88, 0x64, 0xcd, 0xed, 0xb9, 0x14, + 0x6d, 0xc2, 0x0a, 0xd1, 0xeb, 0x53, 0x9c, 0x32, 0xbb, 0x50, 0xf9, 0x83, 0xac, 0x3a, 0xe2, 0x12, + 0x5f, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x5e, 0x6b, 0x0e, 0x66, 0x5b, 0x02, 0x00, 0x00, } func (m *MsgSubmitQueryResponse) Marshal() (dAtA []byte, err error) { diff --git a/relayer/chains/cosmos/tx.go b/relayer/chains/cosmos/tx.go index 2af8538ff..44e002889 100644 --- a/relayer/chains/cosmos/tx.go +++ b/relayer/chains/cosmos/tx.go @@ -6,6 +6,7 @@ import ( "fmt" "math" "math/big" + "math/rand" "regexp" "strconv" "strings" @@ -14,12 +15,14 @@ import ( "github.com/avast/retry-go/v4" abci "github.com/cometbft/cometbft/abci/types" + "github.com/cometbft/cometbft/libs/bytes" "github.com/cometbft/cometbft/light" rpcclient "github.com/cometbft/cometbft/rpc/client" coretypes "github.com/cometbft/cometbft/rpc/core/types" tmtypes "github.com/cometbft/cometbft/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/tx" + "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/crypto/keyring" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" @@ -37,7 +40,9 @@ import ( host "github.com/cosmos/ibc-go/v7/modules/core/24-host" ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" tmclient "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" + localhost "github.com/cosmos/ibc-go/v7/modules/light-clients/09-localhost" strideicqtypes "github.com/cosmos/relayer/v2/relayer/chains/cosmos/stride" + "github.com/cosmos/relayer/v2/relayer/ethermint" "github.com/cosmos/relayer/v2/relayer/provider" "go.uber.org/zap" "google.golang.org/grpc/codes" @@ -50,7 +55,7 @@ var ( rtyAtt = retry.Attempts(rtyAttNum) rtyDel = retry.Delay(time.Millisecond * 400) rtyErr = retry.LastErrorOnly(true) - numRegex = regexp.MustCompile("[0-9]+") + accountSeqRegex = regexp.MustCompile("account sequence mismatch, expected ([0-9]+), got ([0-9]+)") defaultBroadcastWaitTimeout = 10 * time.Minute errUnknown = "unknown" ) @@ -75,6 +80,26 @@ func (cc *CosmosProvider) SendMessage(ctx context.Context, msg provider.RelayerM return cc.SendMessages(ctx, []provider.RelayerMessage{msg}, memo) } +var seqGuardSingleton sync.Mutex + +// Gets the sequence guard. If it doesn't exist, initialized and returns it. +func ensureSequenceGuard(cc *CosmosProvider, key string) *WalletState { + seqGuardSingleton.Lock() + defer seqGuardSingleton.Unlock() + + if cc.walletStateMap == nil { + cc.walletStateMap = map[string]*WalletState{} + } + + sequenceGuard, ok := cc.walletStateMap[key] + if !ok { + cc.walletStateMap[key] = &WalletState{} + return cc.walletStateMap[key] + } + + return sequenceGuard +} + // SendMessages attempts to sign, encode, & send a slice of RelayerMessages // This is used extensively in the relayer as an extension of the Provider interface // @@ -98,7 +123,7 @@ func (cc *CosmosProvider) SendMessages(ctx context.Context, msgs []provider.Rela wg.Add(1) if err := retry.Do(func() error { - return cc.SendMessagesToMempool(ctx, msgs, memo, ctx, callback) + return cc.SendMessagesToMempool(ctx, msgs, memo, ctx, []func(*provider.RelayerTxResponse, error){callback}) }, retry.Context(ctx), rtyAtt, rtyDel, rtyErr, retry.OnRetry(func(n uint, err error) { cc.log.Info( "Error building or broadcasting transaction", @@ -134,37 +159,183 @@ func (cc *CosmosProvider) SendMessagesToMempool( memo string, asyncCtx context.Context, - asyncCallback func(*provider.RelayerTxResponse, error), + asyncCallbacks []func(*provider.RelayerTxResponse, error), ) error { - // Guard against account sequence number mismatch errors by locking for the specific wallet for - // the account sequence query all the way through the transaction broadcast success/fail. - cc.txMu.Lock() - defer cc.txMu.Unlock() + txSignerKey, feegranterKey, err := cc.buildSignerConfig(msgs) + if err != nil { + return err + } + + sequenceGuard := ensureSequenceGuard(cc, txSignerKey) + sequenceGuard.Mu.Lock() + defer sequenceGuard.Mu.Unlock() - txBytes, sequence, fees, err := cc.buildMessages(ctx, msgs, memo) + txBytes, sequence, fees, err := cc.buildMessages(ctx, msgs, memo, 0, txSignerKey, feegranterKey, sequenceGuard) if err != nil { // Account sequence mismatch errors can happen on the simulated transaction also. if strings.Contains(err.Error(), sdkerrors.ErrWrongSequence.Error()) { - cc.handleAccountSequenceMismatchError(err) + cc.handleAccountSequenceMismatchError(sequenceGuard, err) } return err } - if err := cc.broadcastTx(ctx, txBytes, msgs, fees, asyncCtx, defaultBroadcastWaitTimeout, asyncCallback); err != nil { + if err := cc.broadcastTx(ctx, txBytes, msgs, fees, asyncCtx, defaultBroadcastWaitTimeout, asyncCallbacks); err != nil { if strings.Contains(err.Error(), sdkerrors.ErrWrongSequence.Error()) { - cc.handleAccountSequenceMismatchError(err) + cc.handleAccountSequenceMismatchError(sequenceGuard, err) } return err } // we had a successful tx broadcast with this sequence, so update it to the next - cc.updateNextAccountSequence(sequence + 1) - + cc.updateNextAccountSequence(sequenceGuard, sequence+1) return nil } +func (cc *CosmosProvider) SubmitTxAwaitResponse(ctx context.Context, msgs []sdk.Msg, memo string, gas uint64, signingKeyName string) (*txtypes.GetTxResponse, error) { + resp, err := cc.SendMsgsWith(ctx, msgs, memo, gas, signingKeyName, "") + if err != nil { + return nil, err + } + fmt.Printf("TX result code: %d. Waiting for TX with hash %s\n", resp.Code, resp.Hash) + tx1resp, err := cc.AwaitTx(resp.Hash, 15*time.Second) + if err != nil { + return nil, err + } + + return tx1resp, err +} + +// Get the TX by hash, waiting for it to be included in a block +func (cc *CosmosProvider) AwaitTx(txHash bytes.HexBytes, timeout time.Duration) (*txtypes.GetTxResponse, error) { + var txByHash *txtypes.GetTxResponse + var txLookupErr error + startTime := time.Now() + timeBetweenQueries := 100 + + txClient := txtypes.NewServiceClient(cc) + + for txByHash == nil { + ctx, cancel := context.WithTimeout(context.Background(), timeout) + if time.Since(startTime) > timeout { + cancel() + return nil, txLookupErr + } + + txByHash, txLookupErr = txClient.GetTx(ctx, &txtypes.GetTxRequest{Hash: txHash.String()}) + if txLookupErr != nil { + time.Sleep(time.Duration(timeBetweenQueries) * time.Millisecond) + } + cancel() + } + + return txByHash, nil +} + +// SendMsgs wraps the msgs in a StdTx, signs and sends it. An error is returned if there +// was an issue sending the transaction. A successfully sent, but failed transaction will +// not return an error. If a transaction is successfully sent, the result of the execution +// of that transaction will be logged. A boolean indicating if a transaction was successfully +// sent and executed successfully is returned. +// +// feegranterKey - key name of the address set as the feegranter, empty string will not feegrant +func (cc *CosmosProvider) SendMsgsWith(ctx context.Context, msgs []sdk.Msg, memo string, gas uint64, signingKey string, feegranterKey string) (*coretypes.ResultBroadcastTx, error) { + sdkConfigMutex.Lock() + sdkConf := sdk.GetConfig() + sdkConf.SetBech32PrefixForAccount(cc.PCfg.AccountPrefix, cc.PCfg.AccountPrefix+"pub") + sdkConf.SetBech32PrefixForValidator(cc.PCfg.AccountPrefix+"valoper", cc.PCfg.AccountPrefix+"valoperpub") + sdkConf.SetBech32PrefixForConsensusNode(cc.PCfg.AccountPrefix+"valcons", cc.PCfg.AccountPrefix+"valconspub") + defer sdkConfigMutex.Unlock() + + rand.Seed(time.Now().UnixNano()) + feegrantKeyAcc, _ := cc.GetKeyAddressForKey(feegranterKey) + + txf, err := cc.PrepareFactory(cc.TxFactory(), signingKey) + if err != nil { + return nil, err + } + + adjusted := gas + + if gas == 0 { + // TODO: Make this work with new CalculateGas method + // TODO: This is related to GRPC client stuff? + // https://github.com/cosmos/cosmos-sdk/blob/5725659684fc93790a63981c653feee33ecf3225/client/tx/tx.go#L297 + _, adjusted, err = cc.CalculateGas(ctx, txf, signingKey, msgs...) + + if err != nil { + return nil, err + } + + adjusted = uint64(float64(adjusted) * cc.PCfg.GasAdjustment) + } + + //Cannot feegrant your own TX + if signingKey != feegranterKey && feegranterKey != "" { + //Must be set in Factory to affect gas calculation (sim tx) as well as real tx + txf = txf.WithFeeGranter(feegrantKeyAcc) + } + + if memo != "" { + txf = txf.WithMemo(memo) + } + + // Set the gas amount on the transaction factory + txf = txf.WithGas(adjusted) + + // Build the transaction builder + txb, err := txf.BuildUnsignedTx(msgs...) + if err != nil { + return nil, err + } + + // Attach the signature to the transaction + // c.LogFailedTx(nil, err, msgs) + // Force encoding in the chain specific address + for _, msg := range msgs { + cc.Cdc.Marshaler.MustMarshalJSON(msg) + } + + err = func() error { + //done := cc.SetSDKContext() + // ensure that we allways call done, even in case of an error or panic + //defer done() + + if err = tx.Sign(txf, signingKey, txb, false); err != nil { + return err + } + return nil + }() + + if err != nil { + return nil, err + } + + // Generate the transaction bytes + txBytes, err := cc.Cdc.TxConfig.TxEncoder()(txb.GetTx()) + if err != nil { + return nil, err + } + + res, err := cc.RPCClient.BroadcastTxAsync(ctx, txBytes) + if res != nil { + fmt.Printf("TX hash: %s\n", res.Hash) + } + if err != nil { + return nil, err + } + + // transaction was executed, log the success or failure using the tx response code + // NOTE: error is nil, logic should use the returned error to determine if the + // transaction was successfully executed. + if res.Code != 0 { + return res, fmt.Errorf("transaction failed with code: %d", res.Code) + } + + return res, nil +} + // sdkError will return the Cosmos SDK registered error for a given codespace/code combo if registered, otherwise nil. func (cc *CosmosProvider) sdkError(codespace string, code uint32) error { // ABCIError will return an error other than "unknown" if syncRes.Code is a registered error in syncRes.Codespace @@ -187,7 +358,7 @@ func (cc *CosmosProvider) broadcastTx( asyncCtx context.Context, // context for async wait for block inclusion after successful tx broadcast asyncTimeout time.Duration, // timeout for waiting for block inclusion - asyncCallback func(*provider.RelayerTxResponse, error), // callback for success/fail of the wait for block inclusion + asyncCallbacks []func(*provider.RelayerTxResponse, error), // callback for success/fail of the wait for block inclusion ) error { res, err := cc.RPCClient.BroadcastTxSync(ctx, tx) isErr := err != nil @@ -213,13 +384,19 @@ func (cc *CosmosProvider) broadcastTx( cc.LogFailedTx(rlyResp, err, msgs) return err } - - cc.UpdateFeesSpent(cc.ChainId(), cc.Key(), fees) + address, err := cc.Address() + if err != nil { + cc.log.Error( + "failed to get relayer bech32 wallet addresss", + zap.Error(err), + ) + } + cc.UpdateFeesSpent(cc.ChainId(), cc.Key(), address, fees) // TODO: maybe we need to check if the node has tx indexing enabled? // if not, we need to find a new way to block until inclusion in a block - go cc.waitForTx(asyncCtx, res.Hash, msgs, asyncTimeout, asyncCallback) + go cc.waitForTx(asyncCtx, res.Hash, msgs, asyncTimeout, asyncCallbacks) return nil } @@ -231,13 +408,16 @@ func (cc *CosmosProvider) waitForTx( txHash []byte, msgs []provider.RelayerMessage, // used for logging only waitTimeout time.Duration, - callback func(*provider.RelayerTxResponse, error), + callbacks []func(*provider.RelayerTxResponse, error), ) { res, err := cc.waitForBlockInclusion(ctx, txHash, waitTimeout) if err != nil { cc.log.Error("Failed to wait for block inclusion", zap.Error(err)) - if callback != nil { - callback(nil, err) + if len(callbacks) > 0 { + for _, cb := range callbacks { + //Call each callback in order since waitForTx is already invoked asyncronously + cb(nil, err) + } } return } @@ -261,15 +441,21 @@ func (cc *CosmosProvider) waitForTx( if err == nil { err = fmt.Errorf("transaction failed to execute") } - if callback != nil { - callback(nil, err) + if len(callbacks) > 0 { + for _, cb := range callbacks { + //Call each callback in order since waitForTx is already invoked asyncronously + cb(nil, err) + } } cc.LogFailedTx(rlyResp, nil, msgs) return } - if callback != nil { - callback(rlyResp, nil) + if len(callbacks) > 0 { + for _, cb := range callbacks { + //Call each callback in order since waitForTx is already invoked asyncronously + cb(rlyResp, nil) + } } cc.LogSuccessTx(res, msgs) } @@ -333,12 +519,95 @@ func parseEventsFromTxResponse(resp *sdk.TxResponse) []provider.RelayerEvent { }) } } + + // After SDK v0.50, indexed events are no longer provided in the logs on + // transaction execution, the response events can be directly used + if len(events) == 0 { + for _, event := range resp.Events { + attributes := make(map[string]string) + for _, attribute := range event.Attributes { + attributes[attribute.Key] = attribute.Value + } + events = append(events, provider.RelayerEvent{ + EventType: event.Type, + Attributes: attributes, + }) + } + } + return events } -func (cc *CosmosProvider) buildMessages(ctx context.Context, msgs []provider.RelayerMessage, memo string) ([]byte, uint64, sdk.Coins, error) { - // Query account details - txf, err := cc.PrepareFactory(cc.TxFactory()) +func (cc *CosmosProvider) buildSignerConfig(msgs []provider.RelayerMessage) ( + txSignerKey string, + feegranterKey string, + err error, +) { + //Guard against race conditions when choosing a signer/feegranter + cc.feegrantMu.Lock() + defer cc.feegrantMu.Unlock() + + //Some messages have feegranting disabled. If any message in the TX disables feegrants, then the TX will not be feegranted. + isFeegrantEligible := cc.PCfg.FeeGrants != nil + + for _, curr := range msgs { + if cMsg, ok := curr.(CosmosMessage); ok { + if cMsg.FeegrantDisabled { + isFeegrantEligible = false + } + } + } + + //By default, we should sign TXs with the provider's default key + txSignerKey = cc.PCfg.Key + + if isFeegrantEligible { + txSignerKey, feegranterKey = cc.GetTxFeeGrant() + signerAcc, addrErr := cc.GetKeyAddressForKey(txSignerKey) + if addrErr != nil { + err = addrErr + return + } + + signerAccAddr, encodeErr := cc.EncodeBech32AccAddr(signerAcc) + if encodeErr != nil { + err = encodeErr + return + } + + //Overwrite the 'Signer' field in any Msgs that provide an 'optionalSetSigner' callback + for _, curr := range msgs { + if cMsg, ok := curr.(CosmosMessage); ok { + if cMsg.SetSigner != nil { + cMsg.SetSigner(signerAccAddr) + } + } + } + } + + return +} + +func (cc *CosmosProvider) buildMessages( + ctx context.Context, + msgs []provider.RelayerMessage, + memo string, + gas uint64, + txSignerKey string, + feegranterKey string, + sequenceGuard *WalletState, +) ( + txBytes []byte, + sequence uint64, + fees sdk.Coins, + err error, +) { + done := cc.SetSDKContext() + defer done() + + cMsgs := CosmosMsgs(msgs...) + + txf, err := cc.PrepareFactory(cc.TxFactory(), txSignerKey) if err != nil { return nil, 0, sdk.Coins{}, err } @@ -347,82 +616,75 @@ func (cc *CosmosProvider) buildMessages(ctx context.Context, msgs []provider.Rel txf = txf.WithMemo(memo) } - sequence := txf.Sequence() - cc.updateNextAccountSequence(sequence) - if sequence < cc.nextAccountSeq { - sequence = cc.nextAccountSeq + sequence = txf.Sequence() + cc.updateNextAccountSequence(sequenceGuard, sequence) + if sequence < sequenceGuard.NextAccountSequence { + sequence = sequenceGuard.NextAccountSequence txf = txf.WithSequence(sequence) } - // TODO: Make this work with new CalculateGas method - // TODO: This is related to GRPC client stuff? - // https://github.com/cosmos/cosmos-sdk/blob/5725659684fc93790a63981c653feee33ecf3225/client/tx/tx.go#L297 - // If users pass gas adjustment, then calculate gas - _, adjusted, err := cc.CalculateGas(ctx, txf, CosmosMsgs(msgs...)...) - if err != nil { - return nil, 0, sdk.Coins{}, err - } + adjusted := gas - // Set the gas amount on the transaction factory - txf = txf.WithGas(adjusted) + if gas == 0 { + _, adjusted, err = cc.CalculateGas(ctx, txf, txSignerKey, cMsgs...) - var txb client.TxBuilder - // Build the transaction builder & retry on failures - if err := retry.Do(func() error { - txb, err = txf.BuildUnsignedTx(CosmosMsgs(msgs...)...) if err != nil { - return err + return nil, 0, sdk.Coins{}, err } - return nil - }, retry.Context(ctx), rtyAtt, rtyDel, rtyErr); err != nil { - return nil, 0, sdk.Coins{}, err } - done := cc.SetSDKContext() - - if err := retry.Do(func() error { - if err := tx.Sign(txf, cc.PCfg.Key, txb, false); err != nil { - return err + //Cannot feegrant your own TX + if txSignerKey != feegranterKey && feegranterKey != "" { + granterAddr, err := cc.GetKeyAddressForKey(feegranterKey) + if err != nil { + return nil, 0, sdk.Coins{}, err } - return nil - }, retry.Context(ctx), rtyAtt, rtyDel, rtyErr); err != nil { + + txf = txf.WithFeeGranter(granterAddr) + } + + // Set the gas amount on the transaction factory + txf = txf.WithGas(adjusted) + + // Build the transaction builder + txb, err := txf.BuildUnsignedTx(cMsgs...) + if err != nil { return nil, 0, sdk.Coins{}, err } - done() + if err = tx.Sign(txf, txSignerKey, txb, false); err != nil { + return nil, 0, sdk.Coins{}, err + } tx := txb.GetTx() - fees := tx.GetFee() + fees = tx.GetFee() - var txBytes []byte // Generate the transaction bytes - if err := retry.Do(func() error { - var err error - txBytes, err = cc.Cdc.TxConfig.TxEncoder()(tx) - if err != nil { - return err - } - return nil - }, retry.Context(ctx), rtyAtt, rtyDel, rtyErr); err != nil { + txBytes, err = cc.Cdc.TxConfig.TxEncoder()(tx) + if err != nil { return nil, 0, sdk.Coins{}, err } - return txBytes, sequence, fees, nil + return txBytes, txf.Sequence(), fees, nil } // handleAccountSequenceMismatchError will parse the error string, e.g.: // "account sequence mismatch, expected 10, got 9: incorrect account sequence" // and update the next account sequence with the expected value. -func (cc *CosmosProvider) handleAccountSequenceMismatchError(err error) { - sequences := numRegex.FindAllString(err.Error(), -1) - if len(sequences) != 2 { +func (cc *CosmosProvider) handleAccountSequenceMismatchError(sequenceGuard *WalletState, err error) { + if sequenceGuard == nil { + panic("sequence guard not configured") + } + + matches := accountSeqRegex.FindStringSubmatch(err.Error()) + if len(matches) == 0 { return } - nextSeq, err := strconv.ParseUint(sequences[0], 10, 64) + nextSeq, err := strconv.ParseUint(matches[1], 10, 64) if err != nil { return } - cc.nextAccountSeq = nextSeq + sequenceGuard.NextAccountSequence = nextSeq } // MsgCreateClient creates an sdk.Msg to update the client on src with consensus state from dst @@ -451,7 +713,9 @@ func (cc *CosmosProvider) MsgCreateClient( Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) MsgUpdateClient(srcClientID string, dstHeader ibcexported.ClientMessage) (provider.RelayerMessage, error) { @@ -469,7 +733,9 @@ func (cc *CosmosProvider) MsgUpdateClient(srcClientID string, dstHeader ibcexpor ClientMessage: clientMsg, Signer: acc, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) MsgUpgradeClient(srcClientId string, consRes *clienttypes.QueryConsensusStateResponse, clientRes *clienttypes.QueryClientStateResponse) (provider.RelayerMessage, error) { @@ -480,9 +746,14 @@ func (cc *CosmosProvider) MsgUpgradeClient(srcClientId string, consRes *clientty if acc, err = cc.Address(); err != nil { return nil, err } - return NewCosmosMessage(&clienttypes.MsgUpgradeClient{ClientId: srcClientId, ClientState: clientRes.ClientState, + + msgUpgradeClient := &clienttypes.MsgUpgradeClient{ClientId: srcClientId, ClientState: clientRes.ClientState, ConsensusState: consRes.ConsensusState, ProofUpgradeClient: consRes.GetProof(), - ProofUpgradeConsensusState: consRes.ConsensusState.Value, Signer: acc}), nil + ProofUpgradeConsensusState: consRes.ConsensusState.Value, Signer: acc} + + return NewCosmosMessage(msgUpgradeClient, func(signer string) { + msgUpgradeClient.Signer = signer + }), nil } // MsgTransfer creates a new transfer message @@ -509,7 +780,9 @@ func (cc *CosmosProvider) MsgTransfer( msg.TimeoutHeight = info.TimeoutHeight } - return NewCosmosMessage(msg), nil + msgTransfer := NewCosmosMessage(msg, nil).(CosmosMessage) + msgTransfer.FeegrantDisabled = true + return msgTransfer, nil } func (cc *CosmosProvider) ValidatePacket(msgTransfer provider.PacketInfo, latest provider.LatestBlock) error { @@ -575,7 +848,9 @@ func (cc *CosmosProvider) MsgRecvPacket( Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) PacketAcknowledgement( @@ -613,7 +888,9 @@ func (cc *CosmosProvider) MsgAcknowledgement( Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) PacketReceipt( @@ -666,7 +943,9 @@ func (cc *CosmosProvider) MsgTimeout(msgTransfer provider.PacketInfo, proof prov Signer: signer, } - return NewCosmosMessage(assembled), nil + return NewCosmosMessage(assembled, func(signer string) { + assembled.Signer = signer + }), nil } func (cc *CosmosProvider) MsgTimeoutOnClose(msgTransfer provider.PacketInfo, proof provider.PacketProof) (provider.RelayerMessage, error) { @@ -682,7 +961,9 @@ func (cc *CosmosProvider) MsgTimeoutOnClose(msgTransfer provider.PacketInfo, pro Signer: signer, } - return NewCosmosMessage(assembled), nil + return NewCosmosMessage(assembled, func(signer string) { + assembled.Signer = signer + }), nil } func (cc *CosmosProvider) MsgConnectionOpenInit(info provider.ConnectionInfo, proof provider.ConnectionProof) (provider.RelayerMessage, error) { @@ -702,7 +983,9 @@ func (cc *CosmosProvider) MsgConnectionOpenInit(info provider.ConnectionInfo, pr Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) ConnectionHandshakeProof( @@ -764,7 +1047,9 @@ func (cc *CosmosProvider) MsgConnectionOpenTry(msgOpenInit provider.ConnectionIn Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) MsgConnectionOpenAck(msgOpenTry provider.ConnectionInfo, proof provider.ConnectionProof) (provider.RelayerMessage, error) { @@ -794,7 +1079,9 @@ func (cc *CosmosProvider) MsgConnectionOpenAck(msgOpenTry provider.ConnectionInf Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) ConnectionProof( @@ -825,7 +1112,9 @@ func (cc *CosmosProvider) MsgConnectionOpenConfirm(msgOpenAck provider.Connectio Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) MsgChannelOpenInit(info provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { @@ -848,7 +1137,9 @@ func (cc *CosmosProvider) MsgChannelOpenInit(info provider.ChannelInfo, proof pr Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) ChannelProof( @@ -895,7 +1186,9 @@ func (cc *CosmosProvider) MsgChannelOpenTry(msgOpenInit provider.ChannelInfo, pr Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) MsgChannelOpenAck(msgOpenTry provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { @@ -913,7 +1206,9 @@ func (cc *CosmosProvider) MsgChannelOpenAck(msgOpenTry provider.ChannelInfo, pro Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) MsgChannelOpenConfirm(msgOpenAck provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { @@ -929,7 +1224,9 @@ func (cc *CosmosProvider) MsgChannelOpenConfirm(msgOpenAck provider.ChannelInfo, Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) MsgChannelCloseInit(info provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { @@ -943,7 +1240,9 @@ func (cc *CosmosProvider) MsgChannelCloseInit(info provider.ChannelInfo, proof p Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) MsgChannelCloseConfirm(msgCloseInit provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { @@ -959,7 +1258,9 @@ func (cc *CosmosProvider) MsgChannelCloseConfirm(msgCloseInit provider.ChannelIn Signer: signer, } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *CosmosProvider) MsgUpdateClientHeader(latestHeader provider.IBCHeader, trustedHeight clienttypes.Height, trustedHeader provider.IBCHeader) (ibcexported.ClientMessage, error) { @@ -1027,7 +1328,9 @@ func (cc *CosmosProvider) MsgSubmitQueryResponse(chainID string, queryID provide FromAddress: signer, } - return NewCosmosMessage(msg), nil + submitQueryRespMsg := NewCosmosMessage(msg, nil).(CosmosMessage) + submitQueryRespMsg.FeegrantDisabled = true + return submitQueryRespMsg, nil } func (cc *CosmosProvider) MsgSubmitMisbehaviour(clientID string, misbehaviour ibcexported.ClientMessage) (provider.RelayerMessage, error) { @@ -1041,7 +1344,9 @@ func (cc *CosmosProvider) MsgSubmitMisbehaviour(clientID string, misbehaviour ib return nil, err } - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } // RelayPacketFromSequence relays a packet with a given seq on src and returns recvPacket msgs, timeoutPacketmsgs and error @@ -1218,7 +1523,29 @@ func (cc *CosmosProvider) queryTMClientState(ctx context.Context, srch int64, sr clientState, ok := clientStateExported.(*tmclient.ClientState) if !ok { return &tmclient.ClientState{}, - fmt.Errorf("error when casting exported clientstate to tendermint type") + fmt.Errorf("error when casting exported clientstate to tendermint type, got(%T)", clientStateExported) + } + + return clientState, nil +} + +// queryLocalhostClientState retrieves the latest consensus state for a client in state at a given height +// and unpacks/cast it to localhost client state. +func (cc *CosmosProvider) queryLocalhostClientState(ctx context.Context, srch int64) (*localhost.ClientState, error) { + clientStateRes, err := cc.QueryClientStateResponse(ctx, srch, ibcexported.LocalhostClientID) + if err != nil { + return &localhost.ClientState{}, err + } + + clientStateExported, err := clienttypes.UnpackClientState(clientStateRes.ClientState) + if err != nil { + return &localhost.ClientState{}, err + } + + clientState, ok := clientStateExported.(*localhost.ClientState) + if !ok { + return &localhost.ClientState{}, + fmt.Errorf("error when casting exported clientstate to localhost client type, got(%T)", clientStateExported) } return clientState, nil @@ -1257,7 +1584,7 @@ func (cc *CosmosProvider) NewClientState( }, nil } -func (cc *CosmosProvider) UpdateFeesSpent(chain, key string, fees sdk.Coins) { +func (cc *CosmosProvider) UpdateFeesSpent(chain, key, address string, fees sdk.Coins) { // Don't set the metrics in testing if cc.metrics == nil { return @@ -1270,18 +1597,18 @@ func (cc *CosmosProvider) UpdateFeesSpent(chain, key string, fees sdk.Coins) { for _, fee := range cc.TotalFees { // Convert to a big float to get a float64 for metrics f, _ := big.NewFloat(0.0).SetInt(fee.Amount.BigInt()).Float64() - cc.metrics.SetFeesSpent(chain, key, fee.GetDenom(), f) + cc.metrics.SetFeesSpent(chain, cc.PCfg.GasPrices, key, address, fee.GetDenom(), f) } } // MsgRegisterCounterpartyPayee creates an sdk.Msg to broadcast the counterparty address func (cc *CosmosProvider) MsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayee string) (provider.RelayerMessage, error) { msg := feetypes.NewMsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayee) - return NewCosmosMessage(msg), nil + return NewCosmosMessage(msg, nil), nil } // PrepareFactory mutates the tx factory with the appropriate account number, sequence number, and min gas settings. -func (cc *CosmosProvider) PrepareFactory(txf tx.Factory) (tx.Factory, error) { +func (cc *CosmosProvider) PrepareFactory(txf tx.Factory, signingKey string) (tx.Factory, error) { var ( err error from sdk.AccAddress @@ -1290,7 +1617,7 @@ func (cc *CosmosProvider) PrepareFactory(txf tx.Factory) (tx.Factory, error) { // Get key address and retry if fail if err = retry.Do(func() error { - from, err = cc.GetKeyAddress() + from, err = cc.GetKeyAddressForKey(signingKey) if err != nil { return err } @@ -1302,7 +1629,8 @@ func (cc *CosmosProvider) PrepareFactory(txf tx.Factory) (tx.Factory, error) { cliCtx := client.Context{}.WithClient(cc.RPCClient). WithInterfaceRegistry(cc.Cdc.InterfaceRegistry). WithChainID(cc.PCfg.ChainID). - WithCodec(cc.Cdc.Marshaler) + WithCodec(cc.Cdc.Marshaler). + WithFromAddress(from) // Set the account number and sequence on the transaction factory and retry if fail if err = retry.Do(func() error { @@ -1340,6 +1668,10 @@ func (cc *CosmosProvider) PrepareFactory(txf tx.Factory) (tx.Factory, error) { txf = txf.WithGas(cc.PCfg.MinGasAmount) } + txf, err = cc.SetWithExtensionOptions(txf) + if err != nil { + return tx.Factory{}, err + } return txf, nil } @@ -1362,9 +1694,38 @@ func (cc *CosmosProvider) AdjustEstimatedGas(gasUsed uint64) (uint64, error) { return uint64(gas), nil } +// SetWithExtensionOptions sets the dynamic fee extension options on the given +// transaction factory using the configuration options from the CosmosProvider. +// The function creates an extension option for each configuration option and +// serializes it into a byte slice before adding it to the list of extension +// options. The function returns the updated transaction factory with the new +// extension options or an error if the serialization fails or an invalid option +// value is encountered. +func (cc *CosmosProvider) SetWithExtensionOptions(txf tx.Factory) (tx.Factory, error) { + extOpts := make([]*types.Any, 0, len(cc.PCfg.ExtensionOptions)) + for _, opt := range cc.PCfg.ExtensionOptions { + max, ok := sdk.NewIntFromString(opt.Value) + if !ok { + return txf, fmt.Errorf("invalid opt value") + } + extensionOption := ethermint.ExtensionOptionDynamicFeeTx{ + MaxPriorityPrice: max, + } + extBytes, err := extensionOption.Marshal() + if err != nil { + return txf, err + } + extOpts = append(extOpts, &types.Any{ + TypeUrl: "/ethermint.types.v1.ExtensionOptionDynamicFeeTx", + Value: extBytes, + }) + } + return txf.WithExtensionOptions(extOpts...), nil +} + // CalculateGas simulates a tx to generate the appropriate gas settings before broadcasting a tx. -func (cc *CosmosProvider) CalculateGas(ctx context.Context, txf tx.Factory, msgs ...sdk.Msg) (txtypes.SimulateResponse, uint64, error) { - keyInfo, err := cc.Keybase.Key(cc.PCfg.Key) +func (cc *CosmosProvider) CalculateGas(ctx context.Context, txf tx.Factory, signingKey string, msgs ...sdk.Msg) (txtypes.SimulateResponse, uint64, error) { + keyInfo, err := cc.Keybase.Key(signingKey) if err != nil { return txtypes.SimulateResponse{}, 0, err } diff --git a/relayer/chains/cosmos/tx_test.go b/relayer/chains/cosmos/tx_test.go index 198622619..25bb02dd2 100644 --- a/relayer/chains/cosmos/tx_test.go +++ b/relayer/chains/cosmos/tx_test.go @@ -5,6 +5,13 @@ import ( "math" "testing" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/tx" + "github.com/cosmos/cosmos-sdk/codec/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" + "github.com/cosmos/relayer/v2/relayer/ethermint" + "github.com/cosmos/relayer/v2/relayer/provider" "github.com/stretchr/testify/require" ) @@ -13,15 +20,12 @@ type mockAccountSequenceMismatchError struct { Actual uint64 } -func (err mockAccountSequenceMismatchError) Error() string { - return fmt.Sprintf("account sequence mismatch, expected %d, got %d: incorrect account sequence", err.Expected, err.Actual) -} - -func TestHandleAccountSequenceMismatchError(t *testing.T) { - p := &CosmosProvider{} - p.handleAccountSequenceMismatchError(mockAccountSequenceMismatchError{Actual: 9, Expected: 10}) - require.Equal(t, p.nextAccountSeq, uint64(10)) -} +// func TestHandleAccountSequenceMismatchError(t *testing.T) { +// p := &CosmosProvider{} +// ws := &WalletState{} +// p.handleAccountSequenceMismatchError(ws, mockAccountSequenceMismatchError{Actual: 9, Expected: 10}) +// require.Equal(t, ws.NextAccountSequence, uint64(10)) +// } func TestCosmosProvider_AdjustEstimatedGas(t *testing.T) { testCases := []struct { @@ -82,3 +86,64 @@ func TestCosmosProvider_AdjustEstimatedGas(t *testing.T) { }) } } + +func (err mockAccountSequenceMismatchError) Error() string { + return fmt.Sprintf("account sequence mismatch, expected %d, got %d: incorrect account sequence", err.Expected, err.Actual) +} + +type mockTxConfig struct { + legacytx.StdTxConfig + txBuilder *mockTxBuilder +} + +func (cfg mockTxConfig) NewTxBuilder() client.TxBuilder { + if cfg.txBuilder == nil { + cfg.txBuilder = &mockTxBuilder{ + TxBuilder: cfg.StdTxConfig.NewTxBuilder(), + } + } + return cfg.txBuilder +} + +type mockTxBuilder struct { + client.TxBuilder + extOptions []*types.Any +} + +func (b *mockTxBuilder) SetExtensionOptions(extOpts ...*types.Any) { + b.extOptions = extOpts +} + +func TestSetWithExtensionOptions(t *testing.T) { + cc := &CosmosProvider{PCfg: CosmosProviderConfig{ + ExtensionOptions: []provider.ExtensionOption{ + {Value: "1000000000"}, + {Value: "2000000000"}, + }, + }} + txf := tx.Factory{}. + WithChainID("chainID"). + WithTxConfig(mockTxConfig{}) + updatedTxf, err := cc.SetWithExtensionOptions(txf) + require.NoError(t, err) + txb, err := updatedTxf.BuildUnsignedTx() + require.NoError(t, err) + extOptions := txb.(*mockTxBuilder).extOptions + actualNumExtOptions := len(extOptions) + expectedNumExtOptions := len(cc.PCfg.ExtensionOptions) + require.Equal(t, expectedNumExtOptions, actualNumExtOptions) + // Check that each extension option was added with the correct type URL and value + for i, opt := range cc.PCfg.ExtensionOptions { + expectedTypeURL := "/ethermint.types.v1.ExtensionOptionDynamicFeeTx" + max, ok := sdk.NewIntFromString(opt.Value) + require.True(t, ok) + expectedValue, err := (ðermint.ExtensionOptionDynamicFeeTx{ + MaxPriorityPrice: max, + }).Marshal() + require.NoError(t, err) + actualTypeURL := extOptions[i].TypeUrl + actualValue := extOptions[i].Value + require.Equal(t, expectedTypeURL, actualTypeURL) + require.Equal(t, expectedValue, actualValue) + } +} diff --git a/relayer/chains/mock/mock_chain_processor.go b/relayer/chains/mock/mock_chain_processor.go index 4faf1fe3c..85ec8e769 100644 --- a/relayer/chains/mock/mock_chain_processor.go +++ b/relayer/chains/mock/mock_chain_processor.go @@ -170,7 +170,7 @@ func (mcp *MockChainProcessor) queryCycle(ctx context.Context, persistence *quer // mocking all channels open for channelKey := range ibcMessagesCache.PacketFlow { - channelStateCache[channelKey] = true + channelStateCache.SetOpen(channelKey, true, chantypes.NONE) } // now pass foundMessages to the path processors diff --git a/relayer/chains/mock/mock_chain_processor_test.go b/relayer/chains/mock/mock_chain_processor_test.go index 505fa87db..718826917 100644 --- a/relayer/chains/mock/mock_chain_processor_test.go +++ b/relayer/chains/mock/mock_chain_processor_test.go @@ -9,6 +9,7 @@ import ( clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + "github.com/cosmos/relayer/v2/relayer" "github.com/cosmos/relayer/v2/relayer/chains/mock" "github.com/cosmos/relayer/v2/relayer/processor" "github.com/prometheus/client_golang/prometheus/testutil" @@ -61,7 +62,8 @@ func TestMockChainAndPathProcessors(t *testing.T) { clientUpdateThresholdTime := 6 * time.Hour flushInterval := 6 * time.Hour - pathProcessor := processor.NewPathProcessor(log, pathEnd1, pathEnd2, metrics, "", clientUpdateThresholdTime, flushInterval) + pathProcessor := processor.NewPathProcessor(log, pathEnd1, pathEnd2, metrics, "", + clientUpdateThresholdTime, flushInterval, relayer.DefaultMaxMsgLength) eventProcessor := processor.NewEventProcessor(). WithChainProcessors( diff --git a/relayer/chains/penumbra/codec.go b/relayer/chains/penumbra/codec.go index 2b7c00a8a..ac075741c 100644 --- a/relayer/chains/penumbra/codec.go +++ b/relayer/chains/penumbra/codec.go @@ -10,7 +10,6 @@ import ( "github.com/cosmos/cosmos-sdk/x/auth/tx" authz "github.com/cosmos/cosmos-sdk/x/authz/module" "github.com/cosmos/cosmos-sdk/x/bank" - "github.com/cosmos/cosmos-sdk/x/capability" "github.com/cosmos/cosmos-sdk/x/crisis" "github.com/cosmos/cosmos-sdk/x/distribution" feegrant "github.com/cosmos/cosmos-sdk/x/feegrant/module" @@ -23,6 +22,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/staking" "github.com/cosmos/cosmos-sdk/x/upgrade" upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client" + "github.com/cosmos/ibc-go/modules/capability" "github.com/cosmos/ibc-go/v7/modules/apps/transfer" ibc "github.com/cosmos/ibc-go/v7/modules/core" diff --git a/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go b/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go index 2d6cf9a53..16e8fe13e 100644 --- a/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go +++ b/relayer/chains/penumbra/core/chain/v1alpha1/chain.pb.go @@ -54,7 +54,7 @@ type ChainParameters struct { // The number of blocks during which a proposal is voted on. ProposalVotingBlocks uint64 `protobuf:"varint,20,opt,name=proposal_voting_blocks,json=proposalVotingBlocks,proto3" json:"proposal_voting_blocks,omitempty"` // The deposit required to create a proposal. - ProposalDepositAmount uint64 `protobuf:"varint,21,opt,name=proposal_deposit_amount,json=proposalDepositAmount,proto3" json:"proposal_deposit_amount,omitempty"` + ProposalDepositAmount *v1alpha1.Amount `protobuf:"bytes,21,opt,name=proposal_deposit_amount,json=proposalDepositAmount,proto3" json:"proposal_deposit_amount,omitempty"` // The quorum required for a proposal to be considered valid, as a fraction of the total stake // weight of the network. ProposalValidQuorum string `protobuf:"bytes,22,opt,name=proposal_valid_quorum,json=proposalValidQuorum,proto3" json:"proposal_valid_quorum,omitempty"` @@ -191,11 +191,11 @@ func (m *ChainParameters) GetProposalVotingBlocks() uint64 { return 0 } -func (m *ChainParameters) GetProposalDepositAmount() uint64 { +func (m *ChainParameters) GetProposalDepositAmount() *v1alpha1.Amount { if m != nil { return m.ProposalDepositAmount } - return 0 + return nil } func (m *ChainParameters) GetProposalValidQuorum() string { @@ -334,77 +334,6 @@ func (m *FmdParameters) GetAsOfBlockHeight() uint64 { return 0 } -// TODO: delete with legacy code -// Information about a given asset at a given time (as specified by block -// height). Currently this only contains the total supply. -type AssetInfo struct { - AssetId *v1alpha1.AssetId `protobuf:"bytes,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` - Denom *v1alpha1.Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - AsOfBlockHeight uint64 `protobuf:"varint,3,opt,name=as_of_block_height,json=asOfBlockHeight,proto3" json:"as_of_block_height,omitempty"` - TotalSupply uint64 `protobuf:"varint,4,opt,name=total_supply,json=totalSupply,proto3" json:"total_supply,omitempty"` -} - -func (m *AssetInfo) Reset() { *m = AssetInfo{} } -func (m *AssetInfo) String() string { return proto.CompactTextString(m) } -func (*AssetInfo) ProtoMessage() {} -func (*AssetInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{3} -} -func (m *AssetInfo) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AssetInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_AssetInfo.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 *AssetInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_AssetInfo.Merge(m, src) -} -func (m *AssetInfo) XXX_Size() int { - return m.Size() -} -func (m *AssetInfo) XXX_DiscardUnknown() { - xxx_messageInfo_AssetInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_AssetInfo proto.InternalMessageInfo - -func (m *AssetInfo) GetAssetId() *v1alpha1.AssetId { - if m != nil { - return m.AssetId - } - return nil -} - -func (m *AssetInfo) GetDenom() *v1alpha1.Denom { - if m != nil { - return m.Denom - } - return nil -} - -func (m *AssetInfo) GetAsOfBlockHeight() uint64 { - if m != nil { - return m.AsOfBlockHeight - } - return 0 -} - -func (m *AssetInfo) GetTotalSupply() uint64 { - if m != nil { - return m.TotalSupply - } - return 0 -} - // Contains the minimum data needed to update client state. type CompactBlock struct { Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` @@ -430,7 +359,7 @@ func (m *CompactBlock) Reset() { *m = CompactBlock{} } func (m *CompactBlock) String() string { return proto.CompactTextString(m) } func (*CompactBlock) ProtoMessage() {} func (*CompactBlock) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{4} + return fileDescriptor_b0cedb8b84ba3224, []int{3} } func (m *CompactBlock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -534,7 +463,7 @@ func (m *StatePayload) Reset() { *m = StatePayload{} } func (m *StatePayload) String() string { return proto.CompactTextString(m) } func (*StatePayload) ProtoMessage() {} func (*StatePayload) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{5} + return fileDescriptor_b0cedb8b84ba3224, []int{4} } func (m *StatePayload) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -628,7 +557,7 @@ func (m *StatePayload_RolledUp) Reset() { *m = StatePayload_RolledUp{} } func (m *StatePayload_RolledUp) String() string { return proto.CompactTextString(m) } func (*StatePayload_RolledUp) ProtoMessage() {} func (*StatePayload_RolledUp) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{5, 0} + return fileDescriptor_b0cedb8b84ba3224, []int{4, 0} } func (m *StatePayload_RolledUp) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -673,7 +602,7 @@ func (m *StatePayload_Note) Reset() { *m = StatePayload_Note{} } func (m *StatePayload_Note) String() string { return proto.CompactTextString(m) } func (*StatePayload_Note) ProtoMessage() {} func (*StatePayload_Note) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{5, 1} + return fileDescriptor_b0cedb8b84ba3224, []int{4, 1} } func (m *StatePayload_Note) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -725,7 +654,7 @@ func (m *StatePayload_Swap) Reset() { *m = StatePayload_Swap{} } func (m *StatePayload_Swap) String() string { return proto.CompactTextString(m) } func (*StatePayload_Swap) ProtoMessage() {} func (*StatePayload_Swap) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{5, 2} + return fileDescriptor_b0cedb8b84ba3224, []int{4, 2} } func (m *StatePayload_Swap) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -769,14 +698,14 @@ func (m *StatePayload_Swap) GetSwap() *v1alpha11.SwapPayload { } type KnownAssets struct { - Assets []*v1alpha1.Asset `protobuf:"bytes,1,rep,name=assets,proto3" json:"assets,omitempty"` + Assets []*v1alpha1.DenomMetadata `protobuf:"bytes,1,rep,name=assets,proto3" json:"assets,omitempty"` } func (m *KnownAssets) Reset() { *m = KnownAssets{} } func (m *KnownAssets) String() string { return proto.CompactTextString(m) } func (*KnownAssets) ProtoMessage() {} func (*KnownAssets) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{6} + return fileDescriptor_b0cedb8b84ba3224, []int{5} } func (m *KnownAssets) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -805,7 +734,7 @@ func (m *KnownAssets) XXX_DiscardUnknown() { var xxx_messageInfo_KnownAssets proto.InternalMessageInfo -func (m *KnownAssets) GetAssets() []*v1alpha1.Asset { +func (m *KnownAssets) GetAssets() []*v1alpha1.DenomMetadata { if m != nil { return m.Assets } @@ -821,7 +750,7 @@ func (m *NoteSource) Reset() { *m = NoteSource{} } func (m *NoteSource) String() string { return proto.CompactTextString(m) } func (*NoteSource) ProtoMessage() {} func (*NoteSource) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{7} + return fileDescriptor_b0cedb8b84ba3224, []int{6} } func (m *NoteSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -867,7 +796,7 @@ func (m *SpendInfo) Reset() { *m = SpendInfo{} } func (m *SpendInfo) String() string { return proto.CompactTextString(m) } func (*SpendInfo) ProtoMessage() {} func (*SpendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{8} + return fileDescriptor_b0cedb8b84ba3224, []int{7} } func (m *SpendInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -920,7 +849,7 @@ func (m *GenesisAppState) Reset() { *m = GenesisAppState{} } func (m *GenesisAppState) String() string { return proto.CompactTextString(m) } func (*GenesisAppState) ProtoMessage() {} func (*GenesisAppState) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{9} + return fileDescriptor_b0cedb8b84ba3224, []int{8} } func (m *GenesisAppState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -980,7 +909,7 @@ func (m *GenesisAppState_Allocation) Reset() { *m = GenesisAppState_Allo func (m *GenesisAppState_Allocation) String() string { return proto.CompactTextString(m) } func (*GenesisAppState_Allocation) ProtoMessage() {} func (*GenesisAppState_Allocation) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{9, 0} + return fileDescriptor_b0cedb8b84ba3224, []int{8, 0} } func (m *GenesisAppState_Allocation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1039,7 +968,7 @@ func (m *Epoch) Reset() { *m = Epoch{} } func (m *Epoch) String() string { return proto.CompactTextString(m) } func (*Epoch) ProtoMessage() {} func (*Epoch) Descriptor() ([]byte, []int) { - return fileDescriptor_b0cedb8b84ba3224, []int{10} + return fileDescriptor_b0cedb8b84ba3224, []int{9} } func (m *Epoch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1086,7 +1015,6 @@ func init() { proto.RegisterType((*ChainParameters)(nil), "penumbra.core.chain.v1alpha1.ChainParameters") proto.RegisterType((*Ratio)(nil), "penumbra.core.chain.v1alpha1.Ratio") proto.RegisterType((*FmdParameters)(nil), "penumbra.core.chain.v1alpha1.FmdParameters") - proto.RegisterType((*AssetInfo)(nil), "penumbra.core.chain.v1alpha1.AssetInfo") proto.RegisterType((*CompactBlock)(nil), "penumbra.core.chain.v1alpha1.CompactBlock") proto.RegisterType((*StatePayload)(nil), "penumbra.core.chain.v1alpha1.StatePayload") proto.RegisterType((*StatePayload_RolledUp)(nil), "penumbra.core.chain.v1alpha1.StatePayload.RolledUp") @@ -1105,105 +1033,101 @@ func init() { } var fileDescriptor_b0cedb8b84ba3224 = []byte{ - // 1553 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x5b, 0x6f, 0x23, 0x49, - 0x15, 0x8e, 0x73, 0xf7, 0xb1, 0x93, 0x0c, 0xb5, 0x73, 0xe9, 0x09, 0x21, 0x93, 0xb5, 0x76, 0xc0, - 0x33, 0x2b, 0x6c, 0x36, 0xbb, 0x82, 0x95, 0x97, 0x45, 0x93, 0xcb, 0x90, 0x19, 0xed, 0xce, 0xac, - 0xb7, 0xb2, 0x04, 0x34, 0x8a, 0xd4, 0x2a, 0x77, 0x57, 0xe2, 0xd2, 0x74, 0x57, 0x35, 0x5d, 0xd5, - 0xb9, 0xbc, 0x83, 0xc4, 0x23, 0xbf, 0x01, 0xde, 0x78, 0x40, 0xe2, 0x5f, 0x20, 0x24, 0xa4, 0x7d, - 0x44, 0x3c, 0xa1, 0xcc, 0x1b, 0x4f, 0xfc, 0x04, 0x54, 0xa7, 0xfa, 0x62, 0x9b, 0xc5, 0x99, 0x20, - 0xde, 0x5c, 0xe7, 0x7c, 0xdf, 0x57, 0xa7, 0x4e, 0xd5, 0x39, 0xa7, 0x0d, 0xed, 0x84, 0xcb, 0x2c, - 0x1e, 0xa4, 0xac, 0x1b, 0xa8, 0x94, 0x77, 0x83, 0x21, 0x13, 0xb2, 0x7b, 0xf6, 0x01, 0x8b, 0x92, - 0x21, 0xfb, 0xc0, 0x2d, 0x3b, 0x49, 0xaa, 0x8c, 0x22, 0x1b, 0x05, 0xb2, 0x63, 0x91, 0x1d, 0xe7, - 0x2a, 0x90, 0xeb, 0x8f, 0x27, 0x74, 0xd2, 0xcb, 0xc4, 0xa8, 0x11, 0x21, 0x5c, 0x3b, 0xa5, 0xf5, - 0x89, 0x3d, 0xb5, 0x61, 0xaf, 0x79, 0x05, 0xc5, 0x65, 0x8e, 0x7c, 0x6f, 0x1c, 0x19, 0xf2, 0x8b, - 0x0a, 0x17, 0xf2, 0x0b, 0x87, 0x6a, 0xfd, 0x75, 0x09, 0xd6, 0xf6, 0x6c, 0x38, 0x7d, 0x96, 0xb2, - 0x98, 0x1b, 0x9e, 0x6a, 0x72, 0x1f, 0x96, 0x31, 0x42, 0x5f, 0x84, 0x5e, 0x6d, 0xab, 0xd6, 0xae, - 0xd3, 0x25, 0x5c, 0x3f, 0x0f, 0xc9, 0x43, 0x58, 0xe5, 0x89, 0x0a, 0x86, 0x7e, 0x98, 0xa5, 0xcc, - 0x08, 0x25, 0xbd, 0xd9, 0xad, 0x5a, 0x7b, 0x9e, 0xae, 0xa0, 0x75, 0x3f, 0x37, 0x92, 0x47, 0x70, - 0x2b, 0x93, 0x03, 0x25, 0x43, 0x21, 0x4f, 0x7d, 0x74, 0x69, 0x6f, 0x0e, 0x81, 0x6b, 0xa5, 0xfd, - 0x29, 0x9a, 0xc9, 0x47, 0x70, 0x97, 0x05, 0x46, 0x9c, 0x71, 0xff, 0x8c, 0x45, 0x22, 0x64, 0x46, - 0xa5, 0x7e, 0x24, 0x62, 0x61, 0xbc, 0x79, 0x24, 0xdc, 0x76, 0xde, 0xa3, 0xc2, 0xf9, 0xb9, 0xf5, - 0x91, 0x36, 0xdc, 0x1a, 0x30, 0xcd, 0xfd, 0x94, 0x9f, 0xb3, 0x34, 0xf4, 0x53, 0x66, 0xb8, 0x57, - 0x47, 0xfc, 0xaa, 0xb5, 0x53, 0x34, 0x53, 0x66, 0x38, 0x79, 0x02, 0x1b, 0x3a, 0x62, 0x7a, 0x68, - 0x23, 0x49, 0xb8, 0x64, 0x91, 0xb9, 0xf4, 0x63, 0xa1, 0x07, 0x7c, 0xc8, 0xce, 0x84, 0x4a, 0xbd, - 0x05, 0x64, 0xad, 0x17, 0x98, 0xbe, 0x83, 0xbc, 0xa8, 0x10, 0xa4, 0x07, 0xf7, 0xff, 0x43, 0x21, - 0x54, 0xe7, 0xd2, 0x88, 0x98, 0x7b, 0x80, 0xf4, 0x7b, 0x13, 0xf4, 0xfd, 0xdc, 0x4d, 0x7e, 0x04, - 0x9e, 0x16, 0xa7, 0x92, 0x87, 0xfe, 0x20, 0x52, 0xc1, 0x6b, 0xed, 0x9f, 0x0b, 0x19, 0xaa, 0x73, - 0x3f, 0xe2, 0xd2, 0x6b, 0x20, 0xf5, 0x8e, 0xf3, 0xef, 0xa2, 0xfb, 0xe7, 0xe8, 0xfd, 0x9c, 0x4b, - 0xb2, 0x0d, 0x77, 0x62, 0xa1, 0x75, 0x45, 0x8c, 0xd9, 0x85, 0x88, 0xb3, 0xd8, 0x6b, 0x22, 0xeb, - 0x1d, 0xe7, 0x74, 0xac, 0x17, 0xce, 0x45, 0x1e, 0x40, 0x43, 0x0c, 0x02, 0x9f, 0x4b, 0x36, 0x88, - 0x78, 0xe8, 0x2d, 0x6e, 0xd5, 0xda, 0xcb, 0x14, 0xc4, 0x20, 0x78, 0xea, 0x2c, 0xe4, 0x29, 0x3c, - 0x10, 0x72, 0xa0, 0x32, 0x19, 0xfa, 0x22, 0xd0, 0xdb, 0x3f, 0xf0, 0x4d, 0xca, 0xa4, 0x3e, 0xe1, - 0xa9, 0x2e, 0x49, 0x4b, 0x48, 0xda, 0xc8, 0x61, 0xcf, 0x2d, 0xea, 0xab, 0x02, 0x54, 0xc8, 0x1c, - 0xc0, 0x96, 0xca, 0xcc, 0x74, 0x9d, 0x65, 0xd4, 0xf9, 0x4e, 0x81, 0xfb, 0x66, 0xa1, 0x8f, 0xe0, - 0x6e, 0x92, 0xaa, 0x44, 0x69, 0x16, 0xf9, 0x67, 0xca, 0xd8, 0x04, 0xbb, 0xd3, 0x7a, 0xb7, 0xdd, - 0xdd, 0x17, 0xde, 0x23, 0x74, 0xba, 0xd3, 0x92, 0x1f, 0xc2, 0xbd, 0x92, 0x15, 0xf2, 0x44, 0x69, - 0x61, 0x7c, 0x16, 0xab, 0x4c, 0x1a, 0xef, 0x8e, 0x4b, 0x69, 0xe1, 0xde, 0x77, 0xde, 0x1d, 0x74, - 0xda, 0x94, 0x56, 0xbb, 0xd9, 0xe7, 0xe4, 0xff, 0x32, 0x53, 0x69, 0x16, 0x7b, 0x77, 0xf1, 0x8d, - 0xbf, 0x53, 0x6e, 0x66, 0x7d, 0x5f, 0xa2, 0x6b, 0x6c, 0xaf, 0x84, 0x69, 0xed, 0x9b, 0x61, 0xca, - 0xf5, 0x50, 0x45, 0xa1, 0x77, 0x0f, 0x59, 0xa5, 0x64, 0x9f, 0x69, 0xfd, 0x55, 0xe1, 0x24, 0x1f, - 0x83, 0x57, 0xf2, 0xf0, 0x6d, 0x8c, 0x10, 0x3d, 0x24, 0x96, 0x27, 0x3f, 0xb4, 0xee, 0x8a, 0xf9, - 0x29, 0x7c, 0x3b, 0x64, 0xca, 0xd7, 0x09, 0x97, 0xa1, 0x5f, 0x60, 0xaa, 0xbc, 0xde, 0xc7, 0xbc, - 0x7a, 0x21, 0x53, 0x87, 0x16, 0xd1, 0x2f, 0x00, 0x79, 0x4a, 0x5b, 0x07, 0xb0, 0x40, 0x6d, 0x0d, - 0x92, 0x0d, 0xa8, 0xcb, 0x2c, 0xe6, 0xa9, 0xad, 0x19, 0xac, 0xe2, 0x79, 0x5a, 0x19, 0xc8, 0x16, - 0x34, 0x42, 0x2e, 0x55, 0x2c, 0x24, 0xfa, 0x5d, 0x11, 0x8f, 0x9a, 0x5a, 0x01, 0xac, 0xfc, 0x34, - 0x0e, 0x47, 0xba, 0xc2, 0x43, 0x58, 0x4d, 0x52, 0x1e, 0x08, 0x2d, 0x94, 0xf4, 0x07, 0xc2, 0x68, - 0x54, 0x5d, 0xa1, 0x2b, 0xa5, 0x75, 0x57, 0x18, 0x4d, 0xde, 0x07, 0xc2, 0xb4, 0xaf, 0x4e, 0xdc, - 0x4d, 0xfa, 0x43, 0x2e, 0x4e, 0x87, 0x26, 0xdf, 0x60, 0x8d, 0xe9, 0x2f, 0x4e, 0xf0, 0x16, 0x9f, - 0xa1, 0xb9, 0xf5, 0xf7, 0x1a, 0xd4, 0x77, 0xb4, 0xe6, 0xe6, 0xb9, 0x3c, 0x51, 0x64, 0x07, 0x96, - 0x99, 0x5d, 0x14, 0x7d, 0xa7, 0xb1, 0xfd, 0xdd, 0xce, 0x44, 0xe3, 0x74, 0xad, 0xb0, 0xe8, 0x63, - 0x1d, 0xc7, 0x0d, 0xe9, 0x12, 0x73, 0x3f, 0x48, 0x0f, 0x16, 0xf0, 0x10, 0xb8, 0x61, 0x63, 0xfb, - 0xbd, 0x6b, 0xf8, 0xfb, 0x16, 0x4b, 0x1d, 0xe5, 0xbf, 0x44, 0x3e, 0xf7, 0x8d, 0x91, 0x93, 0x77, - 0xa1, 0x69, 0x94, 0xb1, 0xb7, 0x9b, 0x25, 0x49, 0x74, 0x99, 0x37, 0xab, 0x06, 0xda, 0x0e, 0xd1, - 0xd4, 0xfa, 0xd5, 0x02, 0x34, 0xf7, 0x54, 0x9c, 0xb0, 0xc0, 0x20, 0x93, 0xdc, 0x85, 0xc5, 0x5c, - 0xd4, 0xdd, 0x47, 0xbe, 0x22, 0x5f, 0xc2, 0xaa, 0x36, 0xcc, 0x70, 0x3f, 0x61, 0x97, 0x91, 0x62, - 0xa1, 0xf6, 0x66, 0xb7, 0xe6, 0xda, 0x8d, 0xed, 0xc7, 0x9d, 0x69, 0x63, 0xa3, 0x73, 0x68, 0x39, - 0x7d, 0x47, 0xa1, 0x2b, 0x7a, 0x64, 0xa5, 0xc9, 0x33, 0x00, 0x99, 0x45, 0x91, 0x38, 0x11, 0x3c, - 0xb5, 0xad, 0xd7, 0xca, 0xb5, 0xaf, 0x49, 0xc6, 0xcb, 0x82, 0x40, 0x47, 0xb8, 0x56, 0xc9, 0xe5, - 0x23, 0x55, 0xca, 0xf5, 0xe4, 0xc6, 0xf6, 0xa3, 0x6b, 0x94, 0x5e, 0xf0, 0xf4, 0x75, 0xc4, 0xa9, - 0x52, 0x86, 0xd6, 0x91, 0x6c, 0x7f, 0x5a, 0x25, 0x37, 0x3b, 0x50, 0xe9, 0x5b, 0x37, 0x56, 0x42, - 0x32, 0x2a, 0x3d, 0x82, 0x5b, 0x55, 0x75, 0x19, 0x96, 0x1a, 0x1e, 0x62, 0xc7, 0x58, 0xa6, 0x6b, - 0x65, 0x55, 0x39, 0x33, 0xa1, 0xb0, 0x7a, 0x12, 0x87, 0x7e, 0x52, 0xbe, 0x63, 0x2f, 0xc4, 0x8d, - 0xdf, 0x9f, 0x9e, 0xdb, 0xb1, 0xa7, 0x4f, 0x57, 0x4e, 0xc6, 0x2a, 0x81, 0x42, 0x53, 0x9f, 0xb3, - 0xc4, 0x57, 0x99, 0x49, 0x32, 0xa3, 0xbd, 0x05, 0x4c, 0x6f, 0x77, 0x42, 0xd1, 0xce, 0xd8, 0x52, - 0x6f, 0x97, 0x99, 0x60, 0x78, 0x78, 0xce, 0x92, 0x2f, 0x90, 0xb3, 0xcf, 0x0c, 0xa3, 0x0d, 0x5d, - 0xae, 0x35, 0xf9, 0x05, 0xdc, 0x72, 0x33, 0x77, 0x24, 0xd2, 0x45, 0x8c, 0xf4, 0xfb, 0xd3, 0x23, - 0x9d, 0x18, 0xde, 0x74, 0x2d, 0x18, 0x37, 0xb4, 0xfe, 0x35, 0x0f, 0xcd, 0xd1, 0xa7, 0x42, 0x28, - 0xd4, 0x53, 0x15, 0x45, 0x3c, 0xf4, 0xb3, 0x24, 0xaf, 0xb3, 0x0f, 0xdf, 0xfe, 0xa5, 0x75, 0x28, - 0x72, 0x7f, 0x96, 0x3c, 0x9b, 0xa1, 0xcb, 0x69, 0xfe, 0x9b, 0x3c, 0x85, 0x79, 0xa9, 0x0c, 0xcf, - 0xcb, 0xae, 0x7b, 0x03, 0xb9, 0x97, 0xca, 0xf0, 0x67, 0x33, 0x14, 0xe9, 0x56, 0xc6, 0x26, 0x05, - 0x8b, 0xee, 0x66, 0x32, 0x36, 0xb7, 0x56, 0xc6, 0xd2, 0xd7, 0x5f, 0xc1, 0x72, 0x11, 0x25, 0x79, - 0x09, 0x10, 0xa8, 0x38, 0x16, 0x26, 0xe6, 0xd2, 0xe4, 0xc7, 0xed, 0x5c, 0xf3, 0xea, 0x50, 0x79, - 0xaf, 0x64, 0xd1, 0x11, 0x85, 0xf5, 0xdf, 0xd4, 0x60, 0xde, 0xc6, 0x4c, 0x9e, 0xc0, 0xa2, 0x56, - 0x59, 0x1a, 0xf0, 0x5c, 0xb4, 0x3d, 0x3d, 0x5a, 0xcb, 0x39, 0x44, 0x3c, 0xcd, 0x79, 0xe4, 0x27, - 0x63, 0x49, 0x7b, 0x7c, 0x5d, 0x79, 0xaa, 0xaa, 0xda, 0x91, 0xb7, 0xfe, 0xeb, 0x1a, 0xcc, 0xdb, - 0x73, 0xff, 0x1f, 0x42, 0xf9, 0x24, 0x4f, 0xbc, 0x0b, 0xe5, 0x7b, 0xd3, 0x9e, 0xb2, 0xdd, 0xb1, - 0x8c, 0xc3, 0x92, 0x76, 0xd7, 0x60, 0x65, 0xac, 0x7f, 0xb5, 0x3e, 0x83, 0xc6, 0x67, 0x52, 0x9d, - 0x4b, 0x6c, 0xcf, 0x9a, 0xfc, 0x18, 0x16, 0xb1, 0x3f, 0xdb, 0x89, 0x31, 0xf7, 0x16, 0x5d, 0x19, - 0x69, 0x34, 0xe7, 0xb4, 0x5a, 0x00, 0x55, 0xc0, 0xe4, 0x36, 0x2c, 0x08, 0x29, 0xb9, 0x1b, 0x69, - 0x4d, 0xea, 0x16, 0xad, 0x4b, 0xa8, 0xe3, 0x38, 0xc4, 0x31, 0xf2, 0x1c, 0x1a, 0x36, 0x3d, 0xfe, - 0xff, 0x98, 0x12, 0x90, 0xd5, 0x6e, 0xef, 0x42, 0xd3, 0x0d, 0xe2, 0xb1, 0x31, 0xd6, 0x40, 0x5b, - 0x3e, 0xc2, 0xfe, 0x38, 0x07, 0x6b, 0x07, 0x5c, 0x72, 0x2d, 0xf4, 0x4e, 0x92, 0xe0, 0xcb, 0x21, - 0x7d, 0x68, 0x8e, 0x14, 0xb3, 0xce, 0x43, 0xb8, 0x61, 0x21, 0x37, 0xaa, 0x42, 0xd6, 0xe4, 0x00, - 0xa0, 0xfc, 0x3c, 0x2e, 0xc6, 0xc3, 0xe4, 0x2d, 0xb9, 0x8f, 0xff, 0x52, 0xaf, 0xfc, 0x62, 0xa6, - 0x23, 0x54, 0xf2, 0x0a, 0x1a, 0x2c, 0x8a, 0x54, 0x80, 0xdf, 0xe9, 0xc5, 0x64, 0xf8, 0x78, 0x7a, - 0x64, 0x13, 0xc7, 0xeb, 0xec, 0x94, 0x02, 0x74, 0x54, 0x6c, 0xfd, 0xf7, 0x35, 0x80, 0xca, 0x47, - 0x3e, 0x85, 0xc5, 0xfc, 0xb3, 0xcc, 0x9d, 0xff, 0xe1, 0x75, 0xd7, 0x8e, 0x60, 0x9a, 0x93, 0xec, - 0x4d, 0x57, 0xa3, 0xbc, 0x5e, 0x0c, 0xe9, 0x27, 0xb0, 0xc4, 0xc2, 0x30, 0xe5, 0x5a, 0xe7, 0x4d, - 0xe2, 0xda, 0x4f, 0x04, 0x87, 0xa6, 0x05, 0xad, 0xf5, 0x04, 0x16, 0xf0, 0xaf, 0x87, 0x7b, 0x4a, - 0x21, 0xbf, 0xc8, 0xa7, 0xb1, 0x5b, 0xe0, 0x95, 0xdb, 0xd9, 0x31, 0x79, 0xe5, 0xd6, 0xe6, 0xae, - 0x7c, 0xf7, 0x4f, 0xb3, 0x7f, 0xbe, 0xda, 0xac, 0x7d, 0x7d, 0xb5, 0x59, 0xfb, 0xc7, 0xd5, 0x66, - 0xed, 0xb7, 0x6f, 0x36, 0x67, 0xbe, 0x7e, 0xb3, 0x39, 0xf3, 0xb7, 0x37, 0x9b, 0x33, 0xb0, 0x15, - 0xa8, 0x78, 0x6a, 0x32, 0x77, 0xc1, 0xdd, 0xb3, 0xfd, 0xf3, 0xd5, 0xaf, 0xbd, 0x3a, 0x3a, 0x15, - 0x66, 0x98, 0x0d, 0x3a, 0x81, 0x8a, 0xbb, 0x81, 0xd2, 0xb1, 0xd2, 0xdd, 0x94, 0x47, 0xec, 0x92, - 0xa7, 0xdd, 0xb3, 0xed, 0xf2, 0x27, 0x4a, 0xe8, 0xee, 0xb4, 0xbf, 0x9b, 0x9f, 0xe0, 0xb2, 0x58, - 0xfd, 0x6e, 0x76, 0xae, 0xbf, 0xb7, 0xf7, 0x87, 0xd9, 0x8d, 0x7e, 0x11, 0xca, 0x9e, 0x0d, 0x05, - 0xb7, 0xee, 0x1c, 0xe5, 0xa0, 0xbf, 0x54, 0xee, 0x63, 0xeb, 0x3e, 0x46, 0xf7, 0x71, 0xe1, 0xbe, - 0x9a, 0x6d, 0x4f, 0x73, 0x1f, 0x1f, 0xf4, 0x77, 0x5f, 0x70, 0xc3, 0x42, 0x66, 0xd8, 0x3f, 0x67, - 0x1f, 0x14, 0xd0, 0x5e, 0xcf, 0x62, 0x7b, 0x3d, 0x04, 0xf7, 0x7a, 0x05, 0x7a, 0xb0, 0x88, 0x7f, - 0x37, 0x3f, 0xfc, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaf, 0xae, 0x76, 0x40, 0x34, 0x0f, 0x00, - 0x00, + // 1498 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x6f, 0x1c, 0xc7, + 0x11, 0xe6, 0xf2, 0xcd, 0x5a, 0xbe, 0xd2, 0x12, 0xa9, 0x11, 0xc3, 0x50, 0x9b, 0x45, 0x94, 0xac, + 0xa4, 0x64, 0x37, 0xa2, 0x84, 0x44, 0xa0, 0xa0, 0x80, 0xcf, 0x90, 0x44, 0x44, 0x69, 0x35, 0x54, + 0x98, 0x40, 0x60, 0x30, 0xe8, 0x9d, 0x69, 0x72, 0x1b, 0x9a, 0xe9, 0x9e, 0x4c, 0xf7, 0xf0, 0x71, + 0x4f, 0x00, 0x1f, 0xfd, 0x1b, 0xec, 0x9b, 0x0f, 0x06, 0xfc, 0x2f, 0x0c, 0x9f, 0x74, 0xf4, 0xd1, + 0xa0, 0x6e, 0x3e, 0xf9, 0xe0, 0x1f, 0x60, 0x74, 0xf5, 0xcc, 0xec, 0x72, 0x65, 0x2c, 0x4d, 0xc3, + 0xb7, 0xe9, 0xaa, 0xef, 0xfb, 0xba, 0xba, 0xba, 0xaa, 0xbb, 0x07, 0x6a, 0x31, 0x13, 0x69, 0xd4, + 0x4a, 0x68, 0xc3, 0x97, 0x09, 0x6b, 0xf8, 0x6d, 0xca, 0x45, 0xe3, 0xe4, 0x21, 0x0d, 0xe3, 0x36, + 0x7d, 0x68, 0x87, 0xf5, 0x38, 0x91, 0x5a, 0x92, 0xc5, 0x1c, 0x59, 0x37, 0xc8, 0xba, 0x75, 0xe5, + 0xc8, 0x85, 0xfb, 0x3d, 0x3a, 0xc9, 0x79, 0xac, 0x65, 0x97, 0x10, 0x8e, 0xad, 0xd2, 0x42, 0xcf, + 0x9c, 0x4a, 0xd3, 0xb7, 0xac, 0x03, 0xc5, 0x61, 0x86, 0xfc, 0xdd, 0x65, 0x64, 0xc0, 0xce, 0x3a, + 0xb8, 0x80, 0x9d, 0x59, 0x54, 0xf5, 0xfb, 0x31, 0x98, 0xd9, 0x30, 0xe1, 0x34, 0x69, 0x42, 0x23, + 0xa6, 0x59, 0xa2, 0xc8, 0x6d, 0x18, 0xc7, 0x08, 0x3d, 0x1e, 0x38, 0xa5, 0x4a, 0xa9, 0x36, 0xe1, + 0x8e, 0xe1, 0x78, 0x37, 0x20, 0x77, 0x61, 0x9a, 0xc5, 0xd2, 0x6f, 0x7b, 0x41, 0x9a, 0x50, 0xcd, + 0xa5, 0x70, 0x06, 0x2b, 0xa5, 0xda, 0xb0, 0x3b, 0x85, 0xd6, 0xcd, 0xcc, 0x48, 0xee, 0xc1, 0x6c, + 0x2a, 0x5a, 0x52, 0x04, 0x5c, 0x1c, 0x7b, 0xe8, 0x52, 0xce, 0x10, 0x02, 0x67, 0x0a, 0xfb, 0x16, + 0x9a, 0xc9, 0x63, 0x98, 0xa7, 0xbe, 0xe6, 0x27, 0xcc, 0x3b, 0xa1, 0x21, 0x0f, 0xa8, 0x96, 0x89, + 0x17, 0xf2, 0x88, 0x6b, 0x67, 0x18, 0x09, 0x37, 0xad, 0xf7, 0x20, 0x77, 0x3e, 0x37, 0x3e, 0x52, + 0x83, 0xd9, 0x16, 0x55, 0xcc, 0x4b, 0xd8, 0x29, 0x4d, 0x02, 0x2f, 0xa1, 0x9a, 0x39, 0x13, 0x88, + 0x9f, 0x36, 0x76, 0x17, 0xcd, 0x2e, 0xd5, 0x8c, 0xac, 0xc2, 0xa2, 0x0a, 0xa9, 0x6a, 0x9b, 0x48, + 0x62, 0x26, 0x68, 0xa8, 0xcf, 0xbd, 0x88, 0xab, 0x16, 0x6b, 0xd3, 0x13, 0x2e, 0x13, 0x67, 0x04, + 0x59, 0x0b, 0x39, 0xa6, 0x69, 0x21, 0x7b, 0x1d, 0x04, 0x59, 0x81, 0xdb, 0x1f, 0x28, 0x04, 0xf2, + 0x54, 0x68, 0x1e, 0x31, 0x07, 0x90, 0x7e, 0xab, 0x87, 0xbe, 0x99, 0xb9, 0xc9, 0x5f, 0xc1, 0x51, + 0xfc, 0x58, 0xb0, 0xc0, 0x6b, 0x85, 0xd2, 0x7f, 0xab, 0xbc, 0x53, 0x2e, 0x02, 0x79, 0xea, 0x85, + 0x4c, 0x38, 0x65, 0xa4, 0xce, 0x59, 0xff, 0x3a, 0xba, 0xff, 0x85, 0xde, 0xe7, 0x4c, 0x90, 0x65, + 0x98, 0x8b, 0xb8, 0x52, 0x1d, 0x62, 0x44, 0xcf, 0x78, 0x94, 0x46, 0xce, 0x24, 0xb2, 0x6e, 0x58, + 0xa7, 0x65, 0xed, 0x59, 0x17, 0xb9, 0x03, 0x65, 0xde, 0xf2, 0x3d, 0x26, 0x68, 0x2b, 0x64, 0x81, + 0x33, 0x5a, 0x29, 0xd5, 0xc6, 0x5d, 0xe0, 0x2d, 0x7f, 0xcb, 0x5a, 0xc8, 0x16, 0xdc, 0xe1, 0xa2, + 0x25, 0x53, 0x11, 0x78, 0xdc, 0x57, 0xcb, 0x7f, 0xf6, 0x74, 0x42, 0x85, 0x3a, 0x62, 0x89, 0x2a, + 0x48, 0x63, 0x48, 0x5a, 0xcc, 0x60, 0xbb, 0x06, 0xf5, 0x3a, 0x07, 0xe5, 0x32, 0xdb, 0x50, 0x91, + 0xa9, 0xee, 0xaf, 0x33, 0x8e, 0x3a, 0xbf, 0xc9, 0x71, 0x3f, 0x2e, 0xf4, 0x18, 0xe6, 0xe3, 0x44, + 0xc6, 0x52, 0xd1, 0xd0, 0x3b, 0x91, 0xda, 0x24, 0xd8, 0xae, 0xd6, 0xb9, 0x69, 0xf7, 0x3e, 0xf7, + 0x1e, 0xa0, 0xd3, 0xae, 0x96, 0xfc, 0x07, 0x6e, 0x15, 0xac, 0x80, 0xc5, 0x52, 0x71, 0xed, 0xd1, + 0x48, 0xa6, 0x42, 0x3b, 0x73, 0x95, 0x52, 0xad, 0xbc, 0x7c, 0xb7, 0xde, 0xd3, 0x6e, 0xb6, 0x81, + 0xf2, 0xea, 0xaf, 0xaf, 0x21, 0xd8, 0x9d, 0xcb, 0x55, 0x36, 0xad, 0x88, 0x35, 0x9b, 0xcc, 0x77, + 0x82, 0x32, 0x55, 0xe7, 0xfd, 0x37, 0x95, 0x49, 0x1a, 0x39, 0xf3, 0xd8, 0x0a, 0x37, 0x8a, 0x98, + 0x8c, 0xef, 0x15, 0xba, 0xc8, 0x5f, 0xba, 0x42, 0x8a, 0xa9, 0x52, 0x9e, 0x6e, 0x27, 0x4c, 0xb5, + 0x65, 0x18, 0x38, 0xb7, 0x90, 0x55, 0x48, 0x36, 0xa9, 0x52, 0xaf, 0x73, 0x27, 0x79, 0x02, 0x4e, + 0xc1, 0xc3, 0x12, 0xea, 0x22, 0x3a, 0x48, 0x2c, 0x12, 0xb4, 0x6f, 0xdc, 0x1d, 0xe6, 0x33, 0xf8, + 0x75, 0x40, 0xa5, 0xa7, 0x62, 0x26, 0x02, 0x2f, 0xc7, 0x74, 0xd2, 0x7f, 0x1b, 0xd3, 0xef, 0x04, + 0x54, 0xee, 0x1b, 0x44, 0x33, 0x07, 0x64, 0x99, 0xaf, 0x6e, 0xc3, 0x88, 0x6b, 0x5a, 0x95, 0x2c, + 0xc2, 0x84, 0x48, 0x23, 0x96, 0x98, 0xd6, 0xc2, 0x66, 0x1f, 0x76, 0x3b, 0x06, 0x52, 0x81, 0x72, + 0xc0, 0x84, 0x8c, 0xb8, 0x40, 0xbf, 0xed, 0xf5, 0x6e, 0x53, 0xd5, 0x87, 0xa9, 0xbf, 0x47, 0x41, + 0xd7, 0xe1, 0x71, 0x17, 0xa6, 0xe3, 0x84, 0xf9, 0x5c, 0x71, 0x29, 0xbc, 0x16, 0xd7, 0x0a, 0x55, + 0xa7, 0xdc, 0xa9, 0xc2, 0xba, 0xce, 0xb5, 0x22, 0x0f, 0x80, 0x50, 0xe5, 0xc9, 0x23, 0xbb, 0xe1, + 0x5e, 0x9b, 0xf1, 0xe3, 0xb6, 0xce, 0x26, 0x98, 0xa1, 0xea, 0xe5, 0x11, 0x6e, 0xf6, 0x0e, 0x9a, + 0xab, 0xff, 0x1b, 0x81, 0xc9, 0x0d, 0x19, 0xc5, 0xd4, 0xd7, 0x68, 0x26, 0xf3, 0x30, 0x9a, 0x31, + 0x6c, 0xc8, 0xd9, 0x88, 0xbc, 0x82, 0x69, 0xa5, 0xa9, 0x66, 0x5e, 0x4c, 0xcf, 0x43, 0x49, 0x03, + 0xe5, 0x0c, 0x56, 0x86, 0x6a, 0xe5, 0xe5, 0xfb, 0xf5, 0x7e, 0x07, 0x70, 0x7d, 0xdf, 0x70, 0x9a, + 0x96, 0xe2, 0x4e, 0xa9, 0xae, 0x91, 0x22, 0x3b, 0x00, 0x22, 0x0d, 0x43, 0x7e, 0xc4, 0x59, 0x62, + 0x0e, 0x31, 0x23, 0x57, 0xbb, 0xa2, 0xc0, 0x5e, 0xe4, 0x04, 0xb7, 0x8b, 0x6b, 0x94, 0xec, 0x62, + 0x13, 0x29, 0xed, 0xe9, 0x56, 0x5e, 0xbe, 0x77, 0x85, 0xd2, 0x1e, 0x4b, 0xde, 0x86, 0xcc, 0x95, + 0x52, 0xbb, 0x13, 0x48, 0x36, 0x9f, 0x46, 0xc9, 0x9e, 0xc2, 0xa8, 0xf4, 0xab, 0x6b, 0x2b, 0x21, + 0x19, 0x95, 0xee, 0xc1, 0x6c, 0xa7, 0x00, 0x35, 0x4d, 0x34, 0x0b, 0xb0, 0xf7, 0xc6, 0xdd, 0x99, + 0xa2, 0xf0, 0xac, 0x99, 0xb8, 0x30, 0x7d, 0x14, 0x05, 0x5e, 0x5c, 0x6c, 0xb5, 0x13, 0xe0, 0xc4, + 0x0f, 0xfa, 0xe7, 0xf6, 0x52, 0x75, 0xb8, 0x53, 0x47, 0x97, 0x8a, 0xc5, 0x85, 0x49, 0x75, 0x4a, + 0x63, 0x4f, 0xa6, 0x3a, 0x4e, 0xb5, 0x72, 0x46, 0x30, 0xbd, 0x8d, 0x1e, 0x45, 0x73, 0x5b, 0x15, + 0x7a, 0xeb, 0x54, 0xfb, 0xed, 0xfd, 0x53, 0x1a, 0xbf, 0x44, 0xce, 0x26, 0xd5, 0xd4, 0x2d, 0xab, + 0x62, 0xac, 0xc8, 0xbf, 0x61, 0xd6, 0xde, 0x5e, 0x5d, 0x91, 0x8e, 0x62, 0xa4, 0x7f, 0xea, 0x1f, + 0x69, 0xcf, 0x35, 0xe8, 0xce, 0xf8, 0x97, 0x0d, 0xd5, 0xef, 0x86, 0x61, 0xb2, 0xbb, 0x54, 0x88, + 0x0b, 0x13, 0x89, 0x0c, 0x43, 0x16, 0x78, 0x69, 0x8c, 0x95, 0x58, 0x5e, 0x7e, 0xf4, 0xd3, 0x2b, + 0xad, 0xee, 0x22, 0xf7, 0x9f, 0xf1, 0xce, 0x80, 0x3b, 0x9e, 0x64, 0xdf, 0x64, 0x0b, 0x86, 0x85, + 0xd4, 0x0c, 0x5b, 0xe1, 0xc3, 0x54, 0xf4, 0x93, 0x7b, 0x21, 0x35, 0xdb, 0x19, 0x70, 0x91, 0x6e, + 0x64, 0x4c, 0x52, 0xf0, 0xd6, 0xbd, 0x9e, 0x8c, 0xc9, 0xad, 0x91, 0x31, 0xf4, 0x85, 0x37, 0x30, + 0x9e, 0x47, 0x49, 0x5e, 0x00, 0xf8, 0x32, 0x8a, 0xb8, 0x8e, 0x98, 0xd0, 0xd9, 0x72, 0xeb, 0x57, + 0x54, 0x1d, 0x2a, 0x6f, 0x14, 0x2c, 0xb7, 0x4b, 0x61, 0xe1, 0xa3, 0x12, 0x0c, 0x9b, 0x98, 0xc9, + 0x2a, 0x8c, 0x2a, 0x99, 0x26, 0x3e, 0xcb, 0x44, 0x6b, 0xfd, 0xa3, 0x35, 0x9c, 0x7d, 0xc4, 0xbb, + 0x19, 0x8f, 0xfc, 0xed, 0x52, 0xd2, 0xee, 0x5f, 0xd5, 0x9e, 0xb2, 0xd3, 0xed, 0xc8, 0x5b, 0xf8, + 0x7f, 0x09, 0x86, 0xcd, 0xba, 0x7f, 0x81, 0x50, 0x9e, 0x66, 0x89, 0xb7, 0xa1, 0xfc, 0xa1, 0x5f, + 0x29, 0x9b, 0x19, 0x8b, 0x38, 0x0c, 0x69, 0x7d, 0x06, 0xa6, 0x2e, 0x9d, 0x5f, 0xd5, 0x7d, 0x28, + 0xff, 0x43, 0xc8, 0x53, 0xb1, 0xa6, 0x14, 0xd3, 0x8a, 0x6c, 0xc2, 0x28, 0xc5, 0x2f, 0xa7, 0x84, + 0x9d, 0xf2, 0xc7, 0x2b, 0x56, 0xba, 0x69, 0x4e, 0xea, 0x3d, 0xa6, 0x69, 0x60, 0xda, 0x24, 0xe3, + 0x56, 0xab, 0x00, 0x9d, 0xc0, 0xc9, 0x4d, 0x18, 0xe1, 0x42, 0x30, 0x7b, 0xfa, 0x4f, 0xba, 0x76, + 0x50, 0x3d, 0x87, 0x09, 0xbc, 0x39, 0x76, 0xc5, 0x91, 0x24, 0xbb, 0x50, 0x36, 0x69, 0xf2, 0x7e, + 0x66, 0x6a, 0x40, 0x74, 0x66, 0xfb, 0x2d, 0x4c, 0xda, 0x3b, 0xeb, 0xd2, 0x89, 0x5f, 0x46, 0x5b, + 0x76, 0xda, 0x7f, 0x3e, 0x04, 0x33, 0xdb, 0x4c, 0x30, 0xc5, 0xd5, 0x5a, 0x1c, 0x63, 0x05, 0x91, + 0x26, 0x4c, 0x76, 0x35, 0xb5, 0xca, 0x42, 0xb8, 0x66, 0x43, 0x97, 0x3b, 0x0d, 0xad, 0xc8, 0x36, + 0x40, 0xf1, 0xe0, 0xcc, 0xaf, 0x89, 0xde, 0xdd, 0xb2, 0xcf, 0xe9, 0x42, 0xaf, 0x78, 0x83, 0xba, + 0x5d, 0x54, 0xf2, 0x06, 0xca, 0x34, 0x0c, 0xa5, 0x8f, 0x2f, 0xdf, 0xfc, 0x86, 0x78, 0xd2, 0x3f, + 0xb2, 0x9e, 0xe5, 0xd5, 0xd7, 0x0a, 0x01, 0xb7, 0x5b, 0x6c, 0xe1, 0xd3, 0x12, 0x40, 0xc7, 0x47, + 0x9e, 0xc1, 0x68, 0xf6, 0xd0, 0x29, 0x5d, 0xe7, 0xa1, 0x93, 0x91, 0xcc, 0x4e, 0xe3, 0xd5, 0x8d, + 0x49, 0x9f, 0x70, 0xed, 0x80, 0xac, 0xc2, 0x18, 0x0d, 0x82, 0x84, 0x29, 0x95, 0x1d, 0x16, 0xbf, + 0xbf, 0x4a, 0xd5, 0xa2, 0xdd, 0x9c, 0x56, 0x5d, 0x85, 0x11, 0x7c, 0xcc, 0xdb, 0x52, 0x0a, 0xd8, + 0x59, 0x76, 0x2b, 0xdb, 0x01, 0x6e, 0xb9, 0xb9, 0x43, 0x7a, 0xb7, 0xdc, 0xd8, 0xec, 0x96, 0xaf, + 0x7f, 0x31, 0xf8, 0xe5, 0xc5, 0x52, 0xe9, 0xdd, 0xc5, 0x52, 0xe9, 0x9b, 0x8b, 0xa5, 0xd2, 0xc7, + 0xef, 0x97, 0x06, 0xde, 0xbd, 0x5f, 0x1a, 0xf8, 0xfa, 0xfd, 0xd2, 0x00, 0x54, 0x7c, 0x19, 0xf5, + 0x4d, 0xe6, 0x3a, 0xd8, 0x7d, 0x36, 0xbf, 0x33, 0xcd, 0xd2, 0x9b, 0x83, 0x63, 0xae, 0xdb, 0x69, + 0xab, 0xee, 0xcb, 0xa8, 0xe1, 0x4b, 0x15, 0x49, 0xd5, 0x48, 0x58, 0x48, 0xcf, 0x59, 0xd2, 0x38, + 0x59, 0x2e, 0x3e, 0x51, 0x42, 0x35, 0xfa, 0xfd, 0xc0, 0x3d, 0xc5, 0x61, 0x3e, 0xfa, 0x64, 0x70, + 0xa8, 0xb9, 0xb1, 0xf1, 0xd9, 0xe0, 0x62, 0x33, 0x0f, 0x65, 0xc3, 0x84, 0x82, 0x53, 0xd7, 0x0f, + 0x32, 0xd0, 0x57, 0x1d, 0xf7, 0xa1, 0x71, 0x1f, 0xa2, 0xfb, 0x30, 0x77, 0x5f, 0x0c, 0xd6, 0xfa, + 0xb9, 0x0f, 0xb7, 0x9b, 0xeb, 0x79, 0xaf, 0x7e, 0x3b, 0x78, 0x27, 0x87, 0xae, 0xac, 0x18, 0xec, + 0xca, 0x0a, 0x82, 0x57, 0x56, 0x72, 0x74, 0x6b, 0x14, 0x7f, 0xe0, 0x1e, 0xfd, 0x10, 0x00, 0x00, + 0xff, 0xff, 0xd1, 0xb8, 0x41, 0x47, 0x86, 0x0e, 0x00, 0x00, } func (m *ChainParameters) Marshal() (dAtA []byte, err error) { @@ -1265,12 +1189,19 @@ func (m *ChainParameters) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0xb2 } - if m.ProposalDepositAmount != 0 { - i = encodeVarintChain(dAtA, i, uint64(m.ProposalDepositAmount)) + if m.ProposalDepositAmount != nil { + { + size, err := m.ProposalDepositAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintChain(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xa8 + dAtA[i] = 0xaa } if m.ProposalVotingBlocks != 0 { i = encodeVarintChain(dAtA, i, uint64(m.ProposalVotingBlocks)) @@ -1425,63 +1356,6 @@ func (m *FmdParameters) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *AssetInfo) 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 *AssetInfo) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AssetInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.TotalSupply != 0 { - i = encodeVarintChain(dAtA, i, uint64(m.TotalSupply)) - i-- - dAtA[i] = 0x20 - } - if m.AsOfBlockHeight != 0 { - i = encodeVarintChain(dAtA, i, uint64(m.AsOfBlockHeight)) - i-- - dAtA[i] = 0x18 - } - if m.Denom != nil { - { - size, err := m.Denom.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintChain(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.AssetId != nil { - { - size, err := m.AssetId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintChain(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *CompactBlock) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2154,8 +2028,9 @@ func (m *ChainParameters) Size() (n int) { if m.ProposalVotingBlocks != 0 { n += 2 + sovChain(uint64(m.ProposalVotingBlocks)) } - if m.ProposalDepositAmount != 0 { - n += 2 + sovChain(uint64(m.ProposalDepositAmount)) + if m.ProposalDepositAmount != nil { + l = m.ProposalDepositAmount.Size() + n += 2 + l + sovChain(uint64(l)) } l = len(m.ProposalValidQuorum) if l > 0 { @@ -2205,29 +2080,6 @@ func (m *FmdParameters) Size() (n int) { return n } -func (m *AssetInfo) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.AssetId != nil { - l = m.AssetId.Size() - n += 1 + l + sovChain(uint64(l)) - } - if m.Denom != nil { - l = m.Denom.Size() - n += 1 + l + sovChain(uint64(l)) - } - if m.AsOfBlockHeight != 0 { - n += 1 + sovChain(uint64(m.AsOfBlockHeight)) - } - if m.TotalSupply != 0 { - n += 1 + sovChain(uint64(m.TotalSupply)) - } - return n -} - func (m *CompactBlock) Size() (n int) { if m == nil { return 0 @@ -2776,10 +2628,10 @@ func (m *ChainParameters) Unmarshal(dAtA []byte) error { } } case 21: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ProposalDepositAmount", wireType) } - m.ProposalDepositAmount = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowChain @@ -2789,11 +2641,28 @@ func (m *ChainParameters) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ProposalDepositAmount |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthChain + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthChain + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProposalDepositAmount == nil { + m.ProposalDepositAmount = &v1alpha1.Amount{} + } + if err := m.ProposalDepositAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 22: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ProposalValidQuorum", wireType) @@ -3107,166 +2976,6 @@ func (m *FmdParameters) Unmarshal(dAtA []byte) error { } return nil } -func (m *AssetInfo) 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 ErrIntOverflowChain - } - 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: AssetInfo: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AssetInfo: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowChain - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthChain - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthChain - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.AssetId == nil { - m.AssetId = &v1alpha1.AssetId{} - } - if err := m.AssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowChain - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthChain - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthChain - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Denom == nil { - m.Denom = &v1alpha1.Denom{} - } - if err := m.Denom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AsOfBlockHeight", wireType) - } - m.AsOfBlockHeight = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowChain - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.AsOfBlockHeight |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalSupply", wireType) - } - m.TotalSupply = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowChain - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TotalSupply |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipChain(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthChain - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *CompactBlock) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -4145,7 +3854,7 @@ func (m *KnownAssets) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Assets = append(m.Assets, &v1alpha1.Asset{}) + m.Assets = append(m.Assets, &v1alpha1.DenomMetadata{}) if err := m.Assets[len(m.Assets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go b/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go index 5c4eb0ff0..088785c8e 100644 --- a/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go +++ b/relayer/chains/penumbra/core/crypto/v1alpha1/crypto.pb.go @@ -78,8 +78,20 @@ func (m *Fee) GetAssetId() *AssetId { return nil } +// A Penumbra address. An address in Penumbra is a Bech32m-encoded +// string, with the human-readable prefix (HRP) `penumbrav2t`. type Address struct { + // The bytes of the address. Must be represented as a series of + // `uint8` (i.e. values 0 through 255), with a length of 80 elements. Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` + // Alternatively, a Bech32m-encoded string representation of the `inner` + // bytes. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_bech32m` set. + AltBech32M string `protobuf:"bytes,2,opt,name=alt_bech32m,json=altBech32m,proto3" json:"alt_bech32m,omitempty"` } func (m *Address) Reset() { *m = Address{} } @@ -122,6 +134,13 @@ func (m *Address) GetInner() []byte { return nil } +func (m *Address) GetAltBech32M() string { + if m != nil { + return m.AltBech32M + } + return "" +} + type AddressView struct { // Types that are valid to be assigned to AddressView: // @@ -672,8 +691,25 @@ func (m *BalanceCommitment) GetInner() []byte { return nil } +// A Penumbra asset ID. type AssetId struct { + // The bytes of the asset ID. Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` + // Alternatively, a Bech32m-encoded string representation of the `inner` + // bytes. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the `inner` bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_bech32m` set. This field exists for convenience of RPC users. + AltBech32M string `protobuf:"bytes,2,opt,name=alt_bech32m,json=altBech32m,proto3" json:"alt_bech32m,omitempty"` + // Alternatively, a base denomination string which should be hashed to obtain the asset ID. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_base_denom` set. This field exists for convenience of RPC users. + AltBaseDenom string `protobuf:"bytes,3,opt,name=alt_base_denom,json=altBaseDenom,proto3" json:"alt_base_denom,omitempty"` } func (m *AssetId) Reset() { *m = AssetId{} } @@ -716,6 +752,25 @@ func (m *AssetId) GetInner() []byte { return nil } +func (m *AssetId) GetAltBech32M() string { + if m != nil { + return m.AltBech32M + } + return "" +} + +func (m *AssetId) GetAltBaseDenom() string { + if m != nil { + return m.AltBaseDenom + } + return "" +} + +// The quantity of a particular Asset. Represented as a 128-bit unsigned integer, +// split over two fields, `lo` and `hi`, representing the low- and high-order bytes +// of the 128-bit value, respectively. Clients must assemble these bits in their +// implementation into a `uint128` or comparable data structure, in order to model +// the Amount accurately. type Amount struct { Lo uint64 `protobuf:"varint,1,opt,name=lo,proto3" json:"lo,omitempty"` Hi uint64 `protobuf:"varint,2,opt,name=hi,proto3" json:"hi,omitempty"` @@ -812,6 +867,194 @@ func (m *Denom) GetDenom() string { return "" } +// DenomMetadata represents a struct that describes a basic token. +type DenomMetadata struct { + Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` + // denom_units represents the list of DenomUnit's for a given coin + DenomUnits []*DenomUnit `protobuf:"bytes,2,rep,name=denom_units,json=denomUnits,proto3" json:"denom_units,omitempty"` + // base represents the base denom (should be the DenomUnit with exponent = 0). + Base string `protobuf:"bytes,3,opt,name=base,proto3" json:"base,omitempty"` + // display indicates the suggested denom that should be + // displayed in clients. + Display string `protobuf:"bytes,4,opt,name=display,proto3" json:"display,omitempty"` + // name defines the name of the token (eg: Cosmos Atom) + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + // symbol is the token symbol usually shown on exchanges (eg: ATOM). This can + // be the same as the display. + Symbol string `protobuf:"bytes,6,opt,name=symbol,proto3" json:"symbol,omitempty"` + // URI to a document (on or off-chain) that contains additional information. Optional. + Uri string `protobuf:"bytes,7,opt,name=uri,proto3" json:"uri,omitempty"` + // URIHash is a sha256 hash of a document pointed by URI. It's used to verify that + // the document didn't change. Optional. + UriHash string `protobuf:"bytes,8,opt,name=uri_hash,json=uriHash,proto3" json:"uri_hash,omitempty"` + // the asset ID on Penumbra for this denomination. + PenumbraAssetId *AssetId `protobuf:"bytes,1984,opt,name=penumbra_asset_id,json=penumbraAssetId,proto3" json:"penumbra_asset_id,omitempty"` +} + +func (m *DenomMetadata) Reset() { *m = DenomMetadata{} } +func (m *DenomMetadata) String() string { return proto.CompactTextString(m) } +func (*DenomMetadata) ProtoMessage() {} +func (*DenomMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{14} +} +func (m *DenomMetadata) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DenomMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DenomMetadata.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 *DenomMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_DenomMetadata.Merge(m, src) +} +func (m *DenomMetadata) XXX_Size() int { + return m.Size() +} +func (m *DenomMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_DenomMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_DenomMetadata proto.InternalMessageInfo + +func (m *DenomMetadata) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +func (m *DenomMetadata) GetDenomUnits() []*DenomUnit { + if m != nil { + return m.DenomUnits + } + return nil +} + +func (m *DenomMetadata) GetBase() string { + if m != nil { + return m.Base + } + return "" +} + +func (m *DenomMetadata) GetDisplay() string { + if m != nil { + return m.Display + } + return "" +} + +func (m *DenomMetadata) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *DenomMetadata) GetSymbol() string { + if m != nil { + return m.Symbol + } + return "" +} + +func (m *DenomMetadata) GetUri() string { + if m != nil { + return m.Uri + } + return "" +} + +func (m *DenomMetadata) GetUriHash() string { + if m != nil { + return m.UriHash + } + return "" +} + +func (m *DenomMetadata) GetPenumbraAssetId() *AssetId { + if m != nil { + return m.PenumbraAssetId + } + return nil +} + +// DenomUnit represents a struct that describes a given denomination unit of the basic token. +type DenomUnit struct { + // denom represents the string name of the given denom unit (e.g uatom). + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // exponent represents power of 10 exponent that one must + // raise the base_denom to in order to equal the given DenomUnit's denom + // 1 denom = 10^exponent base_denom + // (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with + // exponent = 6, thus: 1 atom = 10^6 uatom). + Exponent uint32 `protobuf:"varint,2,opt,name=exponent,proto3" json:"exponent,omitempty"` + // aliases is a list of string aliases for the given denom + Aliases []string `protobuf:"bytes,3,rep,name=aliases,proto3" json:"aliases,omitempty"` +} + +func (m *DenomUnit) Reset() { *m = DenomUnit{} } +func (m *DenomUnit) String() string { return proto.CompactTextString(m) } +func (*DenomUnit) ProtoMessage() {} +func (*DenomUnit) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{15} +} +func (m *DenomUnit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DenomUnit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DenomUnit.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 *DenomUnit) XXX_Merge(src proto.Message) { + xxx_messageInfo_DenomUnit.Merge(m, src) +} +func (m *DenomUnit) XXX_Size() int { + return m.Size() +} +func (m *DenomUnit) XXX_DiscardUnknown() { + xxx_messageInfo_DenomUnit.DiscardUnknown(m) +} + +var xxx_messageInfo_DenomUnit proto.InternalMessageInfo + +func (m *DenomUnit) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *DenomUnit) GetExponent() uint32 { + if m != nil { + return m.Exponent + } + return 0 +} + +func (m *DenomUnit) GetAliases() []string { + if m != nil { + return m.Aliases + } + return nil +} + type Value struct { Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` AssetId *AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` @@ -821,7 +1064,7 @@ func (m *Value) Reset() { *m = Value{} } func (m *Value) String() string { return proto.CompactTextString(m) } func (*Value) ProtoMessage() {} func (*Value) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{14} + return fileDescriptor_5c23a0b4440af102, []int{16} } func (m *Value) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -885,7 +1128,7 @@ func (m *ValueView) Reset() { *m = ValueView{} } func (m *ValueView) String() string { return proto.CompactTextString(m) } func (*ValueView) ProtoMessage() {} func (*ValueView) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{15} + return fileDescriptor_5c23a0b4440af102, []int{17} } func (m *ValueView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -961,15 +1204,15 @@ func (*ValueView) XXX_OneofWrappers() []interface{} { // A value whose asset ID has a known denomination. type ValueView_KnownDenom struct { - Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - Denom *Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + Denom *DenomMetadata `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` } func (m *ValueView_KnownDenom) Reset() { *m = ValueView_KnownDenom{} } func (m *ValueView_KnownDenom) String() string { return proto.CompactTextString(m) } func (*ValueView_KnownDenom) ProtoMessage() {} func (*ValueView_KnownDenom) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{15, 0} + return fileDescriptor_5c23a0b4440af102, []int{17, 0} } func (m *ValueView_KnownDenom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1005,7 +1248,7 @@ func (m *ValueView_KnownDenom) GetAmount() *Amount { return nil } -func (m *ValueView_KnownDenom) GetDenom() *Denom { +func (m *ValueView_KnownDenom) GetDenom() *DenomMetadata { if m != nil { return m.Denom } @@ -1021,7 +1264,7 @@ func (m *ValueView_UnknownDenom) Reset() { *m = ValueView_UnknownDenom{} func (m *ValueView_UnknownDenom) String() string { return proto.CompactTextString(m) } func (*ValueView_UnknownDenom) ProtoMessage() {} func (*ValueView_UnknownDenom) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{15, 1} + return fileDescriptor_5c23a0b4440af102, []int{17, 1} } func (m *ValueView_UnknownDenom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1072,7 +1315,7 @@ func (m *MerkleRoot) Reset() { *m = MerkleRoot{} } func (m *MerkleRoot) String() string { return proto.CompactTextString(m) } func (*MerkleRoot) ProtoMessage() {} func (*MerkleRoot) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{16} + return fileDescriptor_5c23a0b4440af102, []int{18} } func (m *MerkleRoot) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1108,58 +1351,6 @@ func (m *MerkleRoot) GetInner() []byte { return nil } -type Asset struct { - Id *AssetId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Denom *Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` -} - -func (m *Asset) Reset() { *m = Asset{} } -func (m *Asset) String() string { return proto.CompactTextString(m) } -func (*Asset) ProtoMessage() {} -func (*Asset) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{17} -} -func (m *Asset) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Asset) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Asset.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 *Asset) XXX_Merge(src proto.Message) { - xxx_messageInfo_Asset.Merge(m, src) -} -func (m *Asset) XXX_Size() int { - return m.Size() -} -func (m *Asset) XXX_DiscardUnknown() { - xxx_messageInfo_Asset.DiscardUnknown(m) -} - -var xxx_messageInfo_Asset proto.InternalMessageInfo - -func (m *Asset) GetId() *AssetId { - if m != nil { - return m.Id - } - return nil -} - -func (m *Asset) GetDenom() *Denom { - if m != nil { - return m.Denom - } - return nil -} - // A validator's identity key (decaf377-rdsa spendauth verification key). type IdentityKey struct { Ik []byte `protobuf:"bytes,1,opt,name=ik,proto3" json:"ik,omitempty"` @@ -1169,7 +1360,7 @@ func (m *IdentityKey) Reset() { *m = IdentityKey{} } func (m *IdentityKey) String() string { return proto.CompactTextString(m) } func (*IdentityKey) ProtoMessage() {} func (*IdentityKey) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{18} + return fileDescriptor_5c23a0b4440af102, []int{19} } func (m *IdentityKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1214,7 +1405,7 @@ func (m *GovernanceKey) Reset() { *m = GovernanceKey{} } func (m *GovernanceKey) String() string { return proto.CompactTextString(m) } func (*GovernanceKey) ProtoMessage() {} func (*GovernanceKey) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{19} + return fileDescriptor_5c23a0b4440af102, []int{20} } func (m *GovernanceKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1258,7 +1449,7 @@ func (m *ConsensusKey) Reset() { *m = ConsensusKey{} } func (m *ConsensusKey) String() string { return proto.CompactTextString(m) } func (*ConsensusKey) ProtoMessage() {} func (*ConsensusKey) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{20} + return fileDescriptor_5c23a0b4440af102, []int{21} } func (m *ConsensusKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1304,7 +1495,7 @@ func (m *Note) Reset() { *m = Note{} } func (m *Note) String() string { return proto.CompactTextString(m) } func (*Note) ProtoMessage() {} func (*Note) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{21} + return fileDescriptor_5c23a0b4440af102, []int{22} } func (m *Note) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1364,7 +1555,7 @@ func (m *NoteView) Reset() { *m = NoteView{} } func (m *NoteView) String() string { return proto.CompactTextString(m) } func (*NoteView) ProtoMessage() {} func (*NoteView) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{22} + return fileDescriptor_5c23a0b4440af102, []int{23} } func (m *NoteView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1424,7 +1615,7 @@ func (m *NoteCiphertext) Reset() { *m = NoteCiphertext{} } func (m *NoteCiphertext) String() string { return proto.CompactTextString(m) } func (*NoteCiphertext) ProtoMessage() {} func (*NoteCiphertext) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{23} + return fileDescriptor_5c23a0b4440af102, []int{24} } func (m *NoteCiphertext) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1468,7 +1659,7 @@ func (m *Nullifier) Reset() { *m = Nullifier{} } func (m *Nullifier) String() string { return proto.CompactTextString(m) } func (*Nullifier) ProtoMessage() {} func (*Nullifier) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{24} + return fileDescriptor_5c23a0b4440af102, []int{25} } func (m *Nullifier) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1512,7 +1703,7 @@ func (m *SpendAuthSignature) Reset() { *m = SpendAuthSignature{} } func (m *SpendAuthSignature) String() string { return proto.CompactTextString(m) } func (*SpendAuthSignature) ProtoMessage() {} func (*SpendAuthSignature) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{25} + return fileDescriptor_5c23a0b4440af102, []int{26} } func (m *SpendAuthSignature) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1556,7 +1747,7 @@ func (m *BindingSignature) Reset() { *m = BindingSignature{} } func (m *BindingSignature) String() string { return proto.CompactTextString(m) } func (*BindingSignature) ProtoMessage() {} func (*BindingSignature) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{26} + return fileDescriptor_5c23a0b4440af102, []int{27} } func (m *BindingSignature) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1608,7 +1799,7 @@ func (m *NotePayload) Reset() { *m = NotePayload{} } func (m *NotePayload) String() string { return proto.CompactTextString(m) } func (*NotePayload) ProtoMessage() {} func (*NotePayload) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{27} + return fileDescriptor_5c23a0b4440af102, []int{28} } func (m *NotePayload) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1669,7 +1860,7 @@ func (m *StateCommitmentProof) Reset() { *m = StateCommitmentProof{} } func (m *StateCommitmentProof) String() string { return proto.CompactTextString(m) } func (*StateCommitmentProof) ProtoMessage() {} func (*StateCommitmentProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{28} + return fileDescriptor_5c23a0b4440af102, []int{29} } func (m *StateCommitmentProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1730,7 +1921,7 @@ func (m *MerklePathChunk) Reset() { *m = MerklePathChunk{} } func (m *MerklePathChunk) String() string { return proto.CompactTextString(m) } func (*MerklePathChunk) ProtoMessage() {} func (*MerklePathChunk) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{29} + return fileDescriptor_5c23a0b4440af102, []int{30} } func (m *MerklePathChunk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1789,7 +1980,7 @@ func (m *Clue) Reset() { *m = Clue{} } func (m *Clue) String() string { return proto.CompactTextString(m) } func (*Clue) ProtoMessage() {} func (*Clue) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{30} + return fileDescriptor_5c23a0b4440af102, []int{31} } func (m *Clue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1834,7 +2025,7 @@ func (m *EffectHash) Reset() { *m = EffectHash{} } func (m *EffectHash) String() string { return proto.CompactTextString(m) } func (*EffectHash) ProtoMessage() {} func (*EffectHash) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{31} + return fileDescriptor_5c23a0b4440af102, []int{32} } func (m *EffectHash) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1879,7 +2070,7 @@ func (m *ZKOutputProof) Reset() { *m = ZKOutputProof{} } func (m *ZKOutputProof) String() string { return proto.CompactTextString(m) } func (*ZKOutputProof) ProtoMessage() {} func (*ZKOutputProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{32} + return fileDescriptor_5c23a0b4440af102, []int{33} } func (m *ZKOutputProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1924,7 +2115,7 @@ func (m *ZKSpendProof) Reset() { *m = ZKSpendProof{} } func (m *ZKSpendProof) String() string { return proto.CompactTextString(m) } func (*ZKSpendProof) ProtoMessage() {} func (*ZKSpendProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{33} + return fileDescriptor_5c23a0b4440af102, []int{34} } func (m *ZKSpendProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1969,7 +2160,7 @@ func (m *ZKSwapProof) Reset() { *m = ZKSwapProof{} } func (m *ZKSwapProof) String() string { return proto.CompactTextString(m) } func (*ZKSwapProof) ProtoMessage() {} func (*ZKSwapProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{34} + return fileDescriptor_5c23a0b4440af102, []int{35} } func (m *ZKSwapProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2005,6 +2196,51 @@ func (m *ZKSwapProof) GetInner() []byte { return nil } +// A Penumbra ZK swap claim proof. +type ZKSwapClaimProof struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *ZKSwapClaimProof) Reset() { *m = ZKSwapClaimProof{} } +func (m *ZKSwapClaimProof) String() string { return proto.CompactTextString(m) } +func (*ZKSwapClaimProof) ProtoMessage() {} +func (*ZKSwapClaimProof) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{36} +} +func (m *ZKSwapClaimProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ZKSwapClaimProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ZKSwapClaimProof.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 *ZKSwapClaimProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_ZKSwapClaimProof.Merge(m, src) +} +func (m *ZKSwapClaimProof) XXX_Size() int { + return m.Size() +} +func (m *ZKSwapClaimProof) XXX_DiscardUnknown() { + xxx_messageInfo_ZKSwapClaimProof.DiscardUnknown(m) +} + +var xxx_messageInfo_ZKSwapClaimProof proto.InternalMessageInfo + +func (m *ZKSwapClaimProof) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + // A Penumbra ZK undelegate claim proof. type ZKUndelegateClaimProof struct { Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` @@ -2014,7 +2250,7 @@ func (m *ZKUndelegateClaimProof) Reset() { *m = ZKUndelegateClaimProof{} func (m *ZKUndelegateClaimProof) String() string { return proto.CompactTextString(m) } func (*ZKUndelegateClaimProof) ProtoMessage() {} func (*ZKUndelegateClaimProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{35} + return fileDescriptor_5c23a0b4440af102, []int{37} } func (m *ZKUndelegateClaimProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2059,7 +2295,7 @@ func (m *ZKDelegatorVoteProof) Reset() { *m = ZKDelegatorVoteProof{} } func (m *ZKDelegatorVoteProof) String() string { return proto.CompactTextString(m) } func (*ZKDelegatorVoteProof) ProtoMessage() {} func (*ZKDelegatorVoteProof) Descriptor() ([]byte, []int) { - return fileDescriptor_5c23a0b4440af102, []int{36} + return fileDescriptor_5c23a0b4440af102, []int{38} } func (m *ZKDelegatorVoteProof) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2095,6 +2331,51 @@ func (m *ZKDelegatorVoteProof) GetInner() []byte { return nil } +// A Penumbra ZK nullifier derivation proof. +type ZKNullifierDerivationProof struct { + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (m *ZKNullifierDerivationProof) Reset() { *m = ZKNullifierDerivationProof{} } +func (m *ZKNullifierDerivationProof) String() string { return proto.CompactTextString(m) } +func (*ZKNullifierDerivationProof) ProtoMessage() {} +func (*ZKNullifierDerivationProof) Descriptor() ([]byte, []int) { + return fileDescriptor_5c23a0b4440af102, []int{39} +} +func (m *ZKNullifierDerivationProof) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ZKNullifierDerivationProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ZKNullifierDerivationProof.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 *ZKNullifierDerivationProof) XXX_Merge(src proto.Message) { + xxx_messageInfo_ZKNullifierDerivationProof.Merge(m, src) +} +func (m *ZKNullifierDerivationProof) XXX_Size() int { + return m.Size() +} +func (m *ZKNullifierDerivationProof) XXX_DiscardUnknown() { + xxx_messageInfo_ZKNullifierDerivationProof.DiscardUnknown(m) +} + +var xxx_messageInfo_ZKNullifierDerivationProof proto.InternalMessageInfo + +func (m *ZKNullifierDerivationProof) GetInner() []byte { + if m != nil { + return m.Inner + } + return nil +} + func init() { proto.RegisterType((*Fee)(nil), "penumbra.core.crypto.v1alpha1.Fee") proto.RegisterType((*Address)(nil), "penumbra.core.crypto.v1alpha1.Address") @@ -2112,12 +2393,13 @@ func init() { proto.RegisterType((*AssetId)(nil), "penumbra.core.crypto.v1alpha1.AssetId") proto.RegisterType((*Amount)(nil), "penumbra.core.crypto.v1alpha1.Amount") proto.RegisterType((*Denom)(nil), "penumbra.core.crypto.v1alpha1.Denom") + proto.RegisterType((*DenomMetadata)(nil), "penumbra.core.crypto.v1alpha1.DenomMetadata") + proto.RegisterType((*DenomUnit)(nil), "penumbra.core.crypto.v1alpha1.DenomUnit") proto.RegisterType((*Value)(nil), "penumbra.core.crypto.v1alpha1.Value") proto.RegisterType((*ValueView)(nil), "penumbra.core.crypto.v1alpha1.ValueView") proto.RegisterType((*ValueView_KnownDenom)(nil), "penumbra.core.crypto.v1alpha1.ValueView.KnownDenom") proto.RegisterType((*ValueView_UnknownDenom)(nil), "penumbra.core.crypto.v1alpha1.ValueView.UnknownDenom") proto.RegisterType((*MerkleRoot)(nil), "penumbra.core.crypto.v1alpha1.MerkleRoot") - proto.RegisterType((*Asset)(nil), "penumbra.core.crypto.v1alpha1.Asset") proto.RegisterType((*IdentityKey)(nil), "penumbra.core.crypto.v1alpha1.IdentityKey") proto.RegisterType((*GovernanceKey)(nil), "penumbra.core.crypto.v1alpha1.GovernanceKey") proto.RegisterType((*ConsensusKey)(nil), "penumbra.core.crypto.v1alpha1.ConsensusKey") @@ -2135,8 +2417,10 @@ func init() { proto.RegisterType((*ZKOutputProof)(nil), "penumbra.core.crypto.v1alpha1.ZKOutputProof") proto.RegisterType((*ZKSpendProof)(nil), "penumbra.core.crypto.v1alpha1.ZKSpendProof") proto.RegisterType((*ZKSwapProof)(nil), "penumbra.core.crypto.v1alpha1.ZKSwapProof") + proto.RegisterType((*ZKSwapClaimProof)(nil), "penumbra.core.crypto.v1alpha1.ZKSwapClaimProof") proto.RegisterType((*ZKUndelegateClaimProof)(nil), "penumbra.core.crypto.v1alpha1.ZKUndelegateClaimProof") proto.RegisterType((*ZKDelegatorVoteProof)(nil), "penumbra.core.crypto.v1alpha1.ZKDelegatorVoteProof") + proto.RegisterType((*ZKNullifierDerivationProof)(nil), "penumbra.core.crypto.v1alpha1.ZKNullifierDerivationProof") } func init() { @@ -2144,83 +2428,97 @@ func init() { } var fileDescriptor_5c23a0b4440af102 = []byte{ - // 1211 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xcf, 0xae, 0xf3, 0xf7, 0xf9, 0x4f, 0xcb, 0x2a, 0x42, 0x51, 0x20, 0x6e, 0xba, 0x4d, 0x43, - 0x5b, 0x8a, 0xad, 0x38, 0x82, 0x83, 0x11, 0x88, 0xd8, 0xa1, 0x4d, 0xb0, 0xda, 0x5a, 0x1b, 0xea, - 0x22, 0x2b, 0x92, 0x35, 0xd9, 0x9d, 0x78, 0x47, 0xde, 0x9d, 0x59, 0x76, 0x67, 0x9d, 0x1a, 0x3e, - 0x40, 0xc5, 0xad, 0x67, 0x8e, 0x1c, 0x38, 0xf0, 0x0d, 0xf8, 0x06, 0x88, 0x53, 0x8f, 0x3d, 0x42, - 0x7a, 0x40, 0x42, 0x1c, 0xf8, 0x08, 0x68, 0x76, 0x67, 0x1d, 0x27, 0xea, 0xda, 0x86, 0x08, 0xc1, - 0x6d, 0xdf, 0xbe, 0xdf, 0xfb, 0xcd, 0x6f, 0xde, 0x9b, 0xf7, 0x66, 0x17, 0xee, 0x78, 0x98, 0x86, - 0xee, 0x91, 0x8f, 0xca, 0x26, 0xf3, 0x71, 0xd9, 0xf4, 0x07, 0x1e, 0x67, 0xe5, 0xfe, 0x16, 0x72, - 0x3c, 0x1b, 0x6d, 0x49, 0xbb, 0xe4, 0xf9, 0x8c, 0x33, 0x6d, 0x2d, 0xc1, 0x96, 0x04, 0xb6, 0x24, - 0x7d, 0x09, 0x56, 0x7f, 0xa6, 0x40, 0xe6, 0x1e, 0xc6, 0xda, 0x47, 0x30, 0x8f, 0x5c, 0x16, 0x52, - 0xbe, 0xa2, 0xac, 0x2b, 0xb7, 0xb2, 0x95, 0x9b, 0xa5, 0xb1, 0x71, 0xa5, 0x9d, 0x08, 0x6c, 0xc8, - 0x20, 0x6d, 0x07, 0x16, 0x51, 0x10, 0x60, 0xde, 0x21, 0xd6, 0x8a, 0x1a, 0x11, 0x6c, 0x4e, 0x22, - 0x10, 0xf0, 0x7d, 0xcb, 0x58, 0x40, 0xf1, 0x83, 0x7e, 0x0d, 0x16, 0x76, 0x2c, 0xcb, 0xc7, 0x41, - 0xa0, 0x2d, 0xc3, 0x1c, 0xa1, 0x14, 0xfb, 0x91, 0x96, 0x9c, 0x11, 0x1b, 0xfa, 0x9f, 0x19, 0xc8, - 0x4a, 0x44, 0x8b, 0xe0, 0x13, 0xed, 0x21, 0x2c, 0xf4, 0x49, 0x40, 0x8e, 0x1c, 0x2c, 0x35, 0x57, - 0x26, 0x2d, 0x79, 0x16, 0x5c, 0x6a, 0xc5, 0x91, 0x7b, 0x33, 0x46, 0x42, 0xa2, 0x35, 0x60, 0x9e, - 0x79, 0xe8, 0xcb, 0x10, 0xcb, 0x1d, 0x6c, 0xfd, 0x0d, 0xba, 0x47, 0x51, 0xe0, 0xde, 0x8c, 0x21, - 0x29, 0x56, 0x7f, 0x53, 0x60, 0x41, 0xae, 0xa1, 0x7d, 0x02, 0x0b, 0x28, 0xc6, 0x4a, 0xa1, 0x9b, - 0xd3, 0x31, 0x1b, 0x49, 0x98, 0xb6, 0x23, 0x12, 0x62, 0xe1, 0xa7, 0x52, 0xd9, 0xbb, 0xd3, 0xc5, - 0xef, 0x8b, 0x10, 0x23, 0x8e, 0xd4, 0x9e, 0xc0, 0x55, 0x64, 0x9a, 0xa2, 0x58, 0x9d, 0xae, 0xcf, - 0x42, 0x4f, 0x54, 0x2a, 0x13, 0xb1, 0xbd, 0x37, 0x89, 0x2d, 0x0e, 0xbb, 0x2f, 0xa2, 0xf6, 0x2d, - 0xa3, 0x80, 0xce, 0xd9, 0xab, 0x9f, 0xc1, 0x7c, 0xbc, 0xfb, 0xcb, 0xef, 0xb3, 0x56, 0x80, 0x9c, - 0x7c, 0xec, 0xf4, 0x09, 0x3e, 0xd1, 0xd7, 0x61, 0xf1, 0xc0, 0xc3, 0xd4, 0x6a, 0xe0, 0x41, 0xca, - 0xa1, 0xb8, 0x0b, 0xcb, 0x11, 0xa2, 0x85, 0x7d, 0x72, 0x4c, 0x4c, 0xc4, 0x09, 0xa3, 0xe9, 0xe8, - 0x4d, 0x28, 0xdc, 0x0b, 0x1d, 0x47, 0x94, 0x8c, 0xd0, 0xee, 0x58, 0xdc, 0xf9, 0x5d, 0xa7, 0xe0, - 0x6e, 0x40, 0x76, 0x97, 0xf4, 0xb1, 0x1f, 0x90, 0x63, 0x82, 0xfd, 0x14, 0xd0, 0x1e, 0xe4, 0x46, - 0x0b, 0xa2, 0xad, 0xc0, 0x82, 0x4c, 0x61, 0x54, 0xce, 0xbc, 0x91, 0x98, 0x5a, 0x11, 0xc0, 0x47, - 0xd4, 0x62, 0x2e, 0xf9, 0x0a, 0xfb, 0x51, 0x75, 0x72, 0xc6, 0xc8, 0x1b, 0xfd, 0x1d, 0xb8, 0x72, - 0xc0, 0x11, 0xc7, 0x75, 0xe6, 0xba, 0x84, 0xbb, 0x98, 0xf2, 0x94, 0x25, 0x6f, 0xc3, 0x1b, 0x35, - 0xe4, 0x20, 0x6a, 0x4e, 0x86, 0x8a, 0xb6, 0x8b, 0x3b, 0x30, 0x05, 0x70, 0x0b, 0xe6, 0xe3, 0x66, - 0xd7, 0x0a, 0xa0, 0x3a, 0x2c, 0x72, 0xce, 0x1a, 0xaa, 0xc3, 0x84, 0x6d, 0x93, 0x68, 0x0f, 0xb3, - 0x86, 0x6a, 0x13, 0x7d, 0x0d, 0xe6, 0x76, 0x31, 0x65, 0xae, 0x20, 0xb2, 0xc4, 0x43, 0x84, 0x5d, - 0x32, 0x62, 0x43, 0xff, 0x46, 0x81, 0xb9, 0x16, 0x72, 0xc2, 0xff, 0xc3, 0xb0, 0xf9, 0x23, 0x03, - 0x4b, 0x91, 0x96, 0x68, 0x92, 0xb4, 0x20, 0xdb, 0xa3, 0xec, 0x84, 0x76, 0xce, 0x54, 0x67, 0x2b, - 0xdb, 0x13, 0x38, 0x87, 0xe1, 0xa5, 0x86, 0x88, 0x8d, 0x76, 0xbe, 0x37, 0x63, 0x40, 0x6f, 0x68, - 0x69, 0x87, 0x90, 0x0f, 0xe9, 0x28, 0x73, 0xac, 0xf6, 0xfd, 0xa9, 0x99, 0x1f, 0xd3, 0xde, 0x28, - 0x77, 0x2e, 0x1c, 0xb1, 0x57, 0x9f, 0x29, 0x00, 0x67, 0x4b, 0x5f, 0x36, 0xa9, 0xd5, 0xa4, 0x66, - 0xb1, 0xc6, 0x8d, 0x09, 0xd1, 0xd1, 0x9a, 0xb2, 0xb2, 0xab, 0xcf, 0x15, 0xc8, 0x8d, 0x4a, 0xfd, - 0xef, 0x0b, 0x5c, 0xcb, 0x01, 0xf4, 0x45, 0x1a, 0xe3, 0x39, 0xa2, 0x03, 0x3c, 0xc0, 0x7e, 0xcf, - 0xc1, 0x06, 0x63, 0x69, 0x8d, 0xf0, 0x35, 0xcc, 0x45, 0x2c, 0xda, 0x07, 0xa0, 0x12, 0x6b, 0xda, - 0x09, 0x26, 0xd7, 0x55, 0x89, 0x75, 0x99, 0x0c, 0xea, 0x6b, 0x90, 0xdd, 0xb7, 0x30, 0xe5, 0x84, - 0x0f, 0xc4, 0x54, 0x2a, 0x80, 0x4a, 0x7a, 0x52, 0x9e, 0x4a, 0x7a, 0xfa, 0x35, 0xc8, 0xdf, 0x67, - 0x7d, 0xec, 0x53, 0xd1, 0xd2, 0x12, 0xd0, 0x1d, 0x02, 0xba, 0x3d, 0x7d, 0x03, 0x72, 0x75, 0x46, - 0x03, 0x4c, 0x83, 0x30, 0x48, 0x1f, 0x6b, 0xdf, 0x2a, 0x30, 0xfb, 0x90, 0x71, 0x2c, 0xa4, 0x46, - 0xd9, 0x91, 0xbb, 0xdc, 0x98, 0xe6, 0x40, 0x1a, 0x71, 0x88, 0xa0, 0xf6, 0x03, 0x8c, 0xe3, 0xca, - 0xe4, 0x8c, 0xd8, 0x18, 0x9d, 0xfd, 0x99, 0x7f, 0x34, 0xfb, 0xf5, 0xef, 0x15, 0x58, 0x14, 0xe2, - 0xa2, 0x8e, 0xfc, 0xf8, 0xbc, 0xc0, 0x5b, 0xd3, 0x76, 0xcc, 0x78, 0x91, 0xbb, 0x17, 0x45, 0xde, - 0x99, 0xfe, 0x8a, 0x3f, 0x13, 0xba, 0x09, 0x05, 0xa1, 0xb3, 0x4e, 0x3c, 0x1b, 0xfb, 0x1c, 0x3f, - 0x4d, 0x3b, 0x50, 0xd7, 0x61, 0xe9, 0x61, 0xe8, 0x38, 0xe3, 0xae, 0x86, 0x3b, 0xa0, 0x45, 0xb7, - 0xd7, 0x4e, 0xc8, 0xed, 0x03, 0xd2, 0xa5, 0x88, 0x87, 0x3e, 0x4e, 0x9d, 0xc3, 0x57, 0x6b, 0x84, - 0x5a, 0x84, 0x76, 0x27, 0x21, 0x7f, 0x55, 0x20, 0x2b, 0x14, 0x36, 0xd1, 0xc0, 0x61, 0xc8, 0xd2, - 0x9e, 0xc0, 0x15, 0xca, 0x38, 0xee, 0x98, 0xc3, 0xbb, 0x40, 0xa6, 0xb5, 0x34, 0x61, 0xfb, 0x17, - 0x2e, 0x1b, 0xa3, 0x20, 0x68, 0x46, 0x6e, 0x94, 0x1b, 0x90, 0xc7, 0x9e, 0x8d, 0x5d, 0xec, 0x23, - 0xa7, 0xd3, 0xc3, 0x03, 0x99, 0xed, 0xdc, 0xf0, 0xa5, 0x38, 0x8a, 0x9f, 0x43, 0x01, 0xd3, 0x88, - 0x19, 0x5b, 0x1d, 0x41, 0x30, 0xe5, 0x67, 0xc7, 0xf9, 0x1c, 0x1b, 0xf9, 0x21, 0x89, 0x70, 0xe8, - 0x2f, 0x15, 0x58, 0xbe, 0x20, 0xaf, 0xe9, 0x33, 0x76, 0xfc, 0xef, 0x6d, 0x76, 0x15, 0x16, 0x3d, - 0x16, 0x10, 0xf1, 0x81, 0x21, 0xef, 0xbc, 0xa1, 0xad, 0x35, 0x60, 0x09, 0x85, 0xdc, 0xee, 0x78, - 0x88, 0xdb, 0x2b, 0x99, 0xf5, 0xcc, 0x14, 0xcb, 0xc5, 0xf3, 0xa8, 0x89, 0xb8, 0x5d, 0xb7, 0x43, - 0xda, 0x33, 0x16, 0x05, 0x81, 0x30, 0x75, 0x1b, 0xae, 0x5c, 0x70, 0x6a, 0x6f, 0xc1, 0x92, 0xf8, - 0x94, 0x24, 0xb4, 0xdb, 0xd9, 0x92, 0xb5, 0x5e, 0x94, 0x2f, 0xb6, 0x46, 0x9d, 0x15, 0x59, 0x81, - 0xc4, 0x59, 0x19, 0x75, 0x6e, 0xcb, 0x2f, 0x8a, 0xc4, 0xb9, 0xad, 0xbf, 0x0d, 0xb3, 0x75, 0xd9, - 0x2d, 0xaf, 0x39, 0x46, 0x3a, 0xc0, 0xa7, 0xc7, 0xc7, 0xd8, 0xe4, 0x7b, 0x28, 0xb0, 0x53, 0x30, - 0x37, 0x21, 0xdf, 0x6e, 0x3c, 0x0a, 0xb9, 0x17, 0xca, 0xf4, 0xbf, 0x1e, 0xb6, 0x01, 0xb9, 0x76, - 0x23, 0x3a, 0xe9, 0xe3, 0x50, 0x37, 0x20, 0xdb, 0x6e, 0x1c, 0x9c, 0x20, 0x6f, 0x1c, 0xa8, 0x04, - 0x6f, 0xb6, 0x1b, 0x8f, 0xa9, 0x85, 0x1d, 0xdc, 0x15, 0x05, 0x73, 0x10, 0x71, 0xc7, 0xe1, 0xef, - 0xc2, 0x72, 0xbb, 0xb1, 0x1b, 0xa3, 0x99, 0xdf, 0x12, 0x6d, 0x91, 0x8e, 0xae, 0xfd, 0xa8, 0xfe, - 0x74, 0x5a, 0x54, 0x5e, 0x9c, 0x16, 0x95, 0x5f, 0x4e, 0x8b, 0xca, 0xf3, 0x57, 0xc5, 0x99, 0x17, - 0xaf, 0x8a, 0x33, 0x2f, 0x5f, 0x15, 0x67, 0xe0, 0xba, 0xc9, 0xdc, 0xf1, 0x35, 0xad, 0x65, 0xeb, - 0xd1, 0x8b, 0xa6, 0xf8, 0xf1, 0x6a, 0x2a, 0xed, 0x2f, 0xba, 0x84, 0xdb, 0xe1, 0x51, 0xc9, 0x64, - 0x6e, 0xd9, 0x64, 0x81, 0xcb, 0x82, 0xb2, 0x8f, 0x1d, 0x34, 0xc0, 0x7e, 0xb9, 0x5f, 0x19, 0x3e, - 0x9a, 0x36, 0x22, 0x34, 0x28, 0x8f, 0xfd, 0xa5, 0xfb, 0x30, 0xb6, 0x13, 0xf3, 0x3b, 0x35, 0xd3, - 0xac, 0xd7, 0x7f, 0x50, 0xd7, 0x9a, 0x89, 0x9c, 0xba, 0x90, 0x13, 0xaf, 0x5e, 0x6a, 0x49, 0xd4, - 0xcf, 0x67, 0xfe, 0x43, 0xe1, 0x3f, 0x8c, 0xfd, 0x87, 0x89, 0xff, 0x54, 0xbd, 0x3d, 0xd6, 0x7f, - 0x78, 0xbf, 0x59, 0x7b, 0x80, 0x39, 0xb2, 0x10, 0x47, 0xbf, 0xab, 0xeb, 0x09, 0xb6, 0x5a, 0x15, - 0xe0, 0x6a, 0x35, 0x46, 0x57, 0xab, 0x09, 0xfc, 0x68, 0x3e, 0xfa, 0xe1, 0xdc, 0xfe, 0x2b, 0x00, - 0x00, 0xff, 0xff, 0x4f, 0xe3, 0x78, 0x0b, 0x9e, 0x0e, 0x00, 0x00, + // 1437 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xcd, 0x6e, 0x1b, 0xb7, + 0x16, 0xf6, 0x48, 0xb6, 0x25, 0x1f, 0xc9, 0xb2, 0x43, 0x18, 0x81, 0xae, 0xef, 0xb5, 0xe3, 0x4c, + 0x1c, 0x5f, 0x27, 0x37, 0x57, 0x86, 0x65, 0x74, 0xe3, 0xa2, 0x45, 0x2c, 0xb9, 0x89, 0x5d, 0x21, + 0x89, 0x30, 0x6e, 0x9c, 0x42, 0x30, 0x20, 0xd0, 0x33, 0xb4, 0x86, 0xd0, 0x0c, 0x39, 0x9d, 0x1f, + 0x39, 0xea, 0x0b, 0x14, 0x5d, 0x35, 0xeb, 0x2e, 0xbb, 0xe8, 0xa2, 0x6f, 0xd0, 0x5d, 0x97, 0x45, + 0x57, 0x59, 0x66, 0xd9, 0x3a, 0x8b, 0x02, 0x5d, 0x75, 0xd1, 0x07, 0x28, 0xc8, 0xe1, 0xc8, 0xb2, + 0x61, 0xfd, 0x24, 0x41, 0xd1, 0xee, 0x78, 0x78, 0xbe, 0xf3, 0xf1, 0xe3, 0x39, 0xe4, 0x1c, 0x4a, + 0x70, 0xd7, 0x23, 0x2c, 0x72, 0x8f, 0x7d, 0xbc, 0x61, 0x72, 0x9f, 0x6c, 0x98, 0x7e, 0xd7, 0x0b, + 0xf9, 0x46, 0x67, 0x13, 0x3b, 0x9e, 0x8d, 0x37, 0x95, 0x5d, 0xf2, 0x7c, 0x1e, 0x72, 0xb4, 0x94, + 0x60, 0x4b, 0x02, 0x5b, 0x52, 0xbe, 0x04, 0xab, 0x7f, 0xa1, 0x41, 0xfa, 0x01, 0x21, 0xe8, 0x03, + 0x98, 0xc6, 0x2e, 0x8f, 0x58, 0x58, 0xd4, 0x56, 0xb4, 0xf5, 0x5c, 0xf9, 0x76, 0x69, 0x68, 0x5c, + 0x69, 0x47, 0x82, 0x0d, 0x15, 0x84, 0x76, 0x20, 0x8b, 0x83, 0x80, 0x84, 0x4d, 0x6a, 0x15, 0x53, + 0x92, 0x60, 0x6d, 0x14, 0x81, 0x80, 0xef, 0x5b, 0x46, 0x06, 0xc7, 0x03, 0xfd, 0x3e, 0x64, 0x76, + 0x2c, 0xcb, 0x27, 0x41, 0x80, 0x16, 0x60, 0x8a, 0x32, 0x46, 0x7c, 0xa9, 0x25, 0x6f, 0xc4, 0x06, + 0xba, 0x01, 0x39, 0xec, 0x84, 0xcd, 0x63, 0x62, 0xda, 0x5b, 0x65, 0x57, 0x2e, 0x33, 0x63, 0x00, + 0x76, 0xc2, 0x4a, 0x3c, 0xa3, 0xff, 0x9e, 0x86, 0x9c, 0xa2, 0x38, 0xa4, 0xe4, 0x14, 0x3d, 0x86, + 0x4c, 0x87, 0x06, 0xf4, 0xd8, 0x21, 0x6a, 0x53, 0xe5, 0x51, 0x9a, 0xce, 0x83, 0x4b, 0x87, 0x71, + 0xe4, 0xde, 0x84, 0x91, 0x90, 0xa0, 0x1a, 0x4c, 0x73, 0x0f, 0x7f, 0x16, 0x11, 0xb5, 0xc5, 0xcd, + 0x37, 0xa0, 0x7b, 0x22, 0x03, 0xf7, 0x26, 0x0c, 0x45, 0xb1, 0xf8, 0xab, 0x06, 0x19, 0xb5, 0x06, + 0xba, 0x0f, 0x19, 0x1c, 0x63, 0x95, 0xd0, 0xb5, 0xf1, 0x98, 0x8d, 0x24, 0x0c, 0xed, 0x88, 0x8c, + 0x59, 0xe4, 0xb9, 0x52, 0xf6, 0xbf, 0xf1, 0xe2, 0xf7, 0x45, 0x88, 0x11, 0x47, 0xa2, 0x67, 0x30, + 0x8f, 0x4d, 0x53, 0x54, 0xb3, 0xd9, 0xf2, 0x79, 0xe4, 0x89, 0x52, 0xa6, 0x25, 0xdb, 0xff, 0x47, + 0xb1, 0xc5, 0x61, 0x0f, 0x45, 0xd4, 0xbe, 0x65, 0x14, 0xf0, 0x05, 0x7b, 0xf1, 0x63, 0x98, 0x8e, + 0x77, 0xff, 0xee, 0xfb, 0xac, 0x14, 0x20, 0xaf, 0x86, 0xcd, 0x0e, 0x25, 0xa7, 0xfa, 0x0a, 0x64, + 0x0f, 0x3c, 0xc2, 0xac, 0x1a, 0xe9, 0x5e, 0x7d, 0x6a, 0xf4, 0x7b, 0xb0, 0x20, 0x11, 0x87, 0xc4, + 0xa7, 0x27, 0xd4, 0xc4, 0x21, 0xe5, 0x6c, 0x30, 0x7a, 0x0d, 0x0a, 0x0f, 0x22, 0xc7, 0x11, 0x25, + 0xa3, 0xac, 0x35, 0x14, 0x77, 0x71, 0xd7, 0x03, 0x70, 0xb7, 0x20, 0xb7, 0x4b, 0x3b, 0xc4, 0x0f, + 0xe8, 0x09, 0x25, 0xfe, 0x00, 0xd0, 0x1e, 0xe4, 0xfb, 0x0b, 0x82, 0x8a, 0x90, 0x51, 0x29, 0x94, + 0xe5, 0x9c, 0x35, 0x12, 0x13, 0x2d, 0x03, 0xf8, 0x98, 0x59, 0xdc, 0xa5, 0x9f, 0x13, 0x5f, 0x56, + 0x27, 0x6f, 0xf4, 0xcd, 0xe8, 0xff, 0x85, 0xb9, 0x83, 0x10, 0x87, 0xa4, 0xca, 0x5d, 0x97, 0x86, + 0x2e, 0x61, 0xe1, 0x80, 0x25, 0xef, 0xc0, 0xb5, 0x0a, 0x76, 0x30, 0x33, 0x47, 0x43, 0x4f, 0x20, + 0xa3, 0xee, 0xea, 0x5b, 0xde, 0x4b, 0xb4, 0x0a, 0x05, 0x09, 0xc0, 0x01, 0x69, 0x5a, 0x84, 0x71, + 0x57, 0x2a, 0x9f, 0x31, 0xf2, 0x02, 0x83, 0x03, 0xb2, 0x2b, 0xe6, 0xf4, 0x75, 0x98, 0x8e, 0x3f, + 0x2a, 0xa8, 0x00, 0x29, 0x87, 0xcb, 0x35, 0x26, 0x8d, 0x94, 0xc3, 0x85, 0x6d, 0x53, 0xc9, 0x3b, + 0x69, 0xa4, 0x6c, 0xaa, 0x2f, 0xc1, 0x94, 0x0c, 0x11, 0x7a, 0x62, 0x3e, 0x4d, 0xf2, 0xc5, 0x86, + 0xfe, 0x2a, 0x05, 0xb3, 0xd2, 0xff, 0x88, 0x84, 0xd8, 0xc2, 0x21, 0x46, 0x2b, 0x90, 0xb3, 0x48, + 0x60, 0xfa, 0xd4, 0x13, 0xd5, 0x57, 0xe8, 0xfe, 0x29, 0xb4, 0x2f, 0x10, 0x8c, 0xbb, 0xcd, 0x88, + 0xd1, 0x30, 0x28, 0xa6, 0x56, 0xd2, 0xeb, 0xb9, 0xf2, 0xfa, 0x88, 0xd3, 0x29, 0x17, 0x79, 0xca, + 0x68, 0x68, 0x80, 0x95, 0x0c, 0x03, 0x84, 0x60, 0x52, 0xec, 0x54, 0xed, 0x51, 0x8e, 0x45, 0x45, + 0x2d, 0x1a, 0x78, 0x0e, 0xee, 0x16, 0x27, 0xe5, 0x74, 0x62, 0x0a, 0x34, 0xc3, 0x2e, 0x29, 0x4e, + 0xc5, 0x68, 0x31, 0x46, 0xd7, 0x61, 0x3a, 0xe8, 0xba, 0xc7, 0xdc, 0x29, 0x4e, 0xcb, 0x59, 0x65, + 0xa1, 0x79, 0x48, 0x47, 0x3e, 0x2d, 0x66, 0xe4, 0xa4, 0x18, 0xa2, 0x7f, 0x41, 0x36, 0xf2, 0x69, + 0xd3, 0xc6, 0x81, 0x5d, 0xcc, 0xc6, 0xc4, 0x91, 0x4f, 0xf7, 0x70, 0x60, 0xa3, 0x03, 0xb8, 0x96, + 0xa8, 0x6f, 0xf6, 0x3e, 0xcd, 0x3f, 0xcc, 0xbd, 0xd1, 0xb7, 0x79, 0x2e, 0x81, 0xa9, 0x09, 0xfd, + 0x19, 0xcc, 0xf4, 0x36, 0x7d, 0x75, 0xf6, 0xd1, 0x22, 0x64, 0xc9, 0x73, 0x8f, 0x33, 0xd2, 0x3b, + 0xbd, 0x3d, 0x5b, 0x1e, 0x6c, 0x87, 0xe2, 0x80, 0x04, 0xc5, 0xf4, 0x4a, 0x5a, 0xa8, 0x55, 0xa6, + 0xfe, 0xa5, 0x06, 0x53, 0x87, 0xd8, 0x89, 0xfe, 0x09, 0x8d, 0xe8, 0x8f, 0x34, 0xcc, 0x48, 0x2d, + 0xb2, 0x89, 0x1c, 0x42, 0xae, 0xcd, 0xf8, 0x29, 0x6b, 0x9e, 0xef, 0x35, 0x57, 0xde, 0x1a, 0xc1, + 0xd9, 0x0b, 0x2f, 0xd5, 0x44, 0xac, 0xcc, 0xd9, 0xde, 0x84, 0x01, 0xed, 0x9e, 0x85, 0x8e, 0x60, + 0x36, 0x62, 0xfd, 0xcc, 0xb1, 0xda, 0xf7, 0xc6, 0x66, 0x7e, 0xca, 0xda, 0xfd, 0xdc, 0xf9, 0xa8, + 0xcf, 0x5e, 0xfc, 0x4a, 0x03, 0x38, 0x5f, 0xfa, 0x5d, 0x93, 0x5a, 0x49, 0x2a, 0x1d, 0x6b, 0xbc, + 0x37, 0xce, 0xbd, 0x48, 0x2e, 0x9f, 0x3a, 0x17, 0x8b, 0x2f, 0x34, 0xc8, 0xf7, 0x4b, 0xfe, 0xfb, + 0x0b, 0x5d, 0xc9, 0x03, 0x74, 0x44, 0x3a, 0xe3, 0x56, 0xa2, 0x03, 0x3c, 0x22, 0x7e, 0xdb, 0x21, + 0x06, 0xe7, 0x83, 0xbe, 0x85, 0x4b, 0x90, 0xdb, 0xb7, 0x08, 0x0b, 0x69, 0xd8, 0x15, 0xbd, 0xa1, + 0x00, 0x29, 0xda, 0x56, 0x88, 0x14, 0x6d, 0xeb, 0x37, 0x60, 0xf6, 0x21, 0xef, 0x10, 0x9f, 0x89, + 0x0f, 0xab, 0x02, 0xb4, 0x7a, 0x80, 0x56, 0x5b, 0x5f, 0x85, 0x7c, 0x95, 0xb3, 0x80, 0xb0, 0x20, + 0x0a, 0x06, 0x37, 0x97, 0xaf, 0x35, 0x98, 0x7c, 0xcc, 0x43, 0x82, 0xb6, 0x61, 0x4a, 0x0a, 0x54, + 0x19, 0x5a, 0x1d, 0xe7, 0x6c, 0x18, 0x71, 0x88, 0xa0, 0xf6, 0x03, 0x42, 0xe2, 0xe4, 0xe4, 0x8d, + 0xd8, 0xe8, 0xef, 0xc0, 0xe9, 0xb7, 0xea, 0xc0, 0xfa, 0xb7, 0x1a, 0x64, 0x85, 0x38, 0x79, 0x39, + 0x3e, 0xbc, 0x28, 0x70, 0x7d, 0xdc, 0xc3, 0x3b, 0x5c, 0xe4, 0xee, 0x65, 0x91, 0x77, 0xc7, 0x7f, + 0x68, 0x9d, 0x0b, 0x5d, 0x83, 0x82, 0xd0, 0x59, 0xa5, 0x9e, 0x4d, 0xfc, 0x90, 0x3c, 0x1f, 0x54, + 0xd3, 0x9b, 0x30, 0xf3, 0x38, 0x72, 0x9c, 0x61, 0x0d, 0xfa, 0x2e, 0x20, 0xf9, 0x86, 0xd8, 0x89, + 0x42, 0xfb, 0x80, 0xb6, 0x18, 0x0e, 0x23, 0x9f, 0x0c, 0xc0, 0xae, 0xc3, 0x7c, 0x85, 0x32, 0x8b, + 0xb2, 0xd6, 0x28, 0xe4, 0x2f, 0x1a, 0xe4, 0x84, 0xc2, 0x3a, 0xee, 0x3a, 0x1c, 0x5b, 0xe8, 0x19, + 0xcc, 0x31, 0x1e, 0x92, 0xa6, 0xd9, 0xeb, 0xc8, 0x2a, 0xad, 0xa5, 0x11, 0xdb, 0xbf, 0xd4, 0xf2, + 0x8d, 0x82, 0xa0, 0xe9, 0xeb, 0xeb, 0xb7, 0x60, 0x96, 0x78, 0x36, 0x71, 0x89, 0x8f, 0x9d, 0x66, + 0x9b, 0x74, 0x55, 0xb6, 0xf3, 0xbd, 0x49, 0x71, 0x14, 0x3f, 0x81, 0x02, 0x61, 0x92, 0x99, 0x58, + 0x4d, 0x41, 0x30, 0xe6, 0xe3, 0xef, 0x62, 0x8e, 0x8d, 0xd9, 0x1e, 0x89, 0x70, 0xe8, 0xaf, 0x34, + 0x58, 0xb8, 0x24, 0xaf, 0xee, 0x73, 0x7e, 0xf2, 0xd7, 0x6d, 0x76, 0x11, 0xb2, 0x1e, 0x0f, 0xa8, + 0x6c, 0xf4, 0xf1, 0x93, 0xa1, 0x67, 0xa3, 0x1a, 0xcc, 0xe0, 0x28, 0xb4, 0x9b, 0x1e, 0x0e, 0x6d, + 0xd9, 0x81, 0x46, 0x2f, 0x17, 0x7f, 0x12, 0xea, 0x38, 0xb4, 0xab, 0x76, 0xc4, 0xda, 0x46, 0x56, + 0x10, 0x08, 0x53, 0xb7, 0x61, 0xee, 0x92, 0x13, 0xfd, 0x1b, 0x66, 0xc4, 0x83, 0x9e, 0xb2, 0x56, + 0x73, 0x53, 0xd5, 0x3a, 0xab, 0x26, 0x36, 0xfb, 0x9d, 0x65, 0x55, 0x81, 0xc4, 0x59, 0xee, 0x77, + 0x6e, 0xa9, 0x77, 0x5d, 0xe2, 0xdc, 0xd2, 0xff, 0x03, 0x93, 0x55, 0x75, 0x5b, 0xae, 0x38, 0x46, + 0x3a, 0xc0, 0x47, 0x27, 0x27, 0xc4, 0x0c, 0x65, 0xdb, 0xbf, 0x1a, 0x73, 0x1b, 0x66, 0x1b, 0xb5, + 0x27, 0x51, 0xe8, 0x45, 0x2a, 0xfd, 0x57, 0xc3, 0x56, 0x21, 0xdf, 0xa8, 0xc9, 0x93, 0x3e, 0x0c, + 0x75, 0x0b, 0x72, 0x8d, 0xda, 0xc1, 0x29, 0xf6, 0x86, 0x81, 0xd6, 0x61, 0x3e, 0x06, 0x55, 0x1d, + 0x4c, 0xdd, 0x61, 0xc8, 0x12, 0x5c, 0x6f, 0xd4, 0x9e, 0x32, 0x8b, 0x38, 0xa4, 0x25, 0x4a, 0x3b, + 0x0a, 0x7f, 0x0f, 0x16, 0x1a, 0xb5, 0xdd, 0x18, 0xcd, 0xfd, 0x43, 0x71, 0x81, 0x86, 0xa0, 0xcb, + 0xb0, 0xd8, 0xa8, 0xf5, 0xee, 0xf7, 0x2e, 0xf1, 0x69, 0x47, 0xfe, 0x04, 0x18, 0x12, 0x53, 0xf9, + 0x3e, 0xf5, 0xe3, 0xd9, 0xb2, 0xf6, 0xf2, 0x6c, 0x59, 0xfb, 0xf9, 0x6c, 0x59, 0x7b, 0xf1, 0x7a, + 0x79, 0xe2, 0xe5, 0xeb, 0xe5, 0x89, 0x57, 0xaf, 0x97, 0x27, 0xe0, 0xa6, 0xc9, 0xdd, 0xe1, 0x27, + 0xa6, 0x92, 0xab, 0xca, 0x89, 0xba, 0xf8, 0xf5, 0x5d, 0xd7, 0x1a, 0x9f, 0xb6, 0x68, 0x68, 0x47, + 0xc7, 0x25, 0x93, 0xbb, 0x1b, 0x26, 0x0f, 0x5c, 0x1e, 0x6c, 0xf8, 0xc4, 0xc1, 0x5d, 0xe2, 0x6f, + 0x74, 0xca, 0xbd, 0xa1, 0x69, 0x63, 0xca, 0x82, 0x8d, 0xa1, 0xbf, 0xeb, 0xdf, 0x8f, 0xed, 0xc4, + 0xfc, 0x26, 0x95, 0xae, 0x57, 0xab, 0xdf, 0xa5, 0x96, 0xea, 0x89, 0x9c, 0xaa, 0x90, 0x13, 0xaf, + 0x5e, 0x3a, 0x54, 0xa8, 0x9f, 0xce, 0xfd, 0x47, 0xc2, 0x7f, 0x14, 0xfb, 0x8f, 0x12, 0xff, 0x59, + 0xea, 0xce, 0x50, 0xff, 0xd1, 0xc3, 0x7a, 0x25, 0x69, 0xe5, 0xbf, 0xa5, 0x56, 0x12, 0xec, 0xf6, + 0xb6, 0x00, 0x6f, 0x6f, 0xc7, 0xe8, 0xed, 0xed, 0x04, 0x7e, 0x3c, 0x2d, 0xff, 0x75, 0xd8, 0xfa, + 0x33, 0x00, 0x00, 0xff, 0xff, 0x88, 0xb9, 0x8c, 0xd5, 0xa3, 0x10, 0x00, 0x00, } func (m *Fee) Marshal() (dAtA []byte, err error) { @@ -2290,6 +2588,13 @@ func (m *Address) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.AltBech32M) > 0 { + i -= len(m.AltBech32M) + copy(dAtA[i:], m.AltBech32M) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.AltBech32M))) + i-- + dAtA[i] = 0x12 + } if len(m.Inner) > 0 { i -= len(m.Inner) copy(dAtA[i:], m.Inner) @@ -2733,6 +3038,20 @@ func (m *AssetId) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.AltBaseDenom) > 0 { + i -= len(m.AltBaseDenom) + copy(dAtA[i:], m.AltBaseDenom) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.AltBaseDenom))) + i-- + dAtA[i] = 0x1a + } + if len(m.AltBech32M) > 0 { + i -= len(m.AltBech32M) + copy(dAtA[i:], m.AltBech32M) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.AltBech32M))) + i-- + dAtA[i] = 0x12 + } if len(m.Inner) > 0 { i -= len(m.Inner) copy(dAtA[i:], m.Inner) @@ -2806,6 +3125,150 @@ func (m *Denom) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *DenomMetadata) 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 *DenomMetadata) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DenomMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.PenumbraAssetId != nil { + { + size, err := m.PenumbraAssetId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7c + i-- + dAtA[i] = 0x82 + } + if len(m.UriHash) > 0 { + i -= len(m.UriHash) + copy(dAtA[i:], m.UriHash) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.UriHash))) + i-- + dAtA[i] = 0x42 + } + if len(m.Uri) > 0 { + i -= len(m.Uri) + copy(dAtA[i:], m.Uri) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Uri))) + i-- + dAtA[i] = 0x3a + } + if len(m.Symbol) > 0 { + i -= len(m.Symbol) + copy(dAtA[i:], m.Symbol) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Symbol))) + i-- + dAtA[i] = 0x32 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x2a + } + if len(m.Display) > 0 { + i -= len(m.Display) + copy(dAtA[i:], m.Display) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Display))) + i-- + dAtA[i] = 0x22 + } + if len(m.Base) > 0 { + i -= len(m.Base) + copy(dAtA[i:], m.Base) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Base))) + i-- + dAtA[i] = 0x1a + } + if len(m.DenomUnits) > 0 { + for iNdEx := len(m.DenomUnits) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DenomUnits[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCrypto(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DenomUnit) 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 *DenomUnit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DenomUnit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Aliases) > 0 { + for iNdEx := len(m.Aliases) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Aliases[iNdEx]) + copy(dAtA[i:], m.Aliases[iNdEx]) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Aliases[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if m.Exponent != 0 { + i = encodeVarintCrypto(dAtA, i, uint64(m.Exponent)) + i-- + dAtA[i] = 0x10 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *Value) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3051,53 +3514,6 @@ func (m *MerkleRoot) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Asset) 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 *Asset) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Asset) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Denom != nil { - { - size, err := m.Denom.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintCrypto(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.Id != nil { - { - size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintCrypto(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *IdentityKey) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3718,6 +4134,36 @@ func (m *ZKSwapProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ZKSwapClaimProof) 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 *ZKSwapClaimProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ZKSwapClaimProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *ZKUndelegateClaimProof) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3778,6 +4224,36 @@ func (m *ZKDelegatorVoteProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ZKNullifierDerivationProof) 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 *ZKNullifierDerivationProof) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ZKNullifierDerivationProof) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Inner) > 0 { + i -= len(m.Inner) + copy(dAtA[i:], m.Inner) + i = encodeVarintCrypto(dAtA, i, uint64(len(m.Inner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintCrypto(dAtA []byte, offset int, v uint64) int { offset -= sovCrypto(v) base := offset @@ -3816,6 +4292,10 @@ func (m *Address) Size() (n int) { if l > 0 { n += 1 + l + sovCrypto(uint64(l)) } + l = len(m.AltBech32M) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } return n } @@ -4006,6 +4486,14 @@ func (m *AssetId) Size() (n int) { if l > 0 { n += 1 + l + sovCrypto(uint64(l)) } + l = len(m.AltBech32M) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.AltBaseDenom) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } return n } @@ -4037,6 +4525,75 @@ func (m *Denom) Size() (n int) { return n } +func (m *DenomMetadata) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Description) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + if len(m.DenomUnits) > 0 { + for _, e := range m.DenomUnits { + l = e.Size() + n += 1 + l + sovCrypto(uint64(l)) + } + } + l = len(m.Base) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Display) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Symbol) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.Uri) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + l = len(m.UriHash) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + if m.PenumbraAssetId != nil { + l = m.PenumbraAssetId.Size() + n += 2 + l + sovCrypto(uint64(l)) + } + return n +} + +func (m *DenomUnit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + if m.Exponent != 0 { + n += 1 + sovCrypto(uint64(m.Exponent)) + } + if len(m.Aliases) > 0 { + for _, s := range m.Aliases { + l = len(s) + n += 1 + l + sovCrypto(uint64(l)) + } + } + return n +} + func (m *Value) Size() (n int) { if m == nil { return 0 @@ -4137,31 +4694,14 @@ func (m *MerkleRoot) Size() (n int) { return n } -func (m *Asset) Size() (n int) { +func (m *IdentityKey) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Id != nil { - l = m.Id.Size() - n += 1 + l + sovCrypto(uint64(l)) - } - if m.Denom != nil { - l = m.Denom.Size() - n += 1 + l + sovCrypto(uint64(l)) - } - return n -} - -func (m *IdentityKey) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Ik) - if l > 0 { + l = len(m.Ik) + if l > 0 { n += 1 + l + sovCrypto(uint64(l)) } return n @@ -4416,6 +4956,19 @@ func (m *ZKSwapProof) Size() (n int) { return n } +func (m *ZKSwapClaimProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + func (m *ZKUndelegateClaimProof) Size() (n int) { if m == nil { return 0 @@ -4442,6 +4995,19 @@ func (m *ZKDelegatorVoteProof) Size() (n int) { return n } +func (m *ZKNullifierDerivationProof) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Inner) + if l > 0 { + n += 1 + l + sovCrypto(uint64(l)) + } + return n +} + func sovCrypto(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -4633,6 +5199,38 @@ func (m *Address) Unmarshal(dAtA []byte) error { m.Inner = []byte{} } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AltBech32M", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + 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 ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AltBech32M = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCrypto(dAtA[iNdEx:]) @@ -5772,6 +6370,70 @@ func (m *AssetId) Unmarshal(dAtA []byte) error { m.Inner = []byte{} } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AltBech32M", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + 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 ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AltBech32M = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AltBaseDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + 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 ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AltBaseDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCrypto(dAtA[iNdEx:]) @@ -5963,7 +6625,7 @@ func (m *Denom) Unmarshal(dAtA []byte) error { } return nil } -func (m *Value) Unmarshal(dAtA []byte) error { +func (m *DenomMetadata) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5986,17 +6648,17 @@ func (m *Value) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Value: wiretype end group for non-group") + return fmt.Errorf("proto: DenomMetadata: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Value: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DenomMetadata: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCrypto @@ -6006,31 +6668,27 @@ func (m *Value) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCrypto } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthCrypto } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Amount == nil { - m.Amount = &Amount{} - } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Description = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DenomUnits", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6057,68 +6715,48 @@ func (m *Value) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AssetId == nil { - m.AssetId = &AssetId{} - } - if err := m.AssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.DenomUnits = append(m.DenomUnits, &DenomUnit{}) + if err := m.DenomUnits[len(m.DenomUnits)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCrypto(dAtA[iNdEx:]) - if err != nil { - return err + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Base", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCrypto + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCrypto } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ValueView) 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 ErrIntOverflowCrypto + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto } - if iNdEx >= l { + if postIndex > 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: ValueView: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ValueView: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.Base = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field KnownDenom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Display", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCrypto @@ -6128,32 +6766,29 @@ func (m *ValueView) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCrypto } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthCrypto } if postIndex > l { return io.ErrUnexpectedEOF } - v := &ValueView_KnownDenom{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.ValueView = &ValueView_KnownDenom_{v} + m.Display = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UnknownDenom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCrypto @@ -6163,28 +6798,157 @@ func (m *ValueView) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthCrypto } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthCrypto } if postIndex > l { return io.ErrUnexpectedEOF } - v := &ValueView_UnknownDenom{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.ValueView = &ValueView_UnknownDenom_{v} + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Symbol", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + 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 ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Symbol = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uri", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + 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 ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Uri = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UriHash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + 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 ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UriHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 1984: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PenumbraAssetId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PenumbraAssetId == nil { + m.PenumbraAssetId = &AssetId{} + } + if err := m.PenumbraAssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: iNdEx = preIndex skippy, err := skipCrypto(dAtA[iNdEx:]) if err != nil { @@ -6205,7 +6969,7 @@ func (m *ValueView) Unmarshal(dAtA []byte) error { } return nil } -func (m *ValueView_KnownDenom) Unmarshal(dAtA []byte) error { +func (m *DenomUnit) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6228,10 +6992,143 @@ func (m *ValueView_KnownDenom) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: KnownDenom: wiretype end group for non-group") + return fmt.Errorf("proto: DenomUnit: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: KnownDenom: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DenomUnit: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + 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 ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Exponent", wireType) + } + m.Exponent = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Exponent |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Aliases", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + 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 ErrInvalidLengthCrypto + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Aliases = append(m.Aliases, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Value) 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 ErrIntOverflowCrypto + } + 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: Value: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Value: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -6272,7 +7169,7 @@ func (m *ValueView_KnownDenom) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6299,10 +7196,10 @@ func (m *ValueView_KnownDenom) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Denom == nil { - m.Denom = &Denom{} + if m.AssetId == nil { + m.AssetId = &AssetId{} } - if err := m.Denom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.AssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -6327,7 +7224,7 @@ func (m *ValueView_KnownDenom) Unmarshal(dAtA []byte) error { } return nil } -func (m *ValueView_UnknownDenom) Unmarshal(dAtA []byte) error { +func (m *ValueView) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6350,10 +7247,130 @@ func (m *ValueView_UnknownDenom) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UnknownDenom: wiretype end group for non-group") + return fmt.Errorf("proto: ValueView: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UnknownDenom: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ValueView: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KnownDenom", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ValueView_KnownDenom{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ValueView = &ValueView_KnownDenom_{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnknownDenom", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ValueView_UnknownDenom{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.ValueView = &ValueView_UnknownDenom_{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValueView_KnownDenom) 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 ErrIntOverflowCrypto + } + 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: KnownDenom: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KnownDenom: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -6394,7 +7411,7 @@ func (m *ValueView_UnknownDenom) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6421,10 +7438,10 @@ func (m *ValueView_UnknownDenom) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AssetId == nil { - m.AssetId = &AssetId{} + if m.Denom == nil { + m.Denom = &DenomMetadata{} } - if err := m.AssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Denom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -6449,7 +7466,7 @@ func (m *ValueView_UnknownDenom) Unmarshal(dAtA []byte) error { } return nil } -func (m *MerkleRoot) Unmarshal(dAtA []byte) error { +func (m *ValueView_UnknownDenom) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6462,27 +7479,63 @@ func (m *MerkleRoot) Unmarshal(dAtA []byte) error { if iNdEx >= l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + 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: UnknownDenom: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnknownDenom: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Amount == nil { + m.Amount = &Amount{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MerkleRoot: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MerkleRoot: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCrypto @@ -6492,24 +7545,26 @@ func (m *MerkleRoot) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthCrypto } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthCrypto } if postIndex > l { return io.ErrUnexpectedEOF } - m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) - if m.Inner == nil { - m.Inner = []byte{} + if m.AssetId == nil { + m.AssetId = &AssetId{} + } + if err := m.AssetId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -6533,7 +7588,7 @@ func (m *MerkleRoot) Unmarshal(dAtA []byte) error { } return nil } -func (m *Asset) Unmarshal(dAtA []byte) error { +func (m *MerkleRoot) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6556,53 +7611,17 @@ func (m *Asset) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Asset: wiretype end group for non-group") + return fmt.Errorf("proto: MerkleRoot: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Asset: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MerkleRoot: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCrypto - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCrypto - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthCrypto - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Id == nil { - m.Id = &AssetId{} - } - if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) } - var msglen int + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCrypto @@ -6612,26 +7631,24 @@ func (m *Asset) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + if byteLen < 0 { return ErrInvalidLengthCrypto } - postIndex := iNdEx + msglen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthCrypto } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Denom == nil { - m.Denom = &Denom{} - } - if err := m.Denom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} } iNdEx = postIndex default: @@ -8422,6 +9439,90 @@ func (m *ZKSwapProof) Unmarshal(dAtA []byte) error { } return nil } +func (m *ZKSwapClaimProof) 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 ErrIntOverflowCrypto + } + 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: ZKSwapClaimProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ZKSwapClaimProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ZKUndelegateClaimProof) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -8590,6 +9691,90 @@ func (m *ZKDelegatorVoteProof) Unmarshal(dAtA []byte) error { } return nil } +func (m *ZKNullifierDerivationProof) 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 ErrIntOverflowCrypto + } + 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: ZKNullifierDerivationProof: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ZKNullifierDerivationProof: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inner", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCrypto + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthCrypto + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthCrypto + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inner = append(m.Inner[:0], dAtA[iNdEx:postIndex]...) + if m.Inner == nil { + m.Inner = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCrypto(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCrypto + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipCrypto(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go b/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go index 61ef18d9c..9456bbbb2 100644 --- a/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go +++ b/relayer/chains/penumbra/core/dex/v1alpha1/dex.pb.go @@ -62,18 +62,13 @@ func (x PositionState_PositionStateEnum) String() string { } func (PositionState_PositionStateEnum) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{19, 0} + return fileDescriptor_d1eba752ca2f0d70, []int{18, 0} } // A transaction action that submits a swap to the dex. type Swap struct { // Contains the Swap proof. Proof *v1alpha1.ZKSwapProof `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"` - // MockFlowCiphertext dropped until flow encryption/ABCI++ available - // // Encrypted amount of asset 1 of the trading pair. - // MockFlowCiphertext enc_amount_1 = 2; - // // Encrypted amount of asset 2 of the trading pair. - // MockFlowCiphertext enc_amount_2 = 3; // Encapsulates the authorized fields of the Swap action, used in signing. Body *SwapBody `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"` } @@ -501,63 +496,22 @@ func (m *SwapPlaintext) GetRseed() []byte { return nil } -type MockFlowCiphertext struct { - // Represents this transaction's contribution to flow's value. - Value *v1alpha1.Amount `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` -} - -func (m *MockFlowCiphertext) Reset() { *m = MockFlowCiphertext{} } -func (m *MockFlowCiphertext) String() string { return proto.CompactTextString(m) } -func (*MockFlowCiphertext) ProtoMessage() {} -func (*MockFlowCiphertext) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{6} -} -func (m *MockFlowCiphertext) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MockFlowCiphertext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MockFlowCiphertext.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 *MockFlowCiphertext) XXX_Merge(src proto.Message) { - xxx_messageInfo_MockFlowCiphertext.Merge(m, src) -} -func (m *MockFlowCiphertext) XXX_Size() int { - return m.Size() -} -func (m *MockFlowCiphertext) XXX_DiscardUnknown() { - xxx_messageInfo_MockFlowCiphertext.DiscardUnknown(m) -} - -var xxx_messageInfo_MockFlowCiphertext proto.InternalMessageInfo - -func (m *MockFlowCiphertext) GetValue() *v1alpha1.Amount { - if m != nil { - return m.Value - } - return nil -} - type SwapPlan struct { // The plaintext version of the swap to be performed. SwapPlaintext *SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` // The blinding factor for the fee commitment. The fee in the SwapPlan is private to prevent linkability with the SwapClaim. FeeBlinding []byte `protobuf:"bytes,2,opt,name=fee_blinding,json=feeBlinding,proto3" json:"fee_blinding,omitempty"` + // The first blinding factor to use for the ZK swap proof. + ProofBlindingR []byte `protobuf:"bytes,3,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` + // The second blinding factor to use for the ZK swap proof. + ProofBlindingS []byte `protobuf:"bytes,4,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` } func (m *SwapPlan) Reset() { *m = SwapPlan{} } func (m *SwapPlan) String() string { return proto.CompactTextString(m) } func (*SwapPlan) ProtoMessage() {} func (*SwapPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{7} + return fileDescriptor_d1eba752ca2f0d70, []int{6} } func (m *SwapPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -600,6 +554,20 @@ func (m *SwapPlan) GetFeeBlinding() []byte { return nil } +func (m *SwapPlan) GetProofBlindingR() []byte { + if m != nil { + return m.ProofBlindingR + } + return nil +} + +func (m *SwapPlan) GetProofBlindingS() []byte { + if m != nil { + return m.ProofBlindingS + } + return nil +} + type SwapClaimPlan struct { // The plaintext version of the swap to be performed. SwapPlaintext *SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` @@ -609,13 +577,17 @@ type SwapClaimPlan struct { OutputData *BatchSwapOutputData `protobuf:"bytes,3,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` // The epoch duration, used in proving. EpochDuration uint64 `protobuf:"varint,4,opt,name=epoch_duration,json=epochDuration,proto3" json:"epoch_duration,omitempty"` + // The first blinding factor to use for the ZK swap claim proof. + ProofBlindingR []byte `protobuf:"bytes,5,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` + // The second blinding factor to use for the ZK swap claim proof. + ProofBlindingS []byte `protobuf:"bytes,6,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` } func (m *SwapClaimPlan) Reset() { *m = SwapClaimPlan{} } func (m *SwapClaimPlan) String() string { return proto.CompactTextString(m) } func (*SwapClaimPlan) ProtoMessage() {} func (*SwapClaimPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{8} + return fileDescriptor_d1eba752ca2f0d70, []int{7} } func (m *SwapClaimPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -672,6 +644,20 @@ func (m *SwapClaimPlan) GetEpochDuration() uint64 { return 0 } +func (m *SwapClaimPlan) GetProofBlindingR() []byte { + if m != nil { + return m.ProofBlindingR + } + return nil +} + +func (m *SwapClaimPlan) GetProofBlindingS() []byte { + if m != nil { + return m.ProofBlindingS + } + return nil +} + type SwapView struct { // Types that are valid to be assigned to SwapView: // @@ -684,7 +670,7 @@ func (m *SwapView) Reset() { *m = SwapView{} } func (m *SwapView) String() string { return proto.CompactTextString(m) } func (*SwapView) ProtoMessage() {} func (*SwapView) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{9} + return fileDescriptor_d1eba752ca2f0d70, []int{8} } func (m *SwapView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -767,7 +753,7 @@ func (m *SwapView_Visible) Reset() { *m = SwapView_Visible{} } func (m *SwapView_Visible) String() string { return proto.CompactTextString(m) } func (*SwapView_Visible) ProtoMessage() {} func (*SwapView_Visible) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{9, 0} + return fileDescriptor_d1eba752ca2f0d70, []int{8, 0} } func (m *SwapView_Visible) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -818,7 +804,7 @@ func (m *SwapView_Opaque) Reset() { *m = SwapView_Opaque{} } func (m *SwapView_Opaque) String() string { return proto.CompactTextString(m) } func (*SwapView_Opaque) ProtoMessage() {} func (*SwapView_Opaque) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{9, 1} + return fileDescriptor_d1eba752ca2f0d70, []int{8, 1} } func (m *SwapView_Opaque) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -866,7 +852,7 @@ func (m *SwapClaimView) Reset() { *m = SwapClaimView{} } func (m *SwapClaimView) String() string { return proto.CompactTextString(m) } func (*SwapClaimView) ProtoMessage() {} func (*SwapClaimView) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{10} + return fileDescriptor_d1eba752ca2f0d70, []int{9} } func (m *SwapClaimView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -950,7 +936,7 @@ func (m *SwapClaimView_Visible) Reset() { *m = SwapClaimView_Visible{} } func (m *SwapClaimView_Visible) String() string { return proto.CompactTextString(m) } func (*SwapClaimView_Visible) ProtoMessage() {} func (*SwapClaimView_Visible) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{10, 0} + return fileDescriptor_d1eba752ca2f0d70, []int{9, 0} } func (m *SwapClaimView_Visible) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1008,7 +994,7 @@ func (m *SwapClaimView_Opaque) Reset() { *m = SwapClaimView_Opaque{} } func (m *SwapClaimView_Opaque) String() string { return proto.CompactTextString(m) } func (*SwapClaimView_Opaque) ProtoMessage() {} func (*SwapClaimView_Opaque) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{10, 1} + return fileDescriptor_d1eba752ca2f0d70, []int{9, 1} } func (m *SwapClaimView_Opaque) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1058,7 +1044,7 @@ func (m *TradingPair) Reset() { *m = TradingPair{} } func (m *TradingPair) String() string { return proto.CompactTextString(m) } func (*TradingPair) ProtoMessage() {} func (*TradingPair) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{11} + return fileDescriptor_d1eba752ca2f0d70, []int{10} } func (m *TradingPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1114,7 +1100,7 @@ func (m *DirectedTradingPair) Reset() { *m = DirectedTradingPair{} } func (m *DirectedTradingPair) String() string { return proto.CompactTextString(m) } func (*DirectedTradingPair) ProtoMessage() {} func (*DirectedTradingPair) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{12} + return fileDescriptor_d1eba752ca2f0d70, []int{11} } func (m *DirectedTradingPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1166,25 +1152,27 @@ type BatchSwapOutputData struct { Delta_1 *v1alpha1.Amount `protobuf:"bytes,1,opt,name=delta_1,json=delta1,proto3" json:"delta_1,omitempty"` // The total amount of asset 2 that was input to the batch swap. Delta_2 *v1alpha1.Amount `protobuf:"bytes,2,opt,name=delta_2,json=delta2,proto3" json:"delta_2,omitempty"` - // The total amount of asset 1 that was output from the batch swap for 1=>2 trades. - Lambda_1_1 *v1alpha1.Amount `protobuf:"bytes,3,opt,name=lambda_1_1,json=lambda11,proto3" json:"lambda_1_1,omitempty"` - // The total amount of asset 2 that was output from the batch swap for 1=>2 trades. - Lambda_2_1 *v1alpha1.Amount `protobuf:"bytes,4,opt,name=lambda_2_1,json=lambda21,proto3" json:"lambda_2_1,omitempty"` // The total amount of asset 1 that was output from the batch swap for 2=>1 trades. - Lambda_1_2 *v1alpha1.Amount `protobuf:"bytes,5,opt,name=lambda_1_2,json=lambda12,proto3" json:"lambda_1_2,omitempty"` - // The total amount of asset 2 that was output from the batch swap for 2=>1 trades. - Lambda_2_2 *v1alpha1.Amount `protobuf:"bytes,6,opt,name=lambda_2_2,json=lambda22,proto3" json:"lambda_2_2,omitempty"` + Lambda_1 *v1alpha1.Amount `protobuf:"bytes,3,opt,name=lambda_1,json=lambda1,proto3" json:"lambda_1,omitempty"` + // The total amount of asset 2 that was output from the batch swap for 1=>2 trades. + Lambda_2 *v1alpha1.Amount `protobuf:"bytes,4,opt,name=lambda_2,json=lambda2,proto3" json:"lambda_2,omitempty"` + // The total amount of asset 1 that was returned unfilled from the batch swap for 1=>2 trades. + Unfilled_1 *v1alpha1.Amount `protobuf:"bytes,5,opt,name=unfilled_1,json=unfilled1,proto3" json:"unfilled_1,omitempty"` + // The total amount of asset 2 that was returned unfilled from the batch swap for 2=>1 trades. + Unfilled_2 *v1alpha1.Amount `protobuf:"bytes,6,opt,name=unfilled_2,json=unfilled2,proto3" json:"unfilled_2,omitempty"` // The height for which the batch swap data is valid. Height uint64 `protobuf:"varint,7,opt,name=height,proto3" json:"height,omitempty"` // The trading pair associated with the batch swap. TradingPair *TradingPair `protobuf:"bytes,8,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + // The starting block height of the epoch for which the batch swap data is valid. + EpochStartingHeight uint64 `protobuf:"varint,9,opt,name=epoch_starting_height,json=epochStartingHeight,proto3" json:"epoch_starting_height,omitempty"` } func (m *BatchSwapOutputData) Reset() { *m = BatchSwapOutputData{} } func (m *BatchSwapOutputData) String() string { return proto.CompactTextString(m) } func (*BatchSwapOutputData) ProtoMessage() {} func (*BatchSwapOutputData) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{13} + return fileDescriptor_d1eba752ca2f0d70, []int{12} } func (m *BatchSwapOutputData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1227,30 +1215,30 @@ func (m *BatchSwapOutputData) GetDelta_2() *v1alpha1.Amount { return nil } -func (m *BatchSwapOutputData) GetLambda_1_1() *v1alpha1.Amount { +func (m *BatchSwapOutputData) GetLambda_1() *v1alpha1.Amount { if m != nil { - return m.Lambda_1_1 + return m.Lambda_1 } return nil } -func (m *BatchSwapOutputData) GetLambda_2_1() *v1alpha1.Amount { +func (m *BatchSwapOutputData) GetLambda_2() *v1alpha1.Amount { if m != nil { - return m.Lambda_2_1 + return m.Lambda_2 } return nil } -func (m *BatchSwapOutputData) GetLambda_1_2() *v1alpha1.Amount { +func (m *BatchSwapOutputData) GetUnfilled_1() *v1alpha1.Amount { if m != nil { - return m.Lambda_1_2 + return m.Unfilled_1 } return nil } -func (m *BatchSwapOutputData) GetLambda_2_2() *v1alpha1.Amount { +func (m *BatchSwapOutputData) GetUnfilled_2() *v1alpha1.Amount { if m != nil { - return m.Lambda_2_2 + return m.Unfilled_2 } return nil } @@ -1269,6 +1257,13 @@ func (m *BatchSwapOutputData) GetTradingPair() *TradingPair { return nil } +func (m *BatchSwapOutputData) GetEpochStartingHeight() uint64 { + if m != nil { + return m.EpochStartingHeight + } + return 0 +} + // The trading function for a specific pair. // For a pair (asset_1, asset_2), a trading function is defined by: // `phi(R) = p*R_1 + q*R_2` and `gamma = 1 - fee`. @@ -1282,7 +1277,7 @@ func (m *TradingFunction) Reset() { *m = TradingFunction{} } func (m *TradingFunction) String() string { return proto.CompactTextString(m) } func (*TradingFunction) ProtoMessage() {} func (*TradingFunction) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{14} + return fileDescriptor_d1eba752ca2f0d70, []int{13} } func (m *TradingFunction) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1342,7 +1337,7 @@ func (m *BareTradingFunction) Reset() { *m = BareTradingFunction{} } func (m *BareTradingFunction) String() string { return proto.CompactTextString(m) } func (*BareTradingFunction) ProtoMessage() {} func (*BareTradingFunction) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{15} + return fileDescriptor_d1eba752ca2f0d70, []int{14} } func (m *BareTradingFunction) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1407,7 +1402,7 @@ func (m *Reserves) Reset() { *m = Reserves{} } func (m *Reserves) String() string { return proto.CompactTextString(m) } func (*Reserves) ProtoMessage() {} func (*Reserves) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{16} + return fileDescriptor_d1eba752ca2f0d70, []int{15} } func (m *Reserves) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1461,13 +1456,16 @@ type Position struct { Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` State *PositionState `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` Reserves *Reserves `protobuf:"bytes,4,opt,name=reserves,proto3" json:"reserves,omitempty"` + // / If set to true, the position is a limit-order and will be closed + // / immediately after being filled. + CloseOnFill bool `protobuf:"varint,5,opt,name=close_on_fill,json=closeOnFill,proto3" json:"close_on_fill,omitempty"` } func (m *Position) Reset() { *m = Position{} } func (m *Position) String() string { return proto.CompactTextString(m) } func (*Position) ProtoMessage() {} func (*Position) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{17} + return fileDescriptor_d1eba752ca2f0d70, []int{16} } func (m *Position) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1524,16 +1522,32 @@ func (m *Position) GetReserves() *Reserves { return nil } +func (m *Position) GetCloseOnFill() bool { + if m != nil { + return m.CloseOnFill + } + return false +} + // A hash of a `Position`. type PositionId struct { + // The bytes of the position ID. Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` + // Alternatively, a Bech32m-encoded string representation of the `inner` + // bytes. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_bech32m` set. + AltBech32M string `protobuf:"bytes,2,opt,name=alt_bech32m,json=altBech32m,proto3" json:"alt_bech32m,omitempty"` } func (m *PositionId) Reset() { *m = PositionId{} } func (m *PositionId) String() string { return proto.CompactTextString(m) } func (*PositionId) ProtoMessage() {} func (*PositionId) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{18} + return fileDescriptor_d1eba752ca2f0d70, []int{17} } func (m *PositionId) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1569,6 +1583,13 @@ func (m *PositionId) GetInner() []byte { return nil } +func (m *PositionId) GetAltBech32M() string { + if m != nil { + return m.AltBech32M + } + return "" +} + // The state of a position. type PositionState struct { State PositionState_PositionStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.dex.v1alpha1.PositionState_PositionStateEnum" json:"state,omitempty"` @@ -1578,7 +1599,7 @@ func (m *PositionState) Reset() { *m = PositionState{} } func (m *PositionState) String() string { return proto.CompactTextString(m) } func (*PositionState) ProtoMessage() {} func (*PositionState) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{19} + return fileDescriptor_d1eba752ca2f0d70, []int{18} } func (m *PositionState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1638,7 +1659,7 @@ func (m *LpNft) Reset() { *m = LpNft{} } func (m *LpNft) String() string { return proto.CompactTextString(m) } func (*LpNft) ProtoMessage() {} func (*LpNft) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{20} + return fileDescriptor_d1eba752ca2f0d70, []int{19} } func (m *LpNft) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1697,7 +1718,7 @@ func (m *PositionOpen) Reset() { *m = PositionOpen{} } func (m *PositionOpen) String() string { return proto.CompactTextString(m) } func (*PositionOpen) ProtoMessage() {} func (*PositionOpen) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{21} + return fileDescriptor_d1eba752ca2f0d70, []int{20} } func (m *PositionOpen) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1750,7 +1771,7 @@ func (m *PositionClose) Reset() { *m = PositionClose{} } func (m *PositionClose) String() string { return proto.CompactTextString(m) } func (*PositionClose) ProtoMessage() {} func (*PositionClose) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{22} + return fileDescriptor_d1eba752ca2f0d70, []int{21} } func (m *PositionClose) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1803,7 +1824,7 @@ func (m *PositionWithdraw) Reset() { *m = PositionWithdraw{} } func (m *PositionWithdraw) String() string { return proto.CompactTextString(m) } func (*PositionWithdraw) ProtoMessage() {} func (*PositionWithdraw) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{23} + return fileDescriptor_d1eba752ca2f0d70, []int{22} } func (m *PositionWithdraw) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1863,7 +1884,7 @@ func (m *PositionRewardClaim) Reset() { *m = PositionRewardClaim{} } func (m *PositionRewardClaim) String() string { return proto.CompactTextString(m) } func (*PositionRewardClaim) ProtoMessage() {} func (*PositionRewardClaim) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{24} + return fileDescriptor_d1eba752ca2f0d70, []int{23} } func (m *PositionRewardClaim) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1906,90 +1927,27 @@ func (m *PositionRewardClaim) GetRewardsCommitment() *v1alpha1.BalanceCommitment return nil } -// Contains a path for a trade, including the trading pair (with direction), the trading -// function defining their relationship, and the route taken between the two assets. -type Path struct { - Pair *DirectedTradingPair `protobuf:"bytes,1,opt,name=pair,proto3" json:"pair,omitempty"` - Route []*v1alpha1.AssetId `protobuf:"bytes,2,rep,name=route,proto3" json:"route,omitempty"` - Phi *BareTradingFunction `protobuf:"bytes,3,opt,name=phi,proto3" json:"phi,omitempty"` -} - -func (m *Path) Reset() { *m = Path{} } -func (m *Path) String() string { return proto.CompactTextString(m) } -func (*Path) ProtoMessage() {} -func (*Path) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{25} -} -func (m *Path) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Path) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Path.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 *Path) XXX_Merge(src proto.Message) { - xxx_messageInfo_Path.Merge(m, src) -} -func (m *Path) XXX_Size() int { - return m.Size() -} -func (m *Path) XXX_DiscardUnknown() { - xxx_messageInfo_Path.DiscardUnknown(m) -} - -var xxx_messageInfo_Path proto.InternalMessageInfo - -func (m *Path) GetPair() *DirectedTradingPair { - if m != nil { - return m.Pair - } - return nil -} - -func (m *Path) GetRoute() []*v1alpha1.AssetId { - if m != nil { - return m.Route - } - return nil -} - -func (m *Path) GetPhi() *BareTradingFunction { - if m != nil { - return m.Phi - } - return nil -} - -// A path and the amount of the assets on either side that were traded. -type Trade struct { - // The path taken by the trade. - Path *Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` - // The amount of the start asset being traded. - StartAmount *v1alpha1.Amount `protobuf:"bytes,2,opt,name=start_amount,json=startAmount,proto3" json:"start_amount,omitempty"` - // The amount of end asset being received. - EndAmount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=end_amount,json=endAmount,proto3" json:"end_amount,omitempty"` +// Contains the entire execution of a particular swap. +type SwapExecution struct { + Traces []*SwapExecution_Trace `protobuf:"bytes,1,rep,name=traces,proto3" json:"traces,omitempty"` + // The total input amount for this execution. + Input *v1alpha1.Value `protobuf:"bytes,2,opt,name=input,proto3" json:"input,omitempty"` + // The total output amount for this execution. + Output *v1alpha1.Value `protobuf:"bytes,3,opt,name=output,proto3" json:"output,omitempty"` } -func (m *Trade) Reset() { *m = Trade{} } -func (m *Trade) String() string { return proto.CompactTextString(m) } -func (*Trade) ProtoMessage() {} -func (*Trade) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{26} +func (m *SwapExecution) Reset() { *m = SwapExecution{} } +func (m *SwapExecution) String() string { return proto.CompactTextString(m) } +func (*SwapExecution) ProtoMessage() {} +func (*SwapExecution) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{24} } -func (m *Trade) XXX_Unmarshal(b []byte) error { +func (m *SwapExecution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *Trade) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *SwapExecution) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_Trade.Marshal(b, m, deterministic) + return xxx_messageInfo_SwapExecution.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -1999,56 +1957,57 @@ func (m *Trade) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return b[:n], nil } } -func (m *Trade) XXX_Merge(src proto.Message) { - xxx_messageInfo_Trade.Merge(m, src) +func (m *SwapExecution) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapExecution.Merge(m, src) } -func (m *Trade) XXX_Size() int { +func (m *SwapExecution) XXX_Size() int { return m.Size() } -func (m *Trade) XXX_DiscardUnknown() { - xxx_messageInfo_Trade.DiscardUnknown(m) +func (m *SwapExecution) XXX_DiscardUnknown() { + xxx_messageInfo_SwapExecution.DiscardUnknown(m) } -var xxx_messageInfo_Trade proto.InternalMessageInfo +var xxx_messageInfo_SwapExecution proto.InternalMessageInfo -func (m *Trade) GetPath() *Path { +func (m *SwapExecution) GetTraces() []*SwapExecution_Trace { if m != nil { - return m.Path + return m.Traces } return nil } -func (m *Trade) GetStartAmount() *v1alpha1.Amount { +func (m *SwapExecution) GetInput() *v1alpha1.Value { if m != nil { - return m.StartAmount + return m.Input } return nil } -func (m *Trade) GetEndAmount() *v1alpha1.Amount { +func (m *SwapExecution) GetOutput() *v1alpha1.Value { if m != nil { - return m.EndAmount + return m.Output } return nil } -// Contains the entire execution of a particular swap. -type SwapExecution struct { - Trades []*Trade `protobuf:"bytes,1,rep,name=trades,proto3" json:"trades,omitempty"` +// Contains all individual steps consisting of a trade trace. +type SwapExecution_Trace struct { + // Each step in the trade trace. + Value []*v1alpha1.Value `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"` } -func (m *SwapExecution) Reset() { *m = SwapExecution{} } -func (m *SwapExecution) String() string { return proto.CompactTextString(m) } -func (*SwapExecution) ProtoMessage() {} -func (*SwapExecution) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{27} +func (m *SwapExecution_Trace) Reset() { *m = SwapExecution_Trace{} } +func (m *SwapExecution_Trace) String() string { return proto.CompactTextString(m) } +func (*SwapExecution_Trace) ProtoMessage() {} +func (*SwapExecution_Trace) Descriptor() ([]byte, []int) { + return fileDescriptor_d1eba752ca2f0d70, []int{24, 0} } -func (m *SwapExecution) XXX_Unmarshal(b []byte) error { +func (m *SwapExecution_Trace) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *SwapExecution) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *SwapExecution_Trace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_SwapExecution.Marshal(b, m, deterministic) + return xxx_messageInfo_SwapExecution_Trace.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2058,21 +2017,21 @@ func (m *SwapExecution) XXX_Marshal(b []byte, deterministic bool) ([]byte, error return b[:n], nil } } -func (m *SwapExecution) XXX_Merge(src proto.Message) { - xxx_messageInfo_SwapExecution.Merge(m, src) +func (m *SwapExecution_Trace) XXX_Merge(src proto.Message) { + xxx_messageInfo_SwapExecution_Trace.Merge(m, src) } -func (m *SwapExecution) XXX_Size() int { +func (m *SwapExecution_Trace) XXX_Size() int { return m.Size() } -func (m *SwapExecution) XXX_DiscardUnknown() { - xxx_messageInfo_SwapExecution.DiscardUnknown(m) +func (m *SwapExecution_Trace) XXX_DiscardUnknown() { + xxx_messageInfo_SwapExecution_Trace.DiscardUnknown(m) } -var xxx_messageInfo_SwapExecution proto.InternalMessageInfo +var xxx_messageInfo_SwapExecution_Trace proto.InternalMessageInfo -func (m *SwapExecution) GetTrades() []*Trade { +func (m *SwapExecution_Trace) GetValue() []*v1alpha1.Value { if m != nil { - return m.Trades + return m.Value } return nil } @@ -2088,7 +2047,7 @@ func (m *PositionWithdrawPlan) Reset() { *m = PositionWithdrawPlan{} } func (m *PositionWithdrawPlan) String() string { return proto.CompactTextString(m) } func (*PositionWithdrawPlan) ProtoMessage() {} func (*PositionWithdrawPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{28} + return fileDescriptor_d1eba752ca2f0d70, []int{25} } func (m *PositionWithdrawPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2147,7 +2106,7 @@ func (m *PositionRewardClaimPlan) Reset() { *m = PositionRewardClaimPlan func (m *PositionRewardClaimPlan) String() string { return proto.CompactTextString(m) } func (*PositionRewardClaimPlan) ProtoMessage() {} func (*PositionRewardClaimPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_d1eba752ca2f0d70, []int{29} + return fileDescriptor_d1eba752ca2f0d70, []int{26} } func (m *PositionRewardClaimPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2191,7 +2150,6 @@ func init() { proto.RegisterType((*SwapBody)(nil), "penumbra.core.dex.v1alpha1.SwapBody") proto.RegisterType((*SwapPayload)(nil), "penumbra.core.dex.v1alpha1.SwapPayload") proto.RegisterType((*SwapPlaintext)(nil), "penumbra.core.dex.v1alpha1.SwapPlaintext") - proto.RegisterType((*MockFlowCiphertext)(nil), "penumbra.core.dex.v1alpha1.MockFlowCiphertext") proto.RegisterType((*SwapPlan)(nil), "penumbra.core.dex.v1alpha1.SwapPlan") proto.RegisterType((*SwapClaimPlan)(nil), "penumbra.core.dex.v1alpha1.SwapClaimPlan") proto.RegisterType((*SwapView)(nil), "penumbra.core.dex.v1alpha1.SwapView") @@ -2214,9 +2172,8 @@ func init() { proto.RegisterType((*PositionClose)(nil), "penumbra.core.dex.v1alpha1.PositionClose") proto.RegisterType((*PositionWithdraw)(nil), "penumbra.core.dex.v1alpha1.PositionWithdraw") proto.RegisterType((*PositionRewardClaim)(nil), "penumbra.core.dex.v1alpha1.PositionRewardClaim") - proto.RegisterType((*Path)(nil), "penumbra.core.dex.v1alpha1.Path") - proto.RegisterType((*Trade)(nil), "penumbra.core.dex.v1alpha1.Trade") proto.RegisterType((*SwapExecution)(nil), "penumbra.core.dex.v1alpha1.SwapExecution") + proto.RegisterType((*SwapExecution_Trace)(nil), "penumbra.core.dex.v1alpha1.SwapExecution.Trace") proto.RegisterType((*PositionWithdrawPlan)(nil), "penumbra.core.dex.v1alpha1.PositionWithdrawPlan") proto.RegisterType((*PositionRewardClaimPlan)(nil), "penumbra.core.dex.v1alpha1.PositionRewardClaimPlan") } @@ -2226,119 +2183,121 @@ func init() { } var fileDescriptor_d1eba752ca2f0d70 = []byte{ - // 1788 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0x4f, 0x6f, 0xe3, 0xc6, - 0x15, 0xf7, 0x50, 0xb2, 0x2d, 0x3f, 0xc9, 0x1b, 0xef, 0x38, 0x68, 0x0d, 0x17, 0x71, 0x76, 0xd9, - 0xfc, 0xd9, 0x26, 0x85, 0x1c, 0x31, 0x29, 0x90, 0x7a, 0x9b, 0x6c, 0xac, 0x3f, 0x8e, 0xb5, 0x89, - 0x65, 0x86, 0x76, 0x76, 0x8b, 0xd4, 0x28, 0x31, 0x26, 0xc7, 0x2b, 0xa2, 0x14, 0xc9, 0x25, 0x47, - 0xb6, 0x7c, 0x2a, 0x50, 0xb4, 0xe8, 0x29, 0x68, 0xf3, 0x01, 0x8a, 0x22, 0x3d, 0xf6, 0x33, 0x14, - 0xed, 0xb5, 0x28, 0x5a, 0x60, 0x6f, 0xed, 0xa9, 0x28, 0xbc, 0x87, 0x02, 0xfd, 0x00, 0x45, 0x0f, - 0x3d, 0x14, 0x33, 0x1c, 0x8a, 0xb4, 0x2d, 0xaf, 0x44, 0xad, 0x7b, 0xc9, 0x4d, 0x33, 0xf3, 0x7e, - 0x3f, 0xbe, 0x99, 0xf7, 0xe6, 0xfd, 0x1e, 0x29, 0x78, 0x25, 0xa0, 0x5e, 0xbf, 0x77, 0x18, 0x92, - 0x75, 0xcb, 0x0f, 0xe9, 0xba, 0x4d, 0x07, 0xeb, 0xc7, 0x35, 0xe2, 0x06, 0x5d, 0x52, 0xe3, 0x83, - 0x6a, 0x10, 0xfa, 0xcc, 0xc7, 0xab, 0x89, 0x55, 0x95, 0x5b, 0x55, 0xf9, 0x42, 0x62, 0xb5, 0xfa, - 0xc6, 0x79, 0x06, 0x2b, 0x3c, 0x0d, 0x98, 0x9f, 0x92, 0xc4, 0xe3, 0x98, 0x47, 0xfd, 0x09, 0x82, - 0xe2, 0xde, 0x09, 0x09, 0xf0, 0x07, 0x30, 0x1b, 0x84, 0xbe, 0x7f, 0xb4, 0x82, 0x6e, 0xa1, 0x3b, - 0x65, 0xed, 0x8d, 0xea, 0xf9, 0x07, 0x48, 0x50, 0x42, 0x52, 0xfd, 0xec, 0x23, 0x8e, 0xd2, 0x39, - 0xc2, 0x88, 0x81, 0xf8, 0x5d, 0x28, 0x1e, 0xfa, 0xf6, 0xe9, 0x4a, 0x51, 0x10, 0xbc, 0x52, 0xbd, - 0xda, 0xc3, 0x2a, 0xc7, 0xd6, 0x7d, 0xfb, 0xd4, 0x10, 0x08, 0xf5, 0xe7, 0x08, 0x16, 0xf8, 0x54, - 0xc3, 0x25, 0x4e, 0x0f, 0xbf, 0x98, 0xf5, 0xa4, 0x92, 0xb0, 0xbf, 0x27, 0xd9, 0x15, 0xc1, 0xfe, - 0xad, 0x71, 0xec, 0x82, 0x2a, 0x7d, 0x04, 0x7e, 0x15, 0x6e, 0xd0, 0xc0, 0xb7, 0xba, 0xa6, 0xdd, - 0x0f, 0x09, 0x73, 0x7c, 0x6f, 0x65, 0xfe, 0x16, 0xba, 0x53, 0x34, 0x16, 0xc5, 0x6c, 0x53, 0x4e, - 0xaa, 0xbf, 0x2e, 0xc0, 0xe2, 0x39, 0x38, 0xde, 0x82, 0x05, 0xaf, 0xef, 0xba, 0xce, 0x91, 0x43, - 0x43, 0x79, 0x36, 0x77, 0xc6, 0x9c, 0x4d, 0x27, 0xb1, 0x37, 0x52, 0x28, 0x7e, 0x07, 0x0a, 0x47, - 0x94, 0x4a, 0xf7, 0xd5, 0x31, 0x0c, 0x5b, 0x94, 0x1a, 0xdc, 0x1c, 0xff, 0x10, 0x96, 0xfd, 0x3e, - 0x0b, 0xfa, 0xcc, 0xac, 0x99, 0x96, 0xdf, 0xeb, 0x39, 0xac, 0x47, 0x3d, 0xb6, 0x52, 0x10, 0x2c, - 0xd5, 0x31, 0x2c, 0x7b, 0x8c, 0x30, 0xda, 0x18, 0xa2, 0x8c, 0x9b, 0x31, 0x55, 0x2d, 0x9d, 0xca, - 0xf0, 0x6b, 0x59, 0xfe, 0xe2, 0xf3, 0xf0, 0x6b, 0x19, 0x7e, 0x1d, 0xca, 0x92, 0xdf, 0x26, 0x8c, - 0xac, 0xcc, 0x09, 0xde, 0xf5, 0x67, 0x05, 0xaf, 0x4e, 0x98, 0xd5, 0xe5, 0x21, 0xd8, 0x15, 0xb8, - 0x26, 0x61, 0xc4, 0x00, 0x7f, 0xf8, 0x5b, 0xfd, 0x8f, 0x02, 0xa5, 0x24, 0x7d, 0xf0, 0x7d, 0xa8, - 0xb0, 0x90, 0xd8, 0x8e, 0xf7, 0xc8, 0x0c, 0x88, 0x93, 0xc4, 0xe7, 0xf5, 0x67, 0xf1, 0xef, 0xc7, - 0xf6, 0x3a, 0x71, 0x42, 0xa3, 0xcc, 0xd2, 0x01, 0xde, 0x84, 0x05, 0x9b, 0xba, 0x8c, 0x98, 0x35, - 0xd3, 0x91, 0x61, 0x7a, 0x75, 0xcc, 0x01, 0x6c, 0xf6, 0xfc, 0xbe, 0xc7, 0x8c, 0x79, 0x81, 0xab, - 0xb5, 0x53, 0x0a, 0xcd, 0x74, 0x64, 0x8c, 0x72, 0x51, 0x68, 0x6d, 0xfc, 0x10, 0x6e, 0x1c, 0x51, - 0x7a, 0x39, 0x16, 0x6f, 0x8d, 0xe1, 0xa9, 0x13, 0x97, 0x78, 0x56, 0x36, 0x1a, 0x8b, 0x47, 0x34, - 0x33, 0xc4, 0x9b, 0x30, 0x1f, 0x90, 0x53, 0xd7, 0x27, 0xf6, 0xca, 0xec, 0xf8, 0x53, 0x12, 0x97, - 0x3b, 0x36, 0x37, 0x12, 0x9c, 0xfa, 0x53, 0x04, 0xe5, 0xcc, 0x02, 0xee, 0x00, 0x64, 0xfc, 0x44, - 0x53, 0xe5, 0x4c, 0x86, 0x41, 0xdc, 0x51, 0x4f, 0x00, 0xa8, 0x6d, 0x46, 0x27, 0x24, 0x10, 0x61, - 0xa8, 0x18, 0x8b, 0xc3, 0x59, 0xfe, 0x74, 0xf5, 0x67, 0xf2, 0x8e, 0xea, 0x2e, 0x71, 0x3c, 0x46, - 0x07, 0xec, 0x2b, 0x98, 0x06, 0xf7, 0x60, 0xc1, 0xe2, 0x25, 0xc8, 0xe4, 0x35, 0xa3, 0x38, 0x71, - 0xcd, 0x28, 0x09, 0xd0, 0x16, 0xa5, 0xf8, 0x23, 0x58, 0x8c, 0x09, 0x88, 0x6d, 0x87, 0x34, 0x8a, - 0x64, 0xd0, 0x5f, 0x1b, 0xe7, 0x47, 0x6c, 0x6d, 0x54, 0x04, 0x58, 0x8e, 0x78, 0x45, 0x0e, 0x23, - 0x4a, 0x6d, 0x71, 0x7f, 0x2b, 0x46, 0x3c, 0x50, 0x3f, 0x01, 0xbc, 0xe3, 0x5b, 0x3f, 0xda, 0x72, - 0xfd, 0x93, 0x86, 0x13, 0x74, 0x69, 0x28, 0x62, 0x71, 0x17, 0x66, 0x8f, 0x89, 0xdb, 0xa7, 0x32, - 0x08, 0x13, 0x6e, 0x3c, 0xc6, 0xa8, 0x3f, 0x8e, 0xef, 0xb6, 0xee, 0x12, 0x0f, 0xeb, 0x70, 0x83, - 0xe7, 0x80, 0x19, 0x24, 0x61, 0x96, 0x8c, 0x63, 0x4b, 0xff, 0x30, 0x2f, 0x8c, 0xc5, 0xe8, 0x5c, - 0x9a, 0xdc, 0x86, 0x0a, 0xbf, 0x5b, 0x87, 0xae, 0xe3, 0xf1, 0x70, 0xcb, 0xec, 0x2a, 0x1f, 0x51, - 0x5a, 0x97, 0x53, 0xea, 0xbf, 0x51, 0xa6, 0xfe, 0xff, 0x9f, 0xdc, 0x58, 0x85, 0x52, 0xe0, 0x47, - 0x8e, 0x10, 0x21, 0x45, 0x88, 0xd0, 0x70, 0x7c, 0xb1, 0x5e, 0x16, 0x9e, 0xbb, 0x5e, 0x8e, 0x10, - 0xbe, 0xe2, 0x28, 0xe1, 0xfb, 0xaf, 0x2c, 0xab, 0x0f, 0x1c, 0x7a, 0x82, 0xb7, 0x61, 0xfe, 0xd8, - 0x89, 0x9c, 0x43, 0x37, 0x89, 0xe2, 0xb7, 0xc7, 0x6d, 0x96, 0xc3, 0xaa, 0x0f, 0x62, 0xcc, 0xf6, - 0x8c, 0x91, 0xc0, 0x71, 0x0b, 0xe6, 0xfc, 0x80, 0x3c, 0xee, 0x27, 0xc2, 0xf7, 0xe6, 0x44, 0x44, - 0xbb, 0x02, 0xb2, 0x3d, 0x63, 0x48, 0xf0, 0xea, 0x17, 0x08, 0xe6, 0x25, 0x3b, 0x7e, 0x07, 0x8a, - 0xa2, 0x36, 0xc4, 0x9e, 0xdd, 0x1a, 0x47, 0x68, 0x08, 0xeb, 0x11, 0x61, 0x2c, 0x3c, 0x5f, 0x18, - 0x57, 0xdf, 0x87, 0xb9, 0xd8, 0xcf, 0xe9, 0x3c, 0xaa, 0x97, 0x61, 0x41, 0x78, 0x74, 0xec, 0xd0, - 0x13, 0xf5, 0x9f, 0xd9, 0xbe, 0x43, 0xc4, 0x60, 0xe7, 0x62, 0x0c, 0x6a, 0x13, 0xb5, 0x3c, 0x57, - 0x05, 0xe2, 0xfe, 0x85, 0x40, 0xbc, 0x35, 0x39, 0xdb, 0xa5, 0x68, 0xfc, 0x35, 0x13, 0x8d, 0x26, - 0x80, 0xd8, 0x85, 0xa8, 0x17, 0x57, 0xdc, 0xf9, 0xd1, 0xdc, 0x86, 0xd8, 0x7e, 0xdc, 0xf2, 0xd5, - 0xa1, 0x94, 0xb4, 0x39, 0xd2, 0xbf, 0xd7, 0xc7, 0xf5, 0x58, 0x3e, 0xa3, 0xdc, 0x3b, 0x63, 0x5e, - 0x36, 0x35, 0x19, 0x0e, 0x4d, 0xc6, 0x36, 0x2f, 0x87, 0xb6, 0xda, 0x19, 0xc6, 0xf4, 0x5a, 0xf6, - 0x55, 0xbf, 0x09, 0x2f, 0xa4, 0x2c, 0x71, 0xa4, 0x7f, 0x81, 0xa0, 0x9c, 0x11, 0x1f, 0x7c, 0x0f, - 0xe6, 0x49, 0x14, 0x51, 0xbe, 0x73, 0x34, 0x59, 0x89, 0xe6, 0xd6, 0x6d, 0xdb, 0x98, 0x13, 0xb0, - 0x5a, 0x4a, 0xa0, 0xc9, 0xa3, 0xcb, 0x47, 0xa0, 0xa9, 0x9f, 0x23, 0x58, 0x6e, 0x3a, 0x21, 0xb5, - 0x18, 0xb5, 0xb3, 0x9e, 0x7d, 0x0f, 0x66, 0x23, 0x46, 0x42, 0x96, 0xd3, 0xaf, 0x18, 0x84, 0xdf, - 0x85, 0x02, 0xf5, 0xec, 0x9c, 0x2e, 0x71, 0x88, 0xfa, 0x79, 0x11, 0x96, 0x47, 0x54, 0x35, 0xfc, - 0x3e, 0xcc, 0x4b, 0x65, 0xce, 0xa7, 0x2d, 0x73, 0xb1, 0x2e, 0xa7, 0x78, 0x2d, 0x9f, 0xae, 0xc7, - 0x78, 0x0d, 0x37, 0x00, 0x5c, 0xd2, 0x3b, 0xb4, 0x79, 0x6b, 0x50, 0xcb, 0xa7, 0xeb, 0xa5, 0x18, - 0x58, 0xab, 0x65, 0x48, 0x34, 0xb3, 0x26, 0x95, 0x3d, 0x1f, 0x89, 0x56, 0x3b, 0xe7, 0x89, 0x26, - 0x95, 0x3d, 0xa7, 0x27, 0xda, 0x39, 0x4f, 0x34, 0xd9, 0x99, 0xe7, 0xf4, 0x44, 0xc3, 0x5f, 0x83, - 0xb9, 0x2e, 0x75, 0x1e, 0x75, 0x99, 0x7c, 0x9d, 0x92, 0xa3, 0x4b, 0x1d, 0x59, 0x69, 0xfa, 0x8e, - 0x4c, 0xfd, 0x15, 0x82, 0x17, 0xe4, 0xe2, 0x56, 0xdf, 0xb3, 0x84, 0x4e, 0xee, 0xc0, 0x82, 0xe5, - 0xf7, 0x02, 0xdf, 0x4b, 0x3b, 0xcf, 0x31, 0x2a, 0x19, 0xd2, 0x0b, 0x1c, 0x46, 0xca, 0x80, 0xef, - 0x42, 0x51, 0xb8, 0xa9, 0xe4, 0x73, 0x53, 0x80, 0xd4, 0x2f, 0x10, 0xcf, 0xd7, 0x4b, 0xfc, 0x78, - 0x29, 0x7e, 0xe3, 0xe3, 0xde, 0x2d, 0xc6, 0x6f, 0x73, 0x6f, 0x03, 0x0a, 0xf2, 0xe5, 0x1e, 0x0a, - 0x38, 0xe8, 0x71, 0xbe, 0x6c, 0x43, 0x8f, 0xd5, 0x01, 0x94, 0x0c, 0x1a, 0xd1, 0xf0, 0x98, 0x46, - 0xf8, 0x3b, 0xa0, 0x84, 0x39, 0xaf, 0x8c, 0x12, 0xd6, 0x04, 0x2c, 0xe7, 0x4d, 0x51, 0x42, 0x4d, - 0x3d, 0x43, 0x50, 0xd2, 0x93, 0x76, 0xe6, 0x3d, 0x28, 0x04, 0x5d, 0x47, 0x3e, 0xfb, 0xcd, 0x09, - 0x8e, 0x75, 0x18, 0x1c, 0x8e, 0xe3, 0x7d, 0xa7, 0xe7, 0x7b, 0x16, 0x95, 0x9d, 0x5a, 0x3c, 0xc0, - 0xf7, 0x44, 0x5d, 0x62, 0x74, 0x12, 0x05, 0x4f, 0x3c, 0x11, 0xaf, 0x1d, 0x46, 0x8c, 0xc3, 0x1f, - 0x40, 0x29, 0x94, 0x87, 0x33, 0xc9, 0xc7, 0x8a, 0xe4, 0x20, 0x8d, 0x21, 0x4a, 0x55, 0x01, 0x12, - 0xe6, 0xb6, 0xcd, 0xdd, 0x74, 0x3c, 0x4f, 0x7e, 0x1e, 0xa8, 0x18, 0xf1, 0x40, 0xfd, 0x52, 0x81, - 0xc5, 0x73, 0x8f, 0xc7, 0x9f, 0x24, 0x8e, 0x73, 0xbb, 0x1b, 0xda, 0xdd, 0x89, 0x1d, 0x3f, 0x3f, - 0x6a, 0x79, 0xfd, 0x9e, 0xdc, 0x8a, 0xfa, 0x3b, 0x04, 0x37, 0x2f, 0x2d, 0xe2, 0x6f, 0xc2, 0xcb, - 0xfa, 0xee, 0x5e, 0x7b, 0xbf, 0xbd, 0xdb, 0x31, 0xf7, 0xf6, 0x37, 0xf7, 0x5b, 0x66, 0xab, 0xf3, - 0xe9, 0x8e, 0xf9, 0x69, 0x67, 0x4f, 0x6f, 0x35, 0xda, 0x5b, 0xed, 0x56, 0x73, 0x69, 0x06, 0xaf, - 0xc1, 0xea, 0x28, 0xa3, 0x5d, 0xbd, 0xd5, 0x69, 0x35, 0x97, 0xd0, 0x55, 0xeb, 0x8d, 0x8f, 0x77, - 0xf7, 0x5a, 0xcd, 0x25, 0x05, 0xdf, 0x86, 0x97, 0x46, 0xad, 0x3f, 0x6c, 0xef, 0x6f, 0x37, 0x8d, - 0xcd, 0x87, 0x9d, 0xa5, 0x02, 0x7e, 0x19, 0xbe, 0x31, 0x9a, 0x62, 0xb3, 0xbd, 0xd3, 0x6a, 0x2e, - 0x15, 0xf9, 0xd5, 0x99, 0xfd, 0x38, 0xe8, 0x1c, 0x31, 0xfc, 0x21, 0x94, 0x93, 0x26, 0xd8, 0x74, - 0xec, 0x2b, 0x24, 0x67, 0xe4, 0x09, 0xb5, 0x6d, 0x03, 0x82, 0x34, 0x18, 0xc3, 0xec, 0x50, 0xa6, - 0xcb, 0x0e, 0x55, 0x87, 0x4a, 0x32, 0xbf, 0x1b, 0x50, 0x8f, 0x67, 0xcb, 0xb0, 0x5d, 0x47, 0xe3, - 0xb3, 0x25, 0xc1, 0xa6, 0x4d, 0xbd, 0xfa, 0xfd, 0x34, 0x11, 0x1a, 0xae, 0x1f, 0xd1, 0x6b, 0xdb, - 0xac, 0xfa, 0x7b, 0x04, 0x4b, 0xc9, 0xd2, 0x43, 0x87, 0x75, 0xed, 0x90, 0x9c, 0x5c, 0xdf, 0x51, - 0x12, 0x58, 0x4e, 0x32, 0x3e, 0xfb, 0x41, 0x42, 0x99, 0xf2, 0x83, 0x04, 0x4e, 0xc8, 0xd2, 0x39, - 0xf5, 0x0f, 0x08, 0x96, 0x87, 0x27, 0x46, 0x4f, 0x48, 0x68, 0xc7, 0x0d, 0xe1, 0xb5, 0xed, 0xc1, - 0x04, 0x1c, 0x0a, 0xde, 0x6b, 0xd9, 0xc2, 0x4d, 0xc9, 0x95, 0xd9, 0xc1, 0x9f, 0x11, 0x14, 0x75, - 0xc2, 0xba, 0xb8, 0x21, 0x35, 0x64, 0x02, 0x35, 0x1a, 0xd1, 0x6d, 0xc5, 0x5a, 0xc2, 0x7b, 0xae, - 0xd0, 0xef, 0x8b, 0xec, 0x2d, 0xe4, 0xe9, 0xb9, 0x04, 0x08, 0x6f, 0xc6, 0xe5, 0xb6, 0x30, 0x9d, - 0x1e, 0x72, 0xac, 0xfa, 0x17, 0x04, 0xb3, 0x7c, 0x41, 0xbc, 0xd5, 0x04, 0x84, 0x75, 0x27, 0x79, - 0xab, 0xe1, 0xfb, 0x37, 0x84, 0x35, 0xde, 0x86, 0x8a, 0xe8, 0xff, 0x4c, 0x22, 0x24, 0x21, 0x9f, - 0x7e, 0x94, 0x05, 0x34, 0x1e, 0xf0, 0x0e, 0x9c, 0x7a, 0x76, 0xc2, 0x93, 0x4b, 0x00, 0x17, 0xa8, - 0x67, 0xc7, 0x3f, 0xd5, 0xfb, 0xf1, 0x7b, 0x55, 0x6b, 0x40, 0xad, 0xbe, 0x90, 0xa4, 0xef, 0xc2, - 0x1c, 0x6f, 0x2e, 0x68, 0xb4, 0x82, 0xc4, 0x11, 0xdf, 0x1e, 0xa7, 0x4a, 0xd4, 0x90, 0x00, 0xf5, - 0xef, 0x08, 0x5e, 0xbc, 0x78, 0xdb, 0xc4, 0x37, 0x82, 0xac, 0xa0, 0xa0, 0x69, 0x04, 0xe5, 0x62, - 0xbe, 0x2b, 0x53, 0xe7, 0x7b, 0xd2, 0xc9, 0x14, 0xa6, 0xe9, 0x64, 0x7e, 0x00, 0x5f, 0x1f, 0x71, - 0x19, 0xaf, 0x67, 0x8b, 0xf5, 0x2f, 0x95, 0x3f, 0x9e, 0xad, 0xa1, 0x27, 0x67, 0x6b, 0xe8, 0x1f, - 0x67, 0x6b, 0xe8, 0x97, 0x4f, 0xd7, 0x66, 0x9e, 0x3c, 0x5d, 0x9b, 0xf9, 0xdb, 0xd3, 0xb5, 0x19, - 0x58, 0xb3, 0xfc, 0xde, 0x33, 0xd8, 0xea, 0xa5, 0x26, 0x1d, 0xe8, 0xa1, 0xcf, 0x7c, 0x1d, 0x7d, - 0x66, 0x3c, 0x72, 0x58, 0xb7, 0x7f, 0x58, 0xb5, 0xfc, 0xde, 0xba, 0xe5, 0x47, 0x3d, 0x3f, 0x5a, - 0x0f, 0xa9, 0x4b, 0x4e, 0x69, 0xb8, 0x7e, 0xac, 0x0d, 0x7f, 0x5a, 0x5d, 0xe2, 0x78, 0xd1, 0xfa, - 0xd5, 0x7f, 0xa5, 0xdc, 0xb5, 0xe9, 0x20, 0xf9, 0xfd, 0x1b, 0xa5, 0xa0, 0x37, 0x9a, 0xbf, 0x55, - 0x56, 0xf5, 0xc4, 0x85, 0x06, 0x77, 0xa1, 0x49, 0x07, 0xd5, 0x07, 0xd2, 0xe4, 0x4f, 0xe9, 0xe2, - 0x01, 0x5f, 0x3c, 0x68, 0xd2, 0xc1, 0x41, 0xb2, 0x78, 0xa6, 0xbc, 0x76, 0xf5, 0xe2, 0xc1, 0x87, - 0x7a, 0x7d, 0x87, 0x32, 0x62, 0x13, 0x46, 0xfe, 0xa5, 0xbc, 0x94, 0x18, 0x6e, 0x6c, 0x70, 0xcb, - 0x8d, 0x8d, 0x26, 0x1d, 0x6c, 0x6c, 0x24, 0xb6, 0x87, 0x73, 0xe2, 0x4f, 0x99, 0xb7, 0xff, 0x17, - 0x00, 0x00, 0xff, 0xff, 0x38, 0x61, 0x76, 0x55, 0x04, 0x1a, 0x00, 0x00, + // 1824 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0xcd, 0x6f, 0x1b, 0xc7, + 0x15, 0xd7, 0x2e, 0x29, 0x8a, 0x7c, 0xa4, 0x14, 0x79, 0x94, 0xb6, 0x02, 0x8b, 0xc8, 0xce, 0xd6, + 0x4e, 0xdc, 0xa4, 0xa0, 0xc2, 0x75, 0x0a, 0x04, 0x72, 0x12, 0x47, 0xfc, 0x90, 0xc5, 0x24, 0xa2, + 0xd8, 0x91, 0x62, 0x17, 0xa9, 0xd1, 0xc5, 0x68, 0x77, 0x64, 0x2e, 0xb0, 0xdc, 0x5d, 0xef, 0x0e, + 0x25, 0xea, 0x5a, 0xf4, 0xe3, 0x54, 0xb4, 0x39, 0xf5, 0x54, 0x14, 0xe9, 0xb1, 0x7f, 0x43, 0x3f, + 0xae, 0x45, 0x4e, 0x06, 0x7a, 0x68, 0x4f, 0x45, 0x61, 0x1f, 0x0a, 0xf4, 0x2f, 0xe8, 0xa1, 0x87, + 0x62, 0x66, 0x67, 0xc8, 0x95, 0x44, 0x99, 0xa4, 0xac, 0x5e, 0x7a, 0xe3, 0xcc, 0xbc, 0xdf, 0x6f, + 0xdf, 0xd7, 0xbc, 0xf7, 0x76, 0x09, 0x37, 0x43, 0xea, 0xf7, 0x7b, 0x07, 0x11, 0x59, 0xb7, 0x83, + 0x88, 0xae, 0x3b, 0x74, 0xb0, 0x7e, 0x54, 0x25, 0x5e, 0xd8, 0x25, 0x55, 0xbe, 0xa8, 0x84, 0x51, + 0xc0, 0x02, 0x54, 0x56, 0x52, 0x15, 0x2e, 0x55, 0xe1, 0x07, 0x4a, 0xaa, 0xfc, 0xd6, 0x69, 0x06, + 0x3b, 0x3a, 0x09, 0x59, 0x30, 0x22, 0x49, 0xd6, 0x09, 0x8f, 0xf1, 0x23, 0x0d, 0xb2, 0x7b, 0xc7, + 0x24, 0x44, 0x1f, 0xc1, 0x7c, 0x18, 0x05, 0xc1, 0xe1, 0xaa, 0x76, 0x43, 0xbb, 0x5d, 0x34, 0xdf, + 0xaa, 0x9c, 0x7e, 0x80, 0x04, 0x29, 0x92, 0xca, 0xe7, 0x9f, 0x70, 0x54, 0x87, 0x23, 0x70, 0x02, + 0x44, 0xef, 0x41, 0xf6, 0x20, 0x70, 0x4e, 0x56, 0xb3, 0x82, 0xe0, 0x66, 0xe5, 0x62, 0x0d, 0x2b, + 0x1c, 0x5b, 0x0b, 0x9c, 0x13, 0x2c, 0x10, 0xc6, 0xcf, 0x34, 0x28, 0xf0, 0xad, 0xba, 0x47, 0xdc, + 0x1e, 0x7a, 0x35, 0xad, 0x49, 0x49, 0xb1, 0x7f, 0x20, 0xd9, 0x75, 0xc1, 0xfe, 0xed, 0x49, 0xec, + 0x82, 0x6a, 0xf4, 0x08, 0x74, 0x0b, 0x96, 0x68, 0x18, 0xd8, 0x5d, 0xcb, 0xe9, 0x47, 0x84, 0xb9, + 0x81, 0xbf, 0xba, 0x70, 0x43, 0xbb, 0x9d, 0xc5, 0x8b, 0x62, 0xb7, 0x21, 0x37, 0x8d, 0xdf, 0x64, + 0x60, 0xf1, 0x14, 0x1c, 0x6d, 0x41, 0xc1, 0xef, 0x7b, 0x9e, 0x7b, 0xe8, 0xd2, 0x48, 0xfa, 0xe6, + 0xf6, 0x04, 0xdf, 0xb4, 0x95, 0x3c, 0x1e, 0x41, 0xd1, 0xbb, 0x90, 0x39, 0xa4, 0x54, 0xaa, 0x6f, + 0x4c, 0x60, 0xd8, 0xa2, 0x14, 0x73, 0x71, 0xf4, 0x43, 0x58, 0x09, 0xfa, 0x2c, 0xec, 0x33, 0xab, + 0x6a, 0xd9, 0x41, 0xaf, 0xe7, 0xb2, 0x1e, 0xf5, 0xd9, 0x6a, 0x46, 0xb0, 0x54, 0x26, 0xb0, 0xec, + 0x31, 0xc2, 0x68, 0x7d, 0x88, 0xc2, 0xd7, 0x12, 0xaa, 0xea, 0x68, 0x2b, 0xc5, 0x6f, 0xa6, 0xf9, + 0xb3, 0x2f, 0xc3, 0x6f, 0xa6, 0xf8, 0x3b, 0x50, 0x94, 0xfc, 0x0e, 0x61, 0x64, 0x35, 0x27, 0x78, + 0xd7, 0x5f, 0x14, 0xbc, 0x1a, 0x61, 0x76, 0x97, 0x87, 0x60, 0x57, 0xe0, 0x1a, 0x84, 0x11, 0x0c, + 0xc1, 0xf0, 0xb7, 0xf1, 0x6f, 0x1d, 0xf2, 0x2a, 0x7d, 0xd0, 0xc7, 0x50, 0x62, 0x11, 0x71, 0x5c, + 0xff, 0xb1, 0x15, 0x12, 0x57, 0xc5, 0xe7, 0xcd, 0x17, 0xf1, 0xef, 0x27, 0xf2, 0x1d, 0xe2, 0x46, + 0xb8, 0xc8, 0x46, 0x0b, 0xb4, 0x09, 0x05, 0x87, 0x7a, 0x8c, 0x58, 0x55, 0xcb, 0x95, 0x61, 0xba, + 0x35, 0xc1, 0x01, 0x9b, 0xbd, 0xa0, 0xef, 0x33, 0xbc, 0x20, 0x70, 0xd5, 0xd6, 0x88, 0xc2, 0xb4, + 0x5c, 0x19, 0xa3, 0x99, 0x28, 0xcc, 0x16, 0x7a, 0x08, 0x4b, 0x87, 0x94, 0x9e, 0x8f, 0xc5, 0x3b, + 0x13, 0x78, 0x6a, 0xc4, 0x23, 0xbe, 0x9d, 0x8e, 0xc6, 0xe2, 0x21, 0x4d, 0x2d, 0xd1, 0x26, 0x2c, + 0x84, 0xe4, 0xc4, 0x0b, 0x88, 0xb3, 0x3a, 0x3f, 0xd9, 0x4b, 0xe2, 0x72, 0x27, 0xe2, 0x58, 0xe1, + 0x8c, 0x1f, 0x6b, 0x50, 0x4c, 0x1d, 0xa0, 0x36, 0x40, 0x4a, 0x4f, 0xed, 0x52, 0x39, 0x93, 0x62, + 0x10, 0x77, 0xd4, 0x17, 0x00, 0xea, 0x58, 0xf1, 0x31, 0x09, 0x45, 0x18, 0x4a, 0x78, 0x71, 0xb8, + 0xcb, 0x9f, 0x6e, 0xfc, 0x44, 0xde, 0xd1, 0x8e, 0x47, 0x5c, 0x9f, 0xd1, 0x01, 0xfb, 0x3f, 0x4c, + 0x83, 0x7b, 0x50, 0xb0, 0x79, 0x09, 0xb2, 0x78, 0xcd, 0xc8, 0x4e, 0x5d, 0x33, 0xf2, 0x02, 0xb4, + 0x45, 0x29, 0xfa, 0x04, 0x16, 0x13, 0x02, 0xe2, 0x38, 0x11, 0x8d, 0x63, 0x19, 0xf4, 0x37, 0x26, + 0xe9, 0x91, 0x48, 0xe3, 0x92, 0x00, 0xcb, 0x15, 0xaf, 0xc8, 0x51, 0x4c, 0xa9, 0x23, 0xee, 0x6f, + 0x09, 0x27, 0x0b, 0xe3, 0x2f, 0x5a, 0x72, 0x13, 0x3b, 0x1e, 0xf1, 0x51, 0x07, 0x96, 0x78, 0xc4, + 0xac, 0x50, 0x05, 0x45, 0x06, 0x61, 0x62, 0xa1, 0x1e, 0x46, 0x11, 0x2f, 0xc6, 0xa7, 0x82, 0xfa, + 0x3a, 0x94, 0xf8, 0x4d, 0x38, 0xf0, 0x5c, 0x9f, 0x07, 0x47, 0xe6, 0x42, 0xf1, 0x90, 0xd2, 0x9a, + 0xdc, 0x42, 0xb7, 0x61, 0x59, 0x34, 0x87, 0xa1, 0x90, 0x15, 0x09, 0x7f, 0x97, 0xf0, 0x92, 0xd8, + 0x57, 0x82, 0x78, 0x8c, 0x64, 0x2c, 0xdc, 0x7a, 0x56, 0x72, 0xcf, 0xf8, 0x4a, 0x4f, 0x75, 0x80, + 0xff, 0x91, 0x69, 0x65, 0xc8, 0x87, 0x41, 0xec, 0x8a, 0x36, 0xa4, 0x8b, 0x36, 0x34, 0x5c, 0x9f, + 0xad, 0x98, 0x99, 0x97, 0xae, 0x98, 0x63, 0x5a, 0x5f, 0x76, 0x4c, 0xeb, 0x1b, 0xeb, 0xcc, 0xf9, + 0xa9, 0x9d, 0x99, 0x1b, 0xeb, 0xcc, 0xff, 0xc8, 0x62, 0xfd, 0xc0, 0xa5, 0xc7, 0x68, 0x1b, 0x16, + 0x8e, 0xdc, 0xd8, 0x3d, 0xf0, 0xa8, 0x74, 0xe0, 0x77, 0x26, 0x39, 0x90, 0xc3, 0x2a, 0x0f, 0x12, + 0xcc, 0xf6, 0x1c, 0x56, 0x70, 0xd4, 0x84, 0x5c, 0x10, 0x92, 0x27, 0x7d, 0xd5, 0x4e, 0xdf, 0x9e, + 0x8a, 0x68, 0x57, 0x40, 0xb6, 0xe7, 0xb0, 0x04, 0x97, 0xbf, 0xd0, 0x60, 0x41, 0xb2, 0xa3, 0x77, + 0x21, 0x2b, 0x2a, 0x4e, 0xa2, 0xd9, 0x8d, 0x49, 0x84, 0x58, 0x48, 0x8f, 0x49, 0x8d, 0xcc, 0xcb, + 0xa5, 0x46, 0xf9, 0x43, 0xc8, 0x25, 0x7a, 0x5e, 0x4e, 0xa3, 0x5a, 0x11, 0x0a, 0x42, 0xa3, 0x23, + 0x97, 0x1e, 0x1b, 0xff, 0x4c, 0x4f, 0x33, 0x22, 0x06, 0x3b, 0x67, 0x63, 0x50, 0x9d, 0x6a, 0x90, + 0xba, 0x28, 0x10, 0x1f, 0x9f, 0x09, 0xc4, 0x3b, 0xd3, 0xb3, 0x9d, 0x8b, 0xc6, 0x5f, 0x53, 0xd1, + 0x68, 0x00, 0x08, 0x2b, 0x44, 0x15, 0x92, 0x9a, 0xde, 0x9a, 0x8a, 0x1b, 0x0b, 0xf3, 0x93, 0x41, + 0xb2, 0x06, 0x79, 0x35, 0x3c, 0x49, 0xfd, 0xde, 0x9c, 0x34, 0xb9, 0x05, 0x8c, 0x72, 0xed, 0xf0, + 0x82, 0x1c, 0x95, 0x52, 0x1c, 0xa6, 0x8c, 0xed, 0xac, 0x1c, 0x66, 0xb9, 0x3d, 0x8c, 0xe9, 0x95, + 0xd8, 0x55, 0xbb, 0x06, 0xaf, 0x8c, 0x58, 0x92, 0x48, 0xff, 0x42, 0x83, 0x62, 0xaa, 0xa5, 0xa1, + 0x7b, 0xb0, 0x40, 0xe2, 0x98, 0x72, 0xcb, 0xb5, 0xe9, 0x0a, 0x3f, 0x97, 0x6e, 0x39, 0x38, 0x27, + 0x60, 0xd5, 0x11, 0x81, 0x29, 0x5d, 0x37, 0x1b, 0x81, 0x69, 0xfc, 0x5c, 0x83, 0x95, 0x86, 0x1b, + 0x51, 0x9b, 0x51, 0x27, 0xad, 0xd9, 0xfb, 0x30, 0x1f, 0x33, 0x12, 0xb1, 0x19, 0xf5, 0x4a, 0x40, + 0xe8, 0x3d, 0xc8, 0x50, 0xdf, 0x99, 0x51, 0x25, 0x0e, 0x31, 0xfe, 0x90, 0x85, 0x95, 0x31, 0x95, + 0x12, 0x7d, 0x08, 0x0b, 0xb2, 0xdf, 0x5f, 0x10, 0x8f, 0x0b, 0x5a, 0x75, 0x2e, 0xe9, 0xf6, 0x23, + 0xbc, 0x39, 0xdb, 0xb4, 0x90, 0xe0, 0x4d, 0xf4, 0x11, 0xe4, 0x3d, 0xd2, 0x3b, 0x70, 0xb8, 0x02, + 0xb3, 0xcd, 0x0a, 0x09, 0xac, 0x9a, 0x62, 0x30, 0xe5, 0xa8, 0x30, 0x1b, 0x83, 0xc9, 0xd3, 0xb2, + 0xef, 0x1f, 0xba, 0x9e, 0x47, 0x1d, 0xab, 0x2a, 0x27, 0x85, 0x29, 0x39, 0x0a, 0x0a, 0x58, 0x3d, + 0xc5, 0x62, 0xca, 0x51, 0x7f, 0x56, 0x16, 0x13, 0x7d, 0x1d, 0x72, 0x5d, 0xea, 0x3e, 0xee, 0x32, + 0xf9, 0x82, 0x26, 0x57, 0xe7, 0x66, 0xbc, 0xfc, 0x4b, 0xcc, 0x78, 0x26, 0x7c, 0x2d, 0xe9, 0x88, + 0x22, 0xa9, 0x38, 0xa5, 0x7c, 0x64, 0x41, 0x3c, 0x72, 0x45, 0x1c, 0xee, 0xc9, 0xb3, 0x6d, 0x71, + 0x64, 0xfc, 0x5a, 0x83, 0x57, 0x24, 0xe1, 0x56, 0xdf, 0xb7, 0x45, 0xcb, 0xdc, 0x81, 0x82, 0x1d, + 0xf4, 0xc2, 0xc0, 0x1f, 0xcd, 0xbf, 0x13, 0x3a, 0x75, 0x44, 0xcf, 0x70, 0xe0, 0x11, 0x03, 0xba, + 0x0b, 0x59, 0x61, 0x9a, 0x3e, 0x9b, 0x69, 0x02, 0x64, 0x7c, 0xa1, 0xf1, 0xfc, 0x3e, 0xc7, 0x8f, + 0x96, 0x93, 0xf7, 0x4e, 0xae, 0xdd, 0x62, 0xf2, 0x4e, 0x79, 0x07, 0xb4, 0x70, 0xb6, 0x5c, 0xd5, + 0x42, 0x0e, 0x7a, 0x32, 0x5b, 0x7e, 0x6a, 0x4f, 0x8c, 0x01, 0xe4, 0x31, 0x8d, 0x69, 0x74, 0x44, + 0x63, 0xf4, 0x5d, 0xd0, 0xa3, 0x19, 0xaf, 0x98, 0x1e, 0x55, 0x05, 0x6c, 0xc6, 0x9b, 0xa5, 0x47, + 0xa6, 0xf1, 0x53, 0x1d, 0xf2, 0x1d, 0x35, 0x52, 0x7d, 0x00, 0x99, 0xb0, 0xeb, 0xca, 0x67, 0xbf, + 0x3d, 0x85, 0x5b, 0x87, 0xc1, 0xe1, 0x38, 0x3e, 0xfd, 0xfa, 0x81, 0x6f, 0x53, 0x39, 0x81, 0x26, + 0x0b, 0x74, 0x4f, 0xd4, 0x31, 0x46, 0xa7, 0xe9, 0xf8, 0x4a, 0x13, 0xf1, 0xf2, 0x83, 0x13, 0x1c, + 0xbf, 0xb6, 0x91, 0x74, 0xce, 0x34, 0x9f, 0x4c, 0x94, 0x23, 0xf1, 0x10, 0x85, 0x0c, 0x3e, 0xe3, + 0x07, 0x31, 0xb5, 0x02, 0xdf, 0xe2, 0xd7, 0x47, 0xdc, 0xdc, 0x3c, 0x2e, 0x8a, 0xcd, 0x5d, 0x7f, + 0xcb, 0xf5, 0x3c, 0xa3, 0x0e, 0xa0, 0x9e, 0xde, 0x72, 0xb8, 0x29, 0xae, 0xef, 0xcb, 0x0f, 0x19, + 0x25, 0x9c, 0x2c, 0xd0, 0x75, 0x28, 0x12, 0x8f, 0x59, 0x07, 0xd4, 0xee, 0xde, 0x31, 0x7b, 0xc2, + 0xcc, 0x02, 0x06, 0xe2, 0xb1, 0x5a, 0xb2, 0x63, 0x7c, 0xa9, 0xc3, 0xe2, 0x29, 0x1b, 0xd0, 0xf7, + 0x94, 0xf5, 0x9c, 0x68, 0xc9, 0xbc, 0x3b, 0xb5, 0xf5, 0xa7, 0x57, 0x4d, 0xbf, 0xdf, 0x93, 0xfe, + 0x30, 0x7e, 0xaf, 0xc1, 0xb5, 0x73, 0x87, 0xe8, 0x5b, 0x70, 0xbd, 0xb3, 0xbb, 0xd7, 0xda, 0x6f, + 0xed, 0xb6, 0xad, 0xbd, 0xfd, 0xcd, 0xfd, 0xa6, 0xd5, 0x6c, 0x7f, 0xb6, 0x63, 0x7d, 0xd6, 0xde, + 0xeb, 0x34, 0xeb, 0xad, 0xad, 0x56, 0xb3, 0xb1, 0x3c, 0x87, 0xd6, 0xa0, 0x3c, 0x4e, 0x68, 0xb7, + 0xd3, 0x6c, 0x37, 0x1b, 0xcb, 0xda, 0x45, 0xe7, 0xf5, 0x4f, 0x77, 0xf7, 0x9a, 0x8d, 0x65, 0x1d, + 0xbd, 0x0e, 0xaf, 0x8d, 0x3b, 0x7f, 0xd8, 0xda, 0xdf, 0x6e, 0xe0, 0xcd, 0x87, 0xed, 0xe5, 0x0c, + 0xba, 0x0e, 0xdf, 0x1c, 0x4f, 0xb1, 0xd9, 0xda, 0x69, 0x36, 0x96, 0xb3, 0xfc, 0xfe, 0xcd, 0x7f, + 0x1a, 0xb6, 0x0f, 0x19, 0xba, 0x0f, 0x45, 0x35, 0xcd, 0x5b, 0xae, 0x73, 0x41, 0x9f, 0x1b, 0xeb, + 0xa1, 0x96, 0x83, 0x21, 0x1c, 0x45, 0x6b, 0x98, 0x62, 0xfa, 0xe5, 0x52, 0xcc, 0xe8, 0x40, 0x49, + 0xed, 0xef, 0x86, 0xd4, 0xe7, 0x29, 0x37, 0x7c, 0xef, 0xd0, 0x26, 0xa7, 0x9c, 0xc2, 0x8e, 0xde, + 0x4e, 0x8c, 0xef, 0x8f, 0x12, 0xa1, 0xce, 0xb3, 0xec, 0xca, 0x8c, 0x35, 0xfe, 0xa8, 0xc1, 0xb2, + 0x3a, 0x7a, 0xe8, 0xb2, 0xae, 0x13, 0x91, 0xe3, 0xab, 0x73, 0x25, 0x81, 0x15, 0x75, 0x6d, 0xd2, + 0xdf, 0x56, 0xf4, 0x4b, 0x7e, 0x5b, 0x41, 0x8a, 0x6c, 0xb4, 0x67, 0xfc, 0x49, 0x83, 0x95, 0xa1, + 0xc7, 0xe8, 0x31, 0x89, 0x9c, 0x64, 0x0a, 0xbd, 0x32, 0x1b, 0x2c, 0x40, 0x91, 0xe0, 0xbd, 0x12, + 0x13, 0xae, 0x49, 0xae, 0x94, 0x05, 0xbf, 0x92, 0xaf, 0xbe, 0xcd, 0x01, 0xb5, 0xfb, 0xa2, 0x72, + 0xde, 0x87, 0x1c, 0x8b, 0x88, 0x4d, 0xe3, 0x55, 0xed, 0x46, 0x66, 0x52, 0x77, 0x3b, 0x05, 0xe5, + 0xa5, 0xd4, 0xa6, 0x58, 0xc2, 0xd1, 0x06, 0x2f, 0x3c, 0x61, 0x5f, 0xa9, 0x7b, 0x73, 0x82, 0xba, + 0x0f, 0x88, 0xd7, 0xa7, 0x38, 0x81, 0xa0, 0xf7, 0x21, 0x97, 0x4c, 0xd2, 0xb2, 0xd4, 0x4e, 0x07, + 0x96, 0x98, 0x72, 0x1d, 0xe6, 0x85, 0x2a, 0x5c, 0x85, 0x23, 0x7e, 0x22, 0x4d, 0x99, 0x52, 0x05, + 0x01, 0x31, 0xfe, 0xae, 0xc1, 0xab, 0x67, 0x93, 0x53, 0x7c, 0x1b, 0x48, 0x17, 0x71, 0xed, 0x52, + 0x45, 0xfc, 0x4c, 0x7a, 0xe8, 0x97, 0x4e, 0x0f, 0x35, 0x3d, 0x64, 0x2e, 0x33, 0x3d, 0xfc, 0x00, + 0xbe, 0x31, 0x26, 0x77, 0xaf, 0xc6, 0xc4, 0xda, 0x97, 0xfa, 0x9f, 0x9f, 0xad, 0x69, 0x4f, 0x9f, + 0xad, 0x69, 0xff, 0x78, 0xb6, 0xa6, 0xfd, 0xf2, 0xf9, 0xda, 0xdc, 0xd3, 0xe7, 0x6b, 0x73, 0x7f, + 0x7b, 0xbe, 0x36, 0x07, 0x6b, 0x76, 0xd0, 0x7b, 0x01, 0x5b, 0x2d, 0xdf, 0xa0, 0x83, 0x4e, 0x14, + 0xb0, 0xa0, 0xa3, 0x7d, 0x8e, 0x1f, 0xbb, 0xac, 0xdb, 0x3f, 0xa8, 0xd8, 0x41, 0x6f, 0xdd, 0x0e, + 0xe2, 0x5e, 0x10, 0xaf, 0x47, 0xd4, 0x23, 0x27, 0x34, 0x5a, 0x3f, 0x32, 0x87, 0x3f, 0xed, 0x2e, + 0x71, 0xfd, 0x78, 0xfd, 0xe2, 0x3f, 0x51, 0xee, 0x3a, 0x74, 0xa0, 0x7e, 0xff, 0x56, 0xcf, 0x74, + 0xea, 0x8d, 0xdf, 0xe9, 0xe5, 0x8e, 0x52, 0xa1, 0xce, 0x55, 0x68, 0xd0, 0x41, 0xe5, 0x81, 0x14, + 0xf9, 0x6a, 0x74, 0xf8, 0x88, 0x1f, 0x3e, 0x6a, 0xd0, 0xc1, 0x23, 0x75, 0xf8, 0x4c, 0x7f, 0xe3, + 0xe2, 0xc3, 0x47, 0xf7, 0x3b, 0xb5, 0x1d, 0xca, 0x88, 0x43, 0x18, 0xf9, 0x97, 0xfe, 0x9a, 0x12, + 0xdc, 0xd8, 0xe0, 0x92, 0x1b, 0x1b, 0x0d, 0x3a, 0xd8, 0xd8, 0x50, 0xb2, 0x07, 0x39, 0xf1, 0x77, + 0xcc, 0x9d, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x37, 0xdb, 0x43, 0xeb, 0xfe, 0x19, 0x00, 0x00, } func (m *Swap) Marshal() (dAtA []byte, err error) { @@ -2733,41 +2692,6 @@ func (m *SwapPlaintext) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *MockFlowCiphertext) 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 *MockFlowCiphertext) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MockFlowCiphertext) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Value != nil { - { - size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *SwapPlan) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2788,6 +2712,20 @@ func (m *SwapPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ProofBlindingS) > 0 { + i -= len(m.ProofBlindingS) + copy(dAtA[i:], m.ProofBlindingS) + i = encodeVarintDex(dAtA, i, uint64(len(m.ProofBlindingS))) + i-- + dAtA[i] = 0x22 + } + if len(m.ProofBlindingR) > 0 { + i -= len(m.ProofBlindingR) + copy(dAtA[i:], m.ProofBlindingR) + i = encodeVarintDex(dAtA, i, uint64(len(m.ProofBlindingR))) + i-- + dAtA[i] = 0x1a + } if len(m.FeeBlinding) > 0 { i -= len(m.FeeBlinding) copy(dAtA[i:], m.FeeBlinding) @@ -2830,6 +2768,20 @@ func (m *SwapClaimPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ProofBlindingS) > 0 { + i -= len(m.ProofBlindingS) + copy(dAtA[i:], m.ProofBlindingS) + i = encodeVarintDex(dAtA, i, uint64(len(m.ProofBlindingS))) + i-- + dAtA[i] = 0x32 + } + if len(m.ProofBlindingR) > 0 { + i -= len(m.ProofBlindingR) + copy(dAtA[i:], m.ProofBlindingR) + i = encodeVarintDex(dAtA, i, uint64(len(m.ProofBlindingR))) + i-- + dAtA[i] = 0x2a + } if m.EpochDuration != 0 { i = encodeVarintDex(dAtA, i, uint64(m.EpochDuration)) i-- @@ -3305,6 +3257,11 @@ func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.EpochStartingHeight != 0 { + i = encodeVarintDex(dAtA, i, uint64(m.EpochStartingHeight)) + i-- + dAtA[i] = 0x48 + } if m.TradingPair != nil { { size, err := m.TradingPair.MarshalToSizedBuffer(dAtA[:i]) @@ -3322,9 +3279,9 @@ func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x38 } - if m.Lambda_2_2 != nil { + if m.Unfilled_2 != nil { { - size, err := m.Lambda_2_2.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Unfilled_2.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3334,9 +3291,9 @@ func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x32 } - if m.Lambda_1_2 != nil { + if m.Unfilled_1 != nil { { - size, err := m.Lambda_1_2.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Unfilled_1.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3346,9 +3303,9 @@ func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x2a } - if m.Lambda_2_1 != nil { + if m.Lambda_2 != nil { { - size, err := m.Lambda_2_1.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Lambda_2.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3358,9 +3315,9 @@ func (m *BatchSwapOutputData) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x22 } - if m.Lambda_1_1 != nil { + if m.Lambda_1 != nil { { - size, err := m.Lambda_1_1.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Lambda_1.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3563,6 +3520,16 @@ func (m *Position) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.CloseOnFill { + i-- + if m.CloseOnFill { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } if m.Reserves != nil { { size, err := m.Reserves.MarshalToSizedBuffer(dAtA[:i]) @@ -3629,6 +3596,13 @@ func (m *PositionId) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.AltBech32M) > 0 { + i -= len(m.AltBech32M) + copy(dAtA[i:], m.AltBech32M) + i = encodeVarintDex(dAtA, i, uint64(len(m.AltBech32M))) + i-- + dAtA[i] = 0x12 + } if len(m.Inner) > 0 { i -= len(m.Inner) copy(dAtA[i:], m.Inner) @@ -3878,7 +3852,7 @@ func (m *PositionRewardClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Path) Marshal() (dAtA []byte, err error) { +func (m *SwapExecution) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -3888,19 +3862,19 @@ func (m *Path) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Path) MarshalTo(dAtA []byte) (int, error) { +func (m *SwapExecution) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Path) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *SwapExecution) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Phi != nil { + if m.Output != nil { { - size, err := m.Phi.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Output.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3910,10 +3884,22 @@ func (m *Path) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - if len(m.Route) > 0 { - for iNdEx := len(m.Route) - 1; iNdEx >= 0; iNdEx-- { + if m.Input != nil { + { + size, err := m.Input.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintDex(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Traces) > 0 { + for iNdEx := len(m.Traces) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.Route[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Traces[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3921,84 +3907,13 @@ func (m *Path) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintDex(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 + dAtA[i] = 0xa } } - if m.Pair != nil { - { - size, err := m.Pair.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *Trade) 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 *Trade) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Trade) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.EndAmount != nil { - { - size, err := m.EndAmount.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.StartAmount != nil { - { - size, err := m.StartAmount.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.Path != nil { - { - size, err := m.Path.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintDex(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *SwapExecution) Marshal() (dAtA []byte, err error) { +func (m *SwapExecution_Trace) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -4008,20 +3923,20 @@ func (m *SwapExecution) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *SwapExecution) MarshalTo(dAtA []byte) (int, error) { +func (m *SwapExecution_Trace) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *SwapExecution) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *SwapExecution_Trace) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Trades) > 0 { - for iNdEx := len(m.Trades) - 1; iNdEx >= 0; iNdEx-- { + if len(m.Value) > 0 { + for iNdEx := len(m.Value) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.Trades[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Value[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -4285,19 +4200,6 @@ func (m *SwapPlaintext) Size() (n int) { return n } -func (m *MockFlowCiphertext) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Value != nil { - l = m.Value.Size() - n += 1 + l + sovDex(uint64(l)) - } - return n -} - func (m *SwapPlan) Size() (n int) { if m == nil { return 0 @@ -4312,6 +4214,14 @@ func (m *SwapPlan) Size() (n int) { if l > 0 { n += 1 + l + sovDex(uint64(l)) } + l = len(m.ProofBlindingR) + if l > 0 { + n += 1 + l + sovDex(uint64(l)) + } + l = len(m.ProofBlindingS) + if l > 0 { + n += 1 + l + sovDex(uint64(l)) + } return n } @@ -4335,6 +4245,14 @@ func (m *SwapClaimPlan) Size() (n int) { if m.EpochDuration != 0 { n += 1 + sovDex(uint64(m.EpochDuration)) } + l = len(m.ProofBlindingR) + if l > 0 { + n += 1 + l + sovDex(uint64(l)) + } + l = len(m.ProofBlindingS) + if l > 0 { + n += 1 + l + sovDex(uint64(l)) + } return n } @@ -4522,20 +4440,20 @@ func (m *BatchSwapOutputData) Size() (n int) { l = m.Delta_2.Size() n += 1 + l + sovDex(uint64(l)) } - if m.Lambda_1_1 != nil { - l = m.Lambda_1_1.Size() + if m.Lambda_1 != nil { + l = m.Lambda_1.Size() n += 1 + l + sovDex(uint64(l)) } - if m.Lambda_2_1 != nil { - l = m.Lambda_2_1.Size() + if m.Lambda_2 != nil { + l = m.Lambda_2.Size() n += 1 + l + sovDex(uint64(l)) } - if m.Lambda_1_2 != nil { - l = m.Lambda_1_2.Size() + if m.Unfilled_1 != nil { + l = m.Unfilled_1.Size() n += 1 + l + sovDex(uint64(l)) } - if m.Lambda_2_2 != nil { - l = m.Lambda_2_2.Size() + if m.Unfilled_2 != nil { + l = m.Unfilled_2.Size() n += 1 + l + sovDex(uint64(l)) } if m.Height != 0 { @@ -4545,6 +4463,9 @@ func (m *BatchSwapOutputData) Size() (n int) { l = m.TradingPair.Size() n += 1 + l + sovDex(uint64(l)) } + if m.EpochStartingHeight != 0 { + n += 1 + sovDex(uint64(m.EpochStartingHeight)) + } return n } @@ -4624,6 +4545,9 @@ func (m *Position) Size() (n int) { l = m.Reserves.Size() n += 1 + l + sovDex(uint64(l)) } + if m.CloseOnFill { + n += 2 + } return n } @@ -4637,6 +4561,10 @@ func (m *PositionId) Size() (n int) { if l > 0 { n += 1 + l + sovDex(uint64(l)) } + l = len(m.AltBech32M) + if l > 0 { + n += 1 + l + sovDex(uint64(l)) + } return n } @@ -4729,58 +4657,37 @@ func (m *PositionRewardClaim) Size() (n int) { return n } -func (m *Path) Size() (n int) { +func (m *SwapExecution) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Pair != nil { - l = m.Pair.Size() - n += 1 + l + sovDex(uint64(l)) - } - if len(m.Route) > 0 { - for _, e := range m.Route { + if len(m.Traces) > 0 { + for _, e := range m.Traces { l = e.Size() n += 1 + l + sovDex(uint64(l)) } } - if m.Phi != nil { - l = m.Phi.Size() + if m.Input != nil { + l = m.Input.Size() n += 1 + l + sovDex(uint64(l)) } - return n -} - -func (m *Trade) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Path != nil { - l = m.Path.Size() - n += 1 + l + sovDex(uint64(l)) - } - if m.StartAmount != nil { - l = m.StartAmount.Size() - n += 1 + l + sovDex(uint64(l)) - } - if m.EndAmount != nil { - l = m.EndAmount.Size() + if m.Output != nil { + l = m.Output.Size() n += 1 + l + sovDex(uint64(l)) } return n } -func (m *SwapExecution) Size() (n int) { +func (m *SwapExecution_Trace) Size() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.Trades) > 0 { - for _, e := range m.Trades { + if len(m.Value) > 0 { + for _, e := range m.Value { l = e.Size() n += 1 + l + sovDex(uint64(l)) } @@ -5933,7 +5840,7 @@ func (m *SwapPlaintext) Unmarshal(dAtA []byte) error { } return nil } -func (m *MockFlowCiphertext) Unmarshal(dAtA []byte) error { +func (m *SwapPlan) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5956,15 +5863,15 @@ func (m *MockFlowCiphertext) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MockFlowCiphertext: wiretype end group for non-group") + return fmt.Errorf("proto: SwapPlan: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MockFlowCiphertext: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SwapPlan: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SwapPlaintext", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5991,68 +5898,52 @@ func (m *MockFlowCiphertext) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Value == nil { - m.Value = &v1alpha1.Amount{} + if m.SwapPlaintext == nil { + m.SwapPlaintext = &SwapPlaintext{} } - if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.SwapPlaintext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipDex(dAtA[iNdEx:]) - if err != nil { - return err + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FeeBlinding", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthDex + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + if byteLen < 0 { + return ErrInvalidLengthDex } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SwapPlan) 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 ErrIntOverflowDex + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDex } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.FeeBlinding = append(m.FeeBlinding[:0], dAtA[iNdEx:postIndex]...) + if m.FeeBlinding == nil { + m.FeeBlinding = []byte{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SwapPlan: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SwapPlan: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SwapPlaintext", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingR", wireType) } - var msglen int + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowDex @@ -6062,31 +5953,29 @@ func (m *SwapPlan) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + if byteLen < 0 { return ErrInvalidLengthDex } - postIndex := iNdEx + msglen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthDex } if postIndex > l { return io.ErrUnexpectedEOF } - if m.SwapPlaintext == nil { - m.SwapPlaintext = &SwapPlaintext{} - } - if err := m.SwapPlaintext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.ProofBlindingR = append(m.ProofBlindingR[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingR == nil { + m.ProofBlindingR = []byte{} } iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FeeBlinding", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingS", wireType) } var byteLen int for shift := uint(0); ; shift += 7 { @@ -6113,9 +6002,9 @@ func (m *SwapPlan) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FeeBlinding = append(m.FeeBlinding[:0], dAtA[iNdEx:postIndex]...) - if m.FeeBlinding == nil { - m.FeeBlinding = []byte{} + m.ProofBlindingS = append(m.ProofBlindingS[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingS == nil { + m.ProofBlindingS = []byte{} } iNdEx = postIndex default: @@ -6278,6 +6167,74 @@ func (m *SwapClaimPlan) Unmarshal(dAtA []byte) error { break } } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingR", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProofBlindingR = append(m.ProofBlindingR[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingR == nil { + m.ProofBlindingR = []byte{} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingS", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthDex + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProofBlindingS = append(m.ProofBlindingS[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingS == nil { + m.ProofBlindingS = []byte{} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDex(dAtA[iNdEx:]) @@ -7338,7 +7295,7 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1_1", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7365,16 +7322,16 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Lambda_1_1 == nil { - m.Lambda_1_1 = &v1alpha1.Amount{} + if m.Lambda_1 == nil { + m.Lambda_1 = &v1alpha1.Amount{} } - if err := m.Lambda_1_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Lambda_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2_1", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7401,16 +7358,16 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Lambda_2_1 == nil { - m.Lambda_2_1 = &v1alpha1.Amount{} + if m.Lambda_2 == nil { + m.Lambda_2 = &v1alpha1.Amount{} } - if err := m.Lambda_2_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Lambda_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_1_2", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Unfilled_1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7437,16 +7394,16 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Lambda_1_2 == nil { - m.Lambda_1_2 = &v1alpha1.Amount{} + if m.Unfilled_1 == nil { + m.Unfilled_1 = &v1alpha1.Amount{} } - if err := m.Lambda_1_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Unfilled_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Lambda_2_2", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Unfilled_2", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -7473,10 +7430,10 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Lambda_2_2 == nil { - m.Lambda_2_2 = &v1alpha1.Amount{} + if m.Unfilled_2 == nil { + m.Unfilled_2 = &v1alpha1.Amount{} } - if err := m.Lambda_2_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Unfilled_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -7535,6 +7492,25 @@ func (m *BatchSwapOutputData) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EpochStartingHeight", wireType) + } + m.EpochStartingHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EpochStartingHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipDex(dAtA[iNdEx:]) @@ -8112,6 +8088,26 @@ func (m *Position) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CloseOnFill", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CloseOnFill = bool(v != 0) default: iNdEx = preIndex skippy, err := skipDex(dAtA[iNdEx:]) @@ -8196,6 +8192,38 @@ func (m *PositionId) Unmarshal(dAtA []byte) error { m.Inner = []byte{} } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AltBech32M", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowDex + } + 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 ErrInvalidLengthDex + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthDex + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AltBech32M = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipDex(dAtA[iNdEx:]) @@ -8824,163 +8852,7 @@ func (m *PositionRewardClaim) Unmarshal(dAtA []byte) error { } return nil } -func (m *Path) 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 ErrIntOverflowDex - } - 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: Path: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Path: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Pair", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDex - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthDex - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthDex - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Pair == nil { - m.Pair = &DirectedTradingPair{} - } - if err := m.Pair.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Route", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDex - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthDex - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthDex - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Route = append(m.Route, &v1alpha1.AssetId{}) - if err := m.Route[len(m.Route)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Phi", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDex - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthDex - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthDex - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Phi == nil { - m.Phi = &BareTradingFunction{} - } - if err := m.Phi.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipDex(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthDex - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Trade) Unmarshal(dAtA []byte) error { +func (m *SwapExecution) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9003,15 +8875,15 @@ func (m *Trade) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Trade: wiretype end group for non-group") + return fmt.Errorf("proto: SwapExecution: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Trade: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SwapExecution: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Traces", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9038,16 +8910,14 @@ func (m *Trade) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Path == nil { - m.Path = &Path{} - } - if err := m.Path.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Traces = append(m.Traces, &SwapExecution_Trace{}) + if err := m.Traces[len(m.Traces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartAmount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Input", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9074,16 +8944,16 @@ func (m *Trade) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.StartAmount == nil { - m.StartAmount = &v1alpha1.Amount{} + if m.Input == nil { + m.Input = &v1alpha1.Value{} } - if err := m.StartAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Input.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EndAmount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9110,10 +8980,10 @@ func (m *Trade) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.EndAmount == nil { - m.EndAmount = &v1alpha1.Amount{} + if m.Output == nil { + m.Output = &v1alpha1.Value{} } - if err := m.EndAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Output.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -9138,7 +9008,7 @@ func (m *Trade) Unmarshal(dAtA []byte) error { } return nil } -func (m *SwapExecution) Unmarshal(dAtA []byte) error { +func (m *SwapExecution_Trace) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9161,15 +9031,15 @@ func (m *SwapExecution) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SwapExecution: wiretype end group for non-group") + return fmt.Errorf("proto: Trace: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SwapExecution: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Trace: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Trades", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9196,8 +9066,8 @@ func (m *SwapExecution) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Trades = append(m.Trades, &Trade{}) - if err := m.Trades[len(m.Trades)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Value = append(m.Value, &v1alpha1.Value{}) + if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go b/relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go index 51a916c78..80977b8d4 100644 --- a/relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go +++ b/relayer/chains/penumbra/core/governance/v1alpha1/governance.pb.go @@ -531,6 +531,10 @@ type DelegatorVotePlan struct { UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,6,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` // The randomizer to use for the proof of spend capability. Randomizer []byte `protobuf:"bytes,7,opt,name=randomizer,proto3" json:"randomizer,omitempty"` + // The first blinding factor to use for the ZK delegator vote proof. + ProofBlindingR []byte `protobuf:"bytes,8,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` + // The second blinding factor to use for the ZK delegator vote proof. + ProofBlindingS []byte `protobuf:"bytes,9,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` } func (m *DelegatorVotePlan) Reset() { *m = DelegatorVotePlan{} } @@ -615,6 +619,20 @@ func (m *DelegatorVotePlan) GetRandomizer() []byte { return nil } +func (m *DelegatorVotePlan) GetProofBlindingR() []byte { + if m != nil { + return m.ProofBlindingR + } + return nil +} + +func (m *DelegatorVotePlan) GetProofBlindingS() []byte { + if m != nil { + return m.ProofBlindingS + } + return nil +} + type DaoDeposit struct { // The value to deposit into the DAO. Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` @@ -1811,102 +1829,104 @@ func init() { } var fileDescriptor_1bc89f5bf0aed114 = []byte{ - // 1512 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x1b, 0x45, - 0x14, 0xf7, 0x3a, 0x8e, 0x3f, 0x5e, 0x12, 0xc7, 0x1d, 0x42, 0x65, 0x0c, 0x44, 0xe9, 0xb6, 0x85, - 0xa8, 0x50, 0x9b, 0xa6, 0xa0, 0x52, 0xf7, 0x40, 0x63, 0xe7, 0x53, 0x6d, 0x13, 0x77, 0x1d, 0x52, - 0x28, 0x91, 0x96, 0xb1, 0x77, 0x62, 0xaf, 0xb2, 0x9e, 0x59, 0xed, 0x8e, 0x13, 0x99, 0xbf, 0x00, - 0x6e, 0x95, 0xf8, 0x0f, 0x90, 0x10, 0x12, 0xff, 0x03, 0x77, 0x84, 0x04, 0xea, 0xb1, 0xdc, 0x50, - 0x72, 0xe3, 0xc8, 0x95, 0x0b, 0x9a, 0xdd, 0xd9, 0x8f, 0x24, 0xa5, 0xae, 0x13, 0x2a, 0x6e, 0xfb, - 0xde, 0xbe, 0xdf, 0xef, 0x7d, 0xcc, 0x9b, 0x99, 0xb7, 0x0b, 0x0b, 0x36, 0xa1, 0xfd, 0x5e, 0xcb, - 0xc1, 0x95, 0x36, 0x73, 0x48, 0xa5, 0xc3, 0xf6, 0x89, 0x43, 0x31, 0x6d, 0x93, 0xca, 0xfe, 0x0d, - 0x6c, 0xd9, 0x5d, 0x7c, 0x23, 0xa6, 0x2b, 0xdb, 0x0e, 0xe3, 0x0c, 0x5d, 0x0a, 0x30, 0x65, 0x81, - 0x29, 0xc7, 0xde, 0x07, 0x98, 0xd2, 0x1b, 0x1d, 0xc6, 0x3a, 0x16, 0xa9, 0x78, 0x80, 0x56, 0x7f, - 0xb7, 0x82, 0xe9, 0xc0, 0x47, 0x97, 0xae, 0x1d, 0xf7, 0xd8, 0x76, 0x06, 0x36, 0x67, 0x91, 0x37, - 0x5f, 0x96, 0xb6, 0xf3, 0x27, 0x6c, 0xbb, 0xd8, 0xa4, 0x31, 0x53, 0x21, 0xfa, 0x96, 0xea, 0x0f, - 0x0a, 0xe4, 0x1b, 0x0e, 0xb3, 0x99, 0x8b, 0xad, 0x66, 0xbf, 0xd5, 0x33, 0x39, 0x5a, 0x85, 0xac, - 0x2d, 0x35, 0x45, 0x65, 0x4e, 0x99, 0x9f, 0x58, 0x78, 0xaf, 0x3c, 0x34, 0xf2, 0x72, 0x40, 0xa2, - 0x85, 0x60, 0x74, 0x1f, 0xf2, 0x06, 0xb1, 0x99, 0x6b, 0x72, 0x1d, 0xf7, 0x58, 0x9f, 0xf2, 0xe2, - 0x98, 0x47, 0x77, 0xf5, 0x04, 0x9d, 0x0c, 0x3d, 0xa4, 0x5a, 0xf4, 0x8c, 0xb5, 0x29, 0x09, 0xf6, - 0x45, 0x75, 0x05, 0x0a, 0x81, 0x8f, 0x47, 0x26, 0xef, 0x1a, 0x0e, 0x3e, 0x40, 0xa5, 0x13, 0xa1, - 0xa6, 0x62, 0xde, 0x2f, 0x42, 0xda, 0x21, 0xd8, 0x65, 0xb4, 0x98, 0x9c, 0x53, 0xe6, 0x73, 0x9a, - 0x94, 0xd4, 0xdf, 0x14, 0x98, 0x09, 0x88, 0x96, 0x7c, 0x0f, 0x75, 0x0b, 0x9b, 0xbd, 0x17, 0x92, - 0x9d, 0x4e, 0x25, 0x79, 0xf6, 0x54, 0xd0, 0x7d, 0xc8, 0xb0, 0x3e, 0x6f, 0xb3, 0x1e, 0x91, 0x15, - 0x59, 0x18, 0xa1, 0xc0, 0x9b, 0x3e, 0x52, 0x0b, 0x28, 0xc4, 0x12, 0x4e, 0x6d, 0x63, 0xcb, 0x34, - 0x30, 0x67, 0xce, 0x36, 0xe3, 0x04, 0xad, 0x41, 0xaa, 0xc5, 0x8c, 0x81, 0x5c, 0xbd, 0x0f, 0x5f, - 0x82, 0xfc, 0x18, 0xbe, 0xc6, 0x8c, 0x81, 0xe6, 0x31, 0xa0, 0xfb, 0x90, 0xc5, 0x7d, 0xde, 0xd5, - 0x5d, 0xb3, 0x23, 0x33, 0xbe, 0x31, 0x24, 0xe3, 0xa6, 0x4d, 0xa8, 0xb1, 0xd8, 0xe7, 0xdd, 0xa6, - 0xd9, 0xa1, 0x98, 0xf7, 0x1d, 0xa2, 0x65, 0xb0, 0x2f, 0xaa, 0x4f, 0x92, 0x70, 0xe1, 0x94, 0xa7, - 0x17, 0xd6, 0xfd, 0x0e, 0xa4, 0xf6, 0x19, 0x27, 0xd2, 0xf7, 0xbb, 0x2f, 0x93, 0x09, 0xe3, 0x44, - 0xf3, 0x40, 0xe8, 0x01, 0x4c, 0x9a, 0x06, 0xa1, 0xdc, 0xe4, 0x03, 0x7d, 0x8f, 0x0c, 0x64, 0xad, - 0xaf, 0x0d, 0x49, 0x60, 0x5d, 0x42, 0xee, 0x91, 0x81, 0x36, 0x61, 0x46, 0x02, 0x6a, 0x42, 0x3e, - 0x72, 0xe8, 0x11, 0xa6, 0x3c, 0xc2, 0xf7, 0x87, 0x10, 0xae, 0x86, 0x20, 0x41, 0x39, 0xd5, 0x89, - 0x8b, 0xea, 0x5f, 0x0a, 0x4c, 0x2d, 0x11, 0x8b, 0x74, 0xce, 0xb1, 0x78, 0xc7, 0xf0, 0xaf, 0x6a, - 0xf1, 0xd0, 0x3a, 0x8c, 0xdb, 0x0e, 0x63, 0xbb, 0xb2, 0x8c, 0x37, 0x87, 0x50, 0x3d, 0xbe, 0x77, - 0x2c, 0xac, 0x86, 0x80, 0x6a, 0x3e, 0x83, 0xfa, 0x6b, 0x12, 0x2e, 0x9c, 0x0a, 0xfa, 0x85, 0x7d, - 0x70, 0x15, 0xf2, 0x2e, 0xc7, 0x0e, 0xd7, 0xbd, 0x6d, 0x64, 0xca, 0x4d, 0x9d, 0xd2, 0xa6, 0x3c, - 0x6d, 0x43, 0x2a, 0xc3, 0x76, 0x19, 0x3b, 0x4b, 0xbb, 0x54, 0x61, 0x7c, 0x1f, 0x5b, 0x7d, 0x22, - 0x97, 0xf5, 0xca, 0x90, 0x04, 0xb7, 0x85, 0xad, 0xe6, 0x43, 0xd0, 0x06, 0x4c, 0xf7, 0x69, 0x8b, - 0x51, 0x83, 0x18, 0xc1, 0x01, 0x31, 0x3e, 0xca, 0x01, 0x91, 0x0f, 0xd0, 0xf2, 0x84, 0x78, 0x0b, - 0x72, 0xb4, 0x6f, 0x59, 0xe6, 0xae, 0x49, 0x9c, 0x62, 0x7a, 0x4e, 0x99, 0x9f, 0xd4, 0x22, 0x05, - 0xca, 0x43, 0xd2, 0xd9, 0x2b, 0x66, 0x3c, 0x75, 0xd2, 0xd9, 0x53, 0xff, 0x3e, 0x59, 0xcf, 0x86, - 0x85, 0xe9, 0xff, 0x5e, 0xcf, 0x25, 0x98, 0x70, 0x39, 0xde, 0x23, 0x86, 0x4e, 0x05, 0x87, 0x5f, - 0xd5, 0xcb, 0x43, 0xea, 0xb1, 0x21, 0xf0, 0xe0, 0xe3, 0xc4, 0x33, 0xfa, 0x00, 0x66, 0x62, 0x2c, - 0x51, 0xbc, 0xe3, 0x5e, 0xbc, 0x28, 0xb2, 0x0c, 0x83, 0x7e, 0xce, 0x5a, 0xa4, 0xcf, 0xb3, 0x16, - 0xb3, 0x00, 0x0e, 0xa6, 0x06, 0xeb, 0x99, 0x5f, 0x11, 0x47, 0x56, 0x3d, 0xa6, 0x51, 0xd7, 0x00, - 0x96, 0x30, 0x93, 0x57, 0x49, 0xd4, 0x45, 0xca, 0xc8, 0x5d, 0xa4, 0xae, 0x40, 0x76, 0x09, 0x33, - 0x6f, 0x13, 0x9e, 0x8b, 0xe7, 0x1b, 0x05, 0x72, 0x4b, 0x98, 0x6d, 0xf6, 0xb9, 0xdd, 0x3f, 0x57, - 0x44, 0xe8, 0x2e, 0x64, 0xb0, 0x61, 0x38, 0xc4, 0x75, 0xe5, 0x09, 0xf2, 0xce, 0xb0, 0x1a, 0xfa, - 0xd6, 0x5a, 0x00, 0x53, 0xbf, 0x55, 0x20, 0xe5, 0x9d, 0x6b, 0x77, 0x65, 0x2f, 0x89, 0x28, 0xf2, - 0xa7, 0x0e, 0xcd, 0x7f, 0xeb, 0xa5, 0x58, 0x43, 0xa9, 0xeb, 0x92, 0x69, 0x06, 0x0a, 0xdb, 0x9b, - 0x5b, 0xcb, 0xfa, 0xa7, 0x1b, 0xcd, 0xc6, 0x72, 0x7d, 0x7d, 0x65, 0x7d, 0x79, 0xa9, 0x90, 0x40, - 0x05, 0x98, 0xf4, 0xb4, 0x8b, 0xb5, 0xe6, 0xd6, 0xe2, 0xfa, 0x46, 0x41, 0x41, 0x93, 0x90, 0xf5, - 0x34, 0x9f, 0x2f, 0x37, 0x0b, 0x49, 0x34, 0x01, 0x19, 0x4f, 0xda, 0xd8, 0x2c, 0x8c, 0xa9, 0xcf, - 0x52, 0x30, 0x15, 0x8e, 0x3d, 0x1c, 0x73, 0x82, 0x1e, 0x42, 0x7a, 0x9f, 0x71, 0x93, 0x06, 0x47, - 0xe5, 0xad, 0x11, 0xae, 0x64, 0x8f, 0x41, 0x44, 0x6a, 0xd2, 0xce, 0x5a, 0x42, 0x93, 0x44, 0xe8, - 0x31, 0xe4, 0x0e, 0xe4, 0xa4, 0x42, 0xe5, 0x16, 0xaa, 0x8e, 0xcc, 0x1a, 0xcc, 0x3a, 0x74, 0x2d, - 0xa1, 0x45, 0x74, 0xe8, 0x11, 0x64, 0x77, 0x4d, 0x6a, 0xba, 0x5d, 0x62, 0xc8, 0x9d, 0x75, 0x7b, - 0x64, 0xea, 0x15, 0x49, 0xb0, 0x96, 0xd0, 0x42, 0x32, 0xb4, 0x05, 0x99, 0xb6, 0x18, 0x87, 0x88, - 0x21, 0x4f, 0xb0, 0x8f, 0x47, 0xe6, 0xad, 0xfb, 0xf8, 0xb5, 0x84, 0x16, 0x50, 0x95, 0xb2, 0x90, - 0xf6, 0xcb, 0x53, 0xba, 0x0c, 0xb9, 0x30, 0xa5, 0xd8, 0x8c, 0xa6, 0xc4, 0x67, 0xb4, 0xd2, 0x67, - 0x90, 0x0d, 0x82, 0x8b, 0x0f, 0x4b, 0xca, 0xb9, 0x87, 0xa5, 0xd2, 0x23, 0xc8, 0xc8, 0xf0, 0xfe, - 0x5b, 0xe2, 0x5a, 0x06, 0xc6, 0x5d, 0x91, 0xbd, 0x7a, 0x34, 0x06, 0xd3, 0x27, 0xac, 0x50, 0x13, - 0xd2, 0x36, 0x76, 0x5d, 0x62, 0x48, 0x4f, 0xb7, 0x47, 0xf7, 0x54, 0x6e, 0x78, 0x04, 0xa2, 0xbd, - 0x7c, 0x2a, 0x41, 0xba, 0x8b, 0x4d, 0x8b, 0x18, 0xb2, 0x63, 0xcf, 0x42, 0xba, 0xe2, 0x11, 0x08, - 0x52, 0x9f, 0x0a, 0x6d, 0x43, 0xc6, 0xb5, 0xb0, 0xd7, 0x56, 0xa3, 0x77, 0x6c, 0xc0, 0xda, 0xf4, - 0x19, 0x44, 0x03, 0x48, 0x32, 0xd1, 0x00, 0x7e, 0x02, 0xa5, 0x2f, 0x20, 0xed, 0x7b, 0x45, 0xb7, - 0xe0, 0xf5, 0xb0, 0xa1, 0x75, 0xf1, 0xa4, 0xc7, 0x9b, 0x61, 0x2d, 0xa1, 0xbd, 0x16, 0xbe, 0x16, - 0x2d, 0xa3, 0x79, 0x2f, 0xbf, 0x56, 0x94, 0x5a, 0x11, 0x2e, 0xea, 0xcf, 0x45, 0x96, 0x76, 0x20, - 0x23, 0x9d, 0xbf, 0x02, 0xf6, 0x5a, 0x2e, 0xec, 0x18, 0xb5, 0x0e, 0xe3, 0x5b, 0xd8, 0xb2, 0x06, - 0xa8, 0x00, 0x63, 0x03, 0xe2, 0xca, 0x0b, 0x56, 0x3c, 0x8a, 0xdb, 0x99, 0x32, 0x79, 0x9f, 0x26, - 0x29, 0x43, 0x45, 0xc8, 0xe0, 0x96, 0xcb, 0xb1, 0xe9, 0x1f, 0x02, 0x29, 0x2d, 0x10, 0xd5, 0xef, - 0xd3, 0x90, 0x0d, 0x6a, 0x27, 0x60, 0xa6, 0xbf, 0x97, 0x53, 0x5a, 0xd2, 0x34, 0xd0, 0x0c, 0x8c, - 0x73, 0x93, 0x5b, 0x44, 0x6e, 0x0d, 0x5f, 0x40, 0x73, 0x30, 0x61, 0x10, 0xb7, 0xed, 0x98, 0x76, - 0x78, 0x6b, 0xe7, 0xb4, 0xb8, 0x0a, 0x35, 0x21, 0xe7, 0x8a, 0xe9, 0xcd, 0x12, 0x67, 0x99, 0xbf, - 0x85, 0x3f, 0x1a, 0x61, 0x0d, 0xcb, 0xcd, 0x00, 0xac, 0x45, 0x3c, 0x82, 0x94, 0xf4, 0x88, 0xd3, - 0x21, 0xb4, 0x3d, 0x90, 0xb7, 0xe9, 0x48, 0xa4, 0xcb, 0x01, 0x58, 0x8b, 0x78, 0xd0, 0x2e, 0x14, - 0x6c, 0xec, 0xe0, 0x1e, 0xe1, 0xc4, 0xd1, 0xdb, 0x5d, 0x4c, 0x3b, 0xc4, 0xbb, 0x5e, 0x27, 0x16, - 0xee, 0x8c, 0xc2, 0xdd, 0x08, 0x38, 0xea, 0x1e, 0x85, 0x36, 0x6d, 0x1f, 0x57, 0xa0, 0x87, 0x90, - 0x33, 0x30, 0xd3, 0x5d, 0x71, 0xaf, 0x16, 0xb3, 0x2f, 0x3d, 0x56, 0x87, 0x0e, 0x82, 0x3b, 0x59, - 0xcb, 0x1a, 0xf2, 0xa9, 0x74, 0x13, 0x72, 0x61, 0x9d, 0xd0, 0x9b, 0x90, 0x6e, 0xb3, 0x5e, 0xcf, - 0xe4, 0x61, 0x6b, 0x49, 0x59, 0x74, 0x53, 0x0e, 0x32, 0xba, 0x2f, 0x95, 0xae, 0x41, 0x2e, 0xac, - 0x03, 0x7a, 0x1b, 0xa0, 0x8b, 0x2d, 0xae, 0x7b, 0x1f, 0xe3, 0x1e, 0x30, 0xab, 0xe5, 0x84, 0xa6, - 0x2e, 0x14, 0xa5, 0x9f, 0x14, 0x98, 0x3e, 0x91, 0x18, 0xda, 0x82, 0x3c, 0xb3, 0x0c, 0x3d, 0x4c, - 0xcf, 0x95, 0xa7, 0xc9, 0xf5, 0x93, 0x77, 0xb2, 0xf7, 0x7d, 0x1f, 0xe6, 0xe1, 0x11, 0x86, 0x5c, - 0xae, 0x36, 0xc5, 0x2c, 0x23, 0x12, 0x05, 0x2b, 0x25, 0x07, 0x71, 0xd6, 0xe4, 0x99, 0x58, 0x29, - 0x39, 0x88, 0xc4, 0xd2, 0xbd, 0xd8, 0x28, 0xf3, 0x09, 0x14, 0xb8, 0x83, 0xa9, 0x8b, 0xdb, 0xa2, - 0x41, 0x75, 0xdb, 0xc2, 0x54, 0xfa, 0x98, 0x29, 0xfb, 0xff, 0x3b, 0xca, 0xc1, 0xff, 0x8e, 0xf2, - 0x22, 0x1d, 0x68, 0xd3, 0x31, 0x6b, 0x31, 0xc9, 0xd6, 0x7e, 0x4f, 0xfe, 0x7c, 0x38, 0xab, 0x3c, - 0x3d, 0x9c, 0x55, 0xfe, 0x38, 0x9c, 0x55, 0x9e, 0x1c, 0xcd, 0x26, 0x9e, 0x1e, 0xcd, 0x26, 0x9e, - 0x1d, 0xcd, 0x26, 0xe0, 0x6a, 0x9b, 0xf5, 0x86, 0xaf, 0x65, 0x6d, 0x3a, 0xfa, 0x08, 0x6b, 0x08, - 0x57, 0x0d, 0xe5, 0xf1, 0x97, 0x1d, 0x93, 0x77, 0xfb, 0xad, 0x72, 0x9b, 0xf5, 0x2a, 0x6d, 0xe6, - 0xf6, 0x98, 0x5b, 0x71, 0x88, 0x85, 0x07, 0xc4, 0xa9, 0xec, 0x2f, 0x84, 0x8f, 0x5e, 0xd6, 0x6e, - 0x65, 0xe8, 0xdf, 0x9e, 0x3b, 0x91, 0x2e, 0x50, 0x7d, 0x97, 0x1c, 0x6b, 0xd4, 0x57, 0x7f, 0x4c, - 0x5e, 0x6a, 0x04, 0xe1, 0xd5, 0x45, 0x78, 0x51, 0x24, 0xe5, 0x6d, 0x69, 0xf9, 0x4b, 0x64, 0xb3, - 0x23, 0x6c, 0x76, 0x22, 0x9b, 0x9d, 0xc0, 0xe6, 0x30, 0x79, 0x7d, 0xa8, 0xcd, 0xce, 0x6a, 0xa3, - 0xf6, 0x80, 0x70, 0x6c, 0x60, 0x8e, 0xff, 0x4c, 0x5e, 0x09, 0xec, 0xab, 0x55, 0x01, 0xa8, 0x56, - 0x23, 0x44, 0xb5, 0x1a, 0x40, 0x5a, 0x69, 0xaf, 0xf4, 0x37, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, - 0x57, 0x45, 0x3e, 0x65, 0xd1, 0x12, 0x00, 0x00, + // 1546 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x5d, 0x6f, 0x1b, 0x45, + 0x17, 0xf6, 0x3a, 0x8e, 0x3f, 0x4e, 0x12, 0xc7, 0x9d, 0x37, 0x6f, 0xe5, 0xd7, 0x2f, 0x44, 0xa9, + 0xdb, 0x42, 0x54, 0xa8, 0x4d, 0x53, 0x50, 0xa9, 0x7b, 0x41, 0x63, 0xe7, 0x53, 0x6d, 0x13, 0x77, + 0x1d, 0x52, 0x28, 0x91, 0x96, 0xb1, 0x77, 0x62, 0xaf, 0xb2, 0x9e, 0xb1, 0x76, 0xc7, 0x89, 0xcc, + 0x2f, 0x80, 0xbb, 0x4a, 0xfc, 0x03, 0x24, 0x84, 0xc4, 0x7f, 0xe0, 0x1e, 0x21, 0x01, 0xbd, 0x2c, + 0x77, 0x28, 0xb9, 0xe3, 0x92, 0x5f, 0x80, 0x66, 0x76, 0xf6, 0x23, 0x1f, 0xd4, 0x75, 0x42, 0xc5, + 0xdd, 0x9c, 0xe3, 0xf3, 0x3c, 0xe7, 0x63, 0xce, 0xcc, 0x1c, 0x2f, 0x2c, 0xf4, 0x08, 0xed, 0x77, + 0x9b, 0x0e, 0x2e, 0xb7, 0x98, 0x43, 0xca, 0x6d, 0xb6, 0x4f, 0x1c, 0x8a, 0x69, 0x8b, 0x94, 0xf7, + 0x6f, 0x61, 0xbb, 0xd7, 0xc1, 0xb7, 0x22, 0xba, 0x52, 0xcf, 0x61, 0x9c, 0xa1, 0x2b, 0x3e, 0xa6, + 0x24, 0x30, 0xa5, 0xc8, 0xef, 0x3e, 0xa6, 0xf0, 0xbf, 0x36, 0x63, 0x6d, 0x9b, 0x94, 0x25, 0xa0, + 0xd9, 0xdf, 0x2d, 0x63, 0x3a, 0xf0, 0xd0, 0x85, 0x1b, 0xc7, 0x3d, 0xb6, 0x9c, 0x41, 0x8f, 0xb3, + 0xd0, 0x9b, 0x27, 0x2b, 0xdb, 0xf9, 0x13, 0xb6, 0x1d, 0x6c, 0xd1, 0x88, 0xa9, 0x10, 0x3d, 0xcb, + 0xe2, 0x77, 0x1a, 0x64, 0xeb, 0x0e, 0xeb, 0x31, 0x17, 0xdb, 0x8d, 0x7e, 0xb3, 0x6b, 0x71, 0xb4, + 0x0a, 0xe9, 0x9e, 0xd2, 0xe4, 0xb5, 0x39, 0x6d, 0x7e, 0x62, 0xe1, 0x9d, 0xd2, 0xd0, 0xc8, 0x4b, + 0x3e, 0x89, 0x1e, 0x80, 0xd1, 0x43, 0xc8, 0x9a, 0xa4, 0xc7, 0x5c, 0x8b, 0x1b, 0xb8, 0xcb, 0xfa, + 0x94, 0xe7, 0xc7, 0x24, 0xdd, 0xf5, 0x13, 0x74, 0x2a, 0xf4, 0x80, 0x6a, 0x51, 0x1a, 0xeb, 0x53, + 0x0a, 0xec, 0x89, 0xc5, 0x15, 0xc8, 0xf9, 0x3e, 0x9e, 0x58, 0xbc, 0x63, 0x3a, 0xf8, 0x00, 0x15, + 0x4e, 0x84, 0x9a, 0x88, 0x78, 0xbf, 0x0c, 0x49, 0x87, 0x60, 0x97, 0xd1, 0x7c, 0x7c, 0x4e, 0x9b, + 0xcf, 0xe8, 0x4a, 0x2a, 0xfe, 0xa2, 0xc1, 0x8c, 0x4f, 0xb4, 0xe4, 0x79, 0xa8, 0xd9, 0xd8, 0xea, + 0xbe, 0x94, 0xec, 0x74, 0x2a, 0xf1, 0xf3, 0xa7, 0x82, 0x1e, 0x42, 0x8a, 0xf5, 0x79, 0x8b, 0x75, + 0x89, 0xaa, 0xc8, 0xc2, 0x08, 0x05, 0xde, 0xf4, 0x90, 0xba, 0x4f, 0x21, 0xb6, 0x70, 0x6a, 0x1b, + 0xdb, 0x96, 0x89, 0x39, 0x73, 0xb6, 0x19, 0x27, 0x68, 0x0d, 0x12, 0x4d, 0x66, 0x0e, 0xd4, 0xee, + 0xbd, 0xff, 0x0a, 0xe4, 0xc7, 0xf0, 0x55, 0x66, 0x0e, 0x74, 0xc9, 0x80, 0x1e, 0x42, 0x1a, 0xf7, + 0x79, 0xc7, 0x70, 0xad, 0xb6, 0xca, 0xf8, 0xd6, 0x90, 0x8c, 0x1b, 0x3d, 0x42, 0xcd, 0xc5, 0x3e, + 0xef, 0x34, 0xac, 0x36, 0xc5, 0xbc, 0xef, 0x10, 0x3d, 0x85, 0x3d, 0xb1, 0xf8, 0x2c, 0x0e, 0x97, + 0x4e, 0x79, 0x7a, 0x69, 0xdd, 0xef, 0x41, 0x62, 0x9f, 0x71, 0xa2, 0x7c, 0xbf, 0xfd, 0x2a, 0x99, + 0x30, 0x4e, 0x74, 0x09, 0x42, 0x8f, 0x60, 0xd2, 0x32, 0x09, 0xe5, 0x16, 0x1f, 0x18, 0x7b, 0x64, + 0xa0, 0x6a, 0x7d, 0x63, 0x48, 0x02, 0xeb, 0x0a, 0xf2, 0x80, 0x0c, 0xf4, 0x09, 0x2b, 0x14, 0x50, + 0x03, 0xb2, 0xa1, 0x43, 0x49, 0x98, 0x90, 0x84, 0xef, 0x0e, 0x21, 0x5c, 0x0d, 0x40, 0x82, 0x72, + 0xaa, 0x1d, 0x15, 0x8b, 0x7f, 0x6a, 0x30, 0xb5, 0x44, 0x6c, 0xd2, 0xbe, 0xc0, 0xe6, 0x1d, 0xc3, + 0xbf, 0xae, 0xcd, 0x43, 0xeb, 0x30, 0xde, 0x73, 0x18, 0xdb, 0x55, 0x65, 0xbc, 0x3d, 0x84, 0xea, + 0xe9, 0x83, 0x63, 0x61, 0xd5, 0x05, 0x54, 0xf7, 0x18, 0x8a, 0x3f, 0xc7, 0xe1, 0xd2, 0xa9, 0xa0, + 0x5f, 0xda, 0x07, 0xd7, 0x21, 0xeb, 0x72, 0xec, 0x70, 0x43, 0x1e, 0x23, 0x4b, 0x1d, 0xea, 0x84, + 0x3e, 0x25, 0xb5, 0x75, 0xa5, 0x0c, 0xda, 0x65, 0xec, 0x3c, 0xed, 0x52, 0x81, 0xf1, 0x7d, 0x6c, + 0xf7, 0x89, 0xda, 0xd6, 0x6b, 0x43, 0x12, 0xdc, 0x16, 0xb6, 0xba, 0x07, 0x41, 0x1b, 0x30, 0xdd, + 0xa7, 0x4d, 0x46, 0x4d, 0x62, 0xfa, 0x17, 0xc4, 0xf8, 0x28, 0x17, 0x44, 0xd6, 0x47, 0xab, 0x1b, + 0xe2, 0x0d, 0xc8, 0xd0, 0xbe, 0x6d, 0x5b, 0xbb, 0x16, 0x71, 0xf2, 0xc9, 0x39, 0x6d, 0x7e, 0x52, + 0x0f, 0x15, 0x28, 0x0b, 0x71, 0x67, 0x2f, 0x9f, 0x92, 0xea, 0xb8, 0xb3, 0x57, 0xfc, 0x75, 0xec, + 0x44, 0x3d, 0xeb, 0x36, 0xa6, 0xff, 0x7a, 0x3d, 0x97, 0x60, 0xc2, 0xe5, 0x78, 0x8f, 0x98, 0x06, + 0x15, 0x1c, 0x5e, 0x55, 0xaf, 0x0e, 0xa9, 0xc7, 0x86, 0xc0, 0x83, 0x87, 0x13, 0x6b, 0xf4, 0x1e, + 0xcc, 0x44, 0x58, 0xc2, 0x78, 0xc7, 0x65, 0xbc, 0x28, 0xb4, 0x0c, 0x82, 0x3e, 0x63, 0x2f, 0x92, + 0x17, 0xd9, 0x8b, 0x59, 0x00, 0x07, 0x53, 0x93, 0x75, 0xad, 0x2f, 0x88, 0xa3, 0xaa, 0x1e, 0xd1, + 0xa0, 0x79, 0xc8, 0xc9, 0xb6, 0x36, 0x9a, 0xb6, 0x45, 0x4d, 0x8b, 0xb6, 0x0d, 0x27, 0x9f, 0x96, + 0x56, 0x59, 0xa9, 0xaf, 0x2a, 0xb5, 0x7e, 0x86, 0xa5, 0x9b, 0xcf, 0x9c, 0x61, 0xd9, 0x28, 0xae, + 0x01, 0x2c, 0x61, 0xa6, 0x9e, 0xa7, 0xb0, 0x33, 0xb5, 0x91, 0x3b, 0xb3, 0xb8, 0x02, 0xe9, 0x25, + 0xcc, 0xe4, 0xc1, 0xbe, 0x10, 0xcf, 0x57, 0x1a, 0x64, 0x96, 0x30, 0xdb, 0xec, 0xf3, 0x5e, 0xff, + 0x42, 0x11, 0xa1, 0xfb, 0x90, 0xc2, 0xa6, 0xe9, 0x10, 0xd7, 0x55, 0xb7, 0xd2, 0x5b, 0xc3, 0xf6, + 0xc5, 0xb3, 0xd6, 0x7d, 0x58, 0xf1, 0x6b, 0x0d, 0x12, 0xf2, 0xae, 0xbc, 0xaf, 0xfa, 0x53, 0x44, + 0x91, 0x3d, 0x75, 0x11, 0xff, 0x5d, 0x7f, 0x46, 0x9a, 0xb4, 0xb8, 0xae, 0x98, 0x66, 0x20, 0xb7, + 0xbd, 0xb9, 0xb5, 0x6c, 0x7c, 0xbc, 0xd1, 0xa8, 0x2f, 0xd7, 0xd6, 0x57, 0xd6, 0x97, 0x97, 0x72, + 0x31, 0x94, 0x83, 0x49, 0xa9, 0x5d, 0xac, 0x36, 0xb6, 0x16, 0xd7, 0x37, 0x72, 0x1a, 0x9a, 0x84, + 0xb4, 0xd4, 0x7c, 0xba, 0xdc, 0xc8, 0xc5, 0xd1, 0x04, 0xa4, 0xa4, 0xb4, 0xb1, 0x99, 0x1b, 0x2b, + 0xbe, 0x48, 0xc0, 0x54, 0x30, 0x4a, 0x71, 0xcc, 0x09, 0x7a, 0x0c, 0xc9, 0x7d, 0xc6, 0x2d, 0xea, + 0x5f, 0xbf, 0x77, 0x46, 0x78, 0xe6, 0x25, 0x83, 0x88, 0xd4, 0xa2, 0xed, 0xb5, 0x98, 0xae, 0x88, + 0xd0, 0x53, 0xc8, 0x1c, 0xa8, 0xe9, 0x87, 0xaa, 0x63, 0x59, 0x19, 0x99, 0xd5, 0x9f, 0x9f, 0xe8, + 0x5a, 0x4c, 0x0f, 0xe9, 0xd0, 0x13, 0x48, 0xef, 0x5a, 0xd4, 0x72, 0x3b, 0xc4, 0x54, 0xa7, 0xf5, + 0xee, 0xc8, 0xd4, 0x2b, 0x8a, 0x60, 0x2d, 0xa6, 0x07, 0x64, 0x68, 0x0b, 0x52, 0x2d, 0x31, 0x62, + 0x11, 0x53, 0xdd, 0x8a, 0x1f, 0x8e, 0xcc, 0x5b, 0xf3, 0xf0, 0x6b, 0x31, 0xdd, 0xa7, 0x2a, 0xa4, + 0x21, 0xe9, 0x95, 0xa7, 0x70, 0x15, 0x32, 0x41, 0x4a, 0x91, 0xb9, 0x4f, 0x8b, 0xce, 0x7d, 0x85, + 0x4f, 0x20, 0xed, 0x07, 0x17, 0x1d, 0xc0, 0xb4, 0x0b, 0x0f, 0x60, 0x85, 0x27, 0x90, 0x52, 0xe1, + 0xfd, 0xb3, 0xc4, 0xd5, 0x14, 0x8c, 0xbb, 0x22, 0xfb, 0xe2, 0xd1, 0x18, 0x4c, 0x9f, 0xb0, 0x42, + 0x0d, 0x48, 0xf6, 0xb0, 0xeb, 0x12, 0x53, 0x79, 0xba, 0x3b, 0xba, 0xa7, 0x52, 0x5d, 0x12, 0x88, + 0xf6, 0xf2, 0xa8, 0x04, 0xe9, 0x2e, 0xb6, 0x6c, 0x62, 0xaa, 0x8e, 0x3d, 0x0f, 0xe9, 0x8a, 0x24, + 0x10, 0xa4, 0x1e, 0x15, 0xda, 0x86, 0x94, 0x6b, 0x63, 0xd9, 0x56, 0xa3, 0x77, 0xac, 0xcf, 0xda, + 0xf0, 0x18, 0x44, 0x03, 0x28, 0x32, 0xd1, 0x00, 0x5e, 0x02, 0x85, 0xcf, 0x20, 0xe9, 0x79, 0x45, + 0x77, 0xe0, 0xbf, 0x41, 0x43, 0x1b, 0x62, 0x65, 0x44, 0x9b, 0x61, 0x2d, 0xa6, 0xff, 0x27, 0xf8, + 0x59, 0xb4, 0x8c, 0x2e, 0x7f, 0xfc, 0x52, 0xd3, 0xaa, 0x79, 0xb8, 0x6c, 0x9c, 0x89, 0x2c, 0xec, + 0x40, 0x4a, 0x39, 0x7f, 0x0d, 0xec, 0xd5, 0x4c, 0xd0, 0x31, 0xc5, 0x1a, 0x8c, 0x6f, 0x61, 0xdb, + 0x1e, 0xa0, 0x1c, 0x8c, 0x0d, 0x88, 0xab, 0x1e, 0x6d, 0xb1, 0x14, 0x2f, 0x3e, 0x65, 0xea, 0x8d, + 0x8e, 0x53, 0x86, 0xf2, 0x90, 0xc2, 0x4d, 0x97, 0x63, 0xcb, 0xbb, 0x04, 0x12, 0xba, 0x2f, 0x16, + 0xbf, 0x4d, 0x42, 0xda, 0xaf, 0x9d, 0x80, 0x59, 0xde, 0x59, 0x4e, 0xe8, 0x71, 0xcb, 0x44, 0x33, + 0x30, 0xce, 0x2d, 0x6e, 0x13, 0x75, 0x34, 0x3c, 0x01, 0xcd, 0xc1, 0x84, 0x49, 0xdc, 0x96, 0x63, + 0xf5, 0x82, 0x49, 0x20, 0xa3, 0x47, 0x55, 0xa8, 0x01, 0x19, 0x57, 0x4c, 0x84, 0xb6, 0xb8, 0xcb, + 0xbc, 0x23, 0xfc, 0xc1, 0x08, 0x7b, 0x58, 0x6a, 0xf8, 0x60, 0x3d, 0xe4, 0x11, 0xa4, 0xa4, 0x4b, + 0x9c, 0x36, 0xa1, 0xad, 0x81, 0x7a, 0xa1, 0x47, 0x22, 0x5d, 0xf6, 0xc1, 0x7a, 0xc8, 0x83, 0x76, + 0x21, 0xd7, 0xc3, 0x0e, 0xee, 0x12, 0x4e, 0x1c, 0xa3, 0xd5, 0xc1, 0xb4, 0x4d, 0xe4, 0x93, 0x3d, + 0xb1, 0x70, 0x6f, 0x14, 0xee, 0xba, 0xcf, 0x51, 0x93, 0x14, 0xfa, 0x74, 0xef, 0xb8, 0x02, 0x3d, + 0x86, 0x8c, 0x89, 0x99, 0xe1, 0x8a, 0x77, 0x55, 0xbe, 0xf6, 0xaf, 0x36, 0xaa, 0x07, 0x0e, 0xfc, + 0x37, 0x59, 0x4f, 0x9b, 0x6a, 0x55, 0xb8, 0x0d, 0x99, 0xa0, 0x4e, 0xe8, 0xff, 0x90, 0x6c, 0xb1, + 0x6e, 0xd7, 0xe2, 0x41, 0x6b, 0x29, 0x59, 0x74, 0x53, 0x06, 0x52, 0x86, 0x27, 0x15, 0x6e, 0x40, + 0x26, 0xa8, 0x03, 0x7a, 0x13, 0xa0, 0x83, 0x6d, 0x6e, 0xc8, 0x3f, 0xf8, 0x12, 0x98, 0xd6, 0x33, + 0x42, 0x53, 0x13, 0x8a, 0xc2, 0x0f, 0x1a, 0x4c, 0x9f, 0x48, 0x0c, 0x6d, 0x41, 0x96, 0xd9, 0xa6, + 0x11, 0xa4, 0xe7, 0xaa, 0xdb, 0xe4, 0xe6, 0xc9, 0x37, 0x59, 0x7e, 0x33, 0x08, 0xf2, 0x90, 0x84, + 0x01, 0x97, 0xab, 0x4f, 0x31, 0xdb, 0x0c, 0x45, 0xc1, 0x4a, 0xc9, 0x41, 0x94, 0x35, 0x7e, 0x2e, + 0x56, 0x4a, 0x0e, 0x42, 0xb1, 0xf0, 0x20, 0x32, 0xca, 0x7c, 0x04, 0x39, 0xee, 0x60, 0xea, 0xe2, + 0x96, 0x68, 0x50, 0xa3, 0x67, 0x63, 0xaa, 0x7c, 0xcc, 0x94, 0xbc, 0x6f, 0x28, 0x25, 0xff, 0x1b, + 0x4a, 0x69, 0x91, 0x0e, 0xf4, 0xe9, 0x88, 0xb5, 0x98, 0x8e, 0xab, 0xbf, 0xc5, 0x7f, 0x3c, 0x9c, + 0xd5, 0x9e, 0x1f, 0xce, 0x6a, 0xbf, 0x1f, 0xce, 0x6a, 0xcf, 0x8e, 0x66, 0x63, 0xcf, 0x8f, 0x66, + 0x63, 0x2f, 0x8e, 0x66, 0x63, 0x70, 0xbd, 0xc5, 0xba, 0xc3, 0xf7, 0xb2, 0x3a, 0x1d, 0xfe, 0xb1, + 0xab, 0x0b, 0x57, 0x75, 0xed, 0xe9, 0xe7, 0x6d, 0x8b, 0x77, 0xfa, 0xcd, 0x52, 0x8b, 0x75, 0xcb, + 0x2d, 0xe6, 0x76, 0x99, 0x5b, 0x76, 0x88, 0x8d, 0x07, 0xc4, 0x29, 0xef, 0x2f, 0x04, 0x4b, 0x99, + 0xb5, 0x5b, 0x1e, 0xfa, 0x05, 0xe9, 0x5e, 0xa8, 0xf3, 0x55, 0xdf, 0xc4, 0xc7, 0xea, 0xb5, 0xd5, + 0xef, 0xe3, 0x57, 0xea, 0x7e, 0x78, 0x35, 0x11, 0x5e, 0x18, 0x49, 0x69, 0x5b, 0x59, 0xfe, 0x14, + 0xda, 0xec, 0x08, 0x9b, 0x9d, 0xd0, 0x66, 0xc7, 0xb7, 0x39, 0x8c, 0xdf, 0x1c, 0x6a, 0xb3, 0xb3, + 0x5a, 0xaf, 0x3e, 0x22, 0x1c, 0x9b, 0x98, 0xe3, 0x3f, 0xe2, 0xd7, 0x7c, 0xfb, 0x4a, 0x45, 0x00, + 0x2a, 0x95, 0x10, 0x51, 0xa9, 0xf8, 0x90, 0x66, 0x52, 0x96, 0xfe, 0xf6, 0x5f, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x07, 0xf0, 0xab, 0xae, 0x25, 0x13, 0x00, 0x00, } func (m *ProposalSubmit) Marshal() (dAtA []byte, err error) { @@ -2316,6 +2336,20 @@ func (m *DelegatorVotePlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ProofBlindingS) > 0 { + i -= len(m.ProofBlindingS) + copy(dAtA[i:], m.ProofBlindingS) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.ProofBlindingS))) + i-- + dAtA[i] = 0x4a + } + if len(m.ProofBlindingR) > 0 { + i -= len(m.ProofBlindingR) + copy(dAtA[i:], m.ProofBlindingR) + i = encodeVarintGovernance(dAtA, i, uint64(len(m.ProofBlindingR))) + i-- + dAtA[i] = 0x42 + } if len(m.Randomizer) > 0 { i -= len(m.Randomizer) copy(dAtA[i:], m.Randomizer) @@ -3452,6 +3486,14 @@ func (m *DelegatorVotePlan) Size() (n int) { if l > 0 { n += 1 + l + sovGovernance(uint64(l)) } + l = len(m.ProofBlindingR) + if l > 0 { + n += 1 + l + sovGovernance(uint64(l)) + } + l = len(m.ProofBlindingS) + if l > 0 { + n += 1 + l + sovGovernance(uint64(l)) + } return n } @@ -5156,6 +5198,74 @@ func (m *DelegatorVotePlan) Unmarshal(dAtA []byte) error { m.Randomizer = []byte{} } iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingR", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProofBlindingR = append(m.ProofBlindingR[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingR == nil { + m.ProofBlindingR = []byte{} + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingS", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovernance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGovernance + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthGovernance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProofBlindingS = append(m.ProofBlindingS[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingS == nil { + m.ProofBlindingS = []byte{} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGovernance(dAtA[iNdEx:]) diff --git a/relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go b/relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go index 9f95c7e73..8bf6ff767 100644 --- a/relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go +++ b/relayer/chains/penumbra/core/ibc/v1alpha1/ibc.pb.go @@ -168,27 +168,23 @@ func (m *FungibleTokenPacketData) GetReceiver() string { } type Ics20Withdrawal struct { - // the chain ID of the destination chain for this ICS20 transfer - DestinationChainId string `protobuf:"bytes,1,opt,name=destination_chain_id,json=destinationChainId,proto3" json:"destination_chain_id,omitempty"` - Amount *v1alpha1.Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` - Denom *v1alpha1.Denom `protobuf:"bytes,3,opt,name=denom,proto3" json:"denom,omitempty"` + Amount *v1alpha1.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + Denom *v1alpha1.Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` // the address on the destination chain to send the transfer to - DestinationChainAddress string `protobuf:"bytes,4,opt,name=destination_chain_address,json=destinationChainAddress,proto3" json:"destination_chain_address,omitempty"` + DestinationChainAddress string `protobuf:"bytes,3,opt,name=destination_chain_address,json=destinationChainAddress,proto3" json:"destination_chain_address,omitempty"` // a "sender" penumbra address to use to return funds from this withdrawal. // this should be an ephemeral address - ReturnAddress *v1alpha1.Address `protobuf:"bytes,5,opt,name=return_address,json=returnAddress,proto3" json:"return_address,omitempty"` + ReturnAddress *v1alpha1.Address `protobuf:"bytes,4,opt,name=return_address,json=returnAddress,proto3" json:"return_address,omitempty"` // the height (on Penumbra) at which this transfer expires (and funds are sent // back to the sender address?). NOTE: if funds are sent back to the sender, // we MUST verify a nonexistence proof before accepting the timeout, to // prevent relayer censorship attacks. The core IBC implementation does this // in its handling of validation of timeouts. - TimeoutHeight uint64 `protobuf:"varint,6,opt,name=timeout_height,json=timeoutHeight,proto3" json:"timeout_height,omitempty"` + TimeoutHeight uint64 `protobuf:"varint,5,opt,name=timeout_height,json=timeoutHeight,proto3" json:"timeout_height,omitempty"` // the timestamp at which this transfer expires. - TimeoutTime uint64 `protobuf:"varint,7,opt,name=timeout_time,json=timeoutTime,proto3" json:"timeout_time,omitempty"` - // the source port that identifies the channel used for the withdrawal - SourcePort string `protobuf:"bytes,8,opt,name=source_port,json=sourcePort,proto3" json:"source_port,omitempty"` + TimeoutTime uint64 `protobuf:"varint,6,opt,name=timeout_time,json=timeoutTime,proto3" json:"timeout_time,omitempty"` // the source channel used for the withdrawal - SourceChannel string `protobuf:"bytes,9,opt,name=source_channel,json=sourceChannel,proto3" json:"source_channel,omitempty"` + SourceChannel string `protobuf:"bytes,7,opt,name=source_channel,json=sourceChannel,proto3" json:"source_channel,omitempty"` } func (m *Ics20Withdrawal) Reset() { *m = Ics20Withdrawal{} } @@ -224,13 +220,6 @@ func (m *Ics20Withdrawal) XXX_DiscardUnknown() { var xxx_messageInfo_Ics20Withdrawal proto.InternalMessageInfo -func (m *Ics20Withdrawal) GetDestinationChainId() string { - if m != nil { - return m.DestinationChainId - } - return "" -} - func (m *Ics20Withdrawal) GetAmount() *v1alpha1.Amount { if m != nil { return m.Amount @@ -273,13 +262,6 @@ func (m *Ics20Withdrawal) GetTimeoutTime() uint64 { return 0 } -func (m *Ics20Withdrawal) GetSourcePort() string { - if m != nil { - return m.SourcePort - } - return "" -} - func (m *Ics20Withdrawal) GetSourceChannel() string { if m != nil { return m.SourceChannel @@ -592,58 +574,56 @@ func init() { } var fileDescriptor_6509740287584c65 = []byte{ - // 803 bytes of a gzipped FileDescriptorProto + // 773 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0x41, 0x8f, 0x1b, 0x35, - 0x14, 0xde, 0x49, 0xb6, 0xbb, 0x1b, 0xa7, 0x49, 0xe8, 0x68, 0x45, 0xa7, 0x41, 0xa4, 0x61, 0xd4, - 0x56, 0x5b, 0x24, 0x66, 0x9a, 0x14, 0x84, 0x34, 0xa8, 0x12, 0xd9, 0xa9, 0x28, 0x73, 0xa8, 0x88, - 0x86, 0xaa, 0x48, 0x28, 0x52, 0xe4, 0xf1, 0xb8, 0x89, 0xd5, 0x8c, 0x1d, 0xd9, 0x9e, 0xac, 0x22, - 0xfe, 0x04, 0x7f, 0x01, 0x8e, 0x9c, 0xf9, 0x11, 0x88, 0x53, 0x8f, 0x48, 0x5c, 0x50, 0xf6, 0xc6, - 0xaf, 0x40, 0xb6, 0xc7, 0x49, 0x03, 0x6c, 0xf7, 0x14, 0xbf, 0xef, 0xfb, 0xde, 0xcb, 0xf7, 0x9e, - 0xdf, 0x18, 0xdc, 0x5b, 0x62, 0x5a, 0x16, 0x19, 0x87, 0x21, 0x62, 0x1c, 0x87, 0x24, 0x43, 0xe1, - 0x6a, 0x00, 0x17, 0xcb, 0x39, 0x1c, 0xa8, 0x20, 0x58, 0x72, 0x26, 0x99, 0xdb, 0xb5, 0xaa, 0x40, - 0xa9, 0x02, 0x45, 0x58, 0x55, 0xf7, 0xe3, 0xfd, 0x0a, 0x88, 0xaf, 0x97, 0x92, 0xed, 0x8a, 0x98, - 0xd8, 0xd4, 0xe9, 0xde, 0x55, 0xf5, 0x8d, 0x6c, 0x41, 0x30, 0x95, 0xe1, 0x6a, 0x50, 0x9d, 0x2a, - 0xc1, 0x9d, 0x19, 0x63, 0xb3, 0x05, 0x0e, 0x75, 0x94, 0x95, 0xaf, 0x42, 0x48, 0xd7, 0x86, 0xf2, - 0xbf, 0x04, 0x8d, 0x24, 0x43, 0x23, 0x24, 0x09, 0xa3, 0xee, 0x63, 0x00, 0x38, 0xbc, 0x98, 0x42, - 0x1d, 0x79, 0x4e, 0xdf, 0x39, 0x6b, 0x0e, 0x4f, 0x03, 0x93, 0x1c, 0xd8, 0xe4, 0x60, 0x44, 0xd7, - 0x69, 0x83, 0xc3, 0x0b, 0x93, 0xe4, 0xff, 0x00, 0x6e, 0x7f, 0x55, 0xd2, 0x19, 0xc9, 0x16, 0xf8, - 0x05, 0x7b, 0x8d, 0xe9, 0x18, 0xa2, 0xd7, 0x58, 0x3e, 0x85, 0x12, 0xba, 0xa7, 0xe0, 0x46, 0x8e, - 0x29, 0x2b, 0x74, 0xa9, 0x46, 0x6a, 0x02, 0xf7, 0x7d, 0x70, 0x04, 0x0b, 0x56, 0x52, 0xe9, 0xd5, - 0x34, 0x5c, 0x45, 0x0a, 0x17, 0x98, 0xe6, 0x98, 0x7b, 0x75, 0x83, 0x9b, 0xc8, 0xed, 0x82, 0x13, - 0x8e, 0x11, 0x26, 0x2b, 0xcc, 0xbd, 0x43, 0xcd, 0x6c, 0x63, 0xff, 0xcf, 0x3a, 0xe8, 0x24, 0x48, - 0x0c, 0x1f, 0x7d, 0x47, 0xe4, 0x3c, 0xe7, 0xf0, 0x02, 0x2e, 0xdc, 0x47, 0xe0, 0x34, 0xc7, 0x42, - 0x12, 0x0a, 0x95, 0xbf, 0x29, 0x9a, 0x43, 0x42, 0xa7, 0x24, 0xaf, 0x4c, 0xb8, 0x6f, 0x71, 0xb1, - 0xa2, 0x92, 0xdc, 0x7d, 0xb2, 0xe7, 0xa8, 0x39, 0xbc, 0x1f, 0xec, 0xdf, 0x4c, 0x35, 0x6d, 0x3b, - 0xfd, 0x60, 0xa4, 0xc5, 0x5b, 0xe3, 0x91, 0x6d, 0xb3, 0xae, 0xb3, 0xef, 0x5d, 0x93, 0xfd, 0x54, - 0x69, 0xed, 0x30, 0x22, 0x70, 0xe7, 0xbf, 0x66, 0x61, 0x9e, 0x73, 0x2c, 0x44, 0xd5, 0xed, 0xed, - 0x7f, 0x3b, 0x1e, 0x19, 0xda, 0x7d, 0x0e, 0xda, 0x1c, 0xcb, 0x92, 0xef, 0x12, 0x6e, 0x68, 0x03, - 0x0f, 0xae, 0xb3, 0x6f, 0xd4, 0x69, 0xcb, 0x64, 0xdb, 0x72, 0xf7, 0x41, 0x5b, 0x92, 0x02, 0xb3, - 0x52, 0x4e, 0xe7, 0x98, 0xcc, 0xe6, 0xd2, 0x3b, 0xea, 0x3b, 0x67, 0x87, 0x69, 0xab, 0x42, 0xbf, - 0xd6, 0xa0, 0xfb, 0x11, 0xb8, 0x69, 0x65, 0xea, 0xd7, 0x3b, 0xd6, 0xa2, 0x66, 0x85, 0xbd, 0x20, - 0x05, 0x76, 0xef, 0x82, 0xa6, 0x60, 0x25, 0x47, 0x78, 0xba, 0x64, 0x5c, 0x7a, 0x27, 0xba, 0x0d, - 0x60, 0xa0, 0x31, 0xe3, 0x52, 0xfd, 0x55, 0x25, 0x40, 0x73, 0x48, 0x29, 0x5e, 0x78, 0x0d, 0xad, - 0x69, 0x19, 0x34, 0x36, 0xa0, 0xff, 0xab, 0x03, 0x40, 0xac, 0x17, 0x59, 0xaf, 0xd3, 0x07, 0xa0, - 0x61, 0xd6, 0x7a, 0x77, 0x9b, 0x27, 0x06, 0x48, 0x72, 0xf7, 0x73, 0x70, 0xb3, 0x22, 0x85, 0x84, - 0x12, 0x57, 0x37, 0xf9, 0xff, 0xdb, 0xdb, 0x34, 0xca, 0x6f, 0x95, 0x50, 0x79, 0x59, 0x72, 0x86, - 0xb0, 0x10, 0x38, 0x37, 0x1d, 0x99, 0xf5, 0x6b, 0x6d, 0x51, 0xdd, 0xd3, 0x43, 0xf0, 0xde, 0x4e, - 0x56, 0xcd, 0xe7, 0x50, 0xb7, 0xde, 0xd9, 0xe2, 0x66, 0x42, 0xfe, 0x43, 0xd0, 0x32, 0xae, 0x63, - 0xb5, 0x1e, 0x98, 0xbb, 0x1e, 0x38, 0x46, 0xe6, 0xa8, 0x6d, 0x1f, 0xa6, 0x36, 0xf4, 0xbf, 0x01, - 0xed, 0x98, 0x51, 0x81, 0xa9, 0x28, 0x85, 0xb1, 0xf3, 0x04, 0x74, 0x90, 0x45, 0xaa, 0x56, 0xde, - 0xf5, 0x21, 0xb6, 0xd1, 0x5e, 0xba, 0xff, 0x0c, 0x74, 0x5e, 0x62, 0x4e, 0x5e, 0x11, 0xeb, 0x46, - 0xb8, 0x9f, 0x82, 0x63, 0xe3, 0x57, 0x78, 0x4e, 0xbf, 0x7e, 0xd6, 0x1c, 0x76, 0xf5, 0x53, 0x63, - 0x56, 0xc3, 0x3c, 0x13, 0xab, 0x41, 0x60, 0xd4, 0xa9, 0x95, 0xfa, 0x9f, 0x80, 0x5b, 0x31, 0xa3, - 0x14, 0xeb, 0x8f, 0xfc, 0xfa, 0x46, 0x3e, 0x03, 0xb7, 0x6c, 0xcf, 0x36, 0x49, 0xb8, 0x7d, 0xd0, - 0x44, 0xbb, 0x50, 0xff, 0x7b, 0x23, 0x7d, 0x1b, 0x3a, 0xff, 0xa9, 0xf6, 0xdb, 0xa6, 0xe7, 0xbc, - 0xd9, 0xf4, 0x9c, 0xbf, 0x36, 0x3d, 0xe7, 0xc7, 0xcb, 0xde, 0xc1, 0x9b, 0xcb, 0xde, 0xc1, 0x1f, - 0x97, 0xbd, 0x03, 0xd0, 0x43, 0xac, 0x08, 0xae, 0x7e, 0x21, 0xcf, 0x4f, 0x92, 0x0c, 0x8d, 0xd5, - 0x28, 0xc6, 0xce, 0xf7, 0xe9, 0x8c, 0xc8, 0x79, 0x99, 0x05, 0x88, 0x15, 0x21, 0x62, 0xa2, 0x60, - 0x22, 0xe4, 0x78, 0x01, 0xd7, 0x98, 0x87, 0xab, 0xe1, 0xf6, 0xa8, 0x3f, 0x2e, 0x11, 0x5e, 0xfd, - 0x36, 0x7f, 0x41, 0x32, 0x64, 0xcf, 0x3f, 0xd7, 0xea, 0xe3, 0x38, 0xf9, 0xa5, 0xd6, 0x1d, 0x5b, - 0x0b, 0xb1, 0xb2, 0x90, 0x64, 0x28, 0x78, 0x59, 0x49, 0x7e, 0xdf, 0x91, 0x13, 0x45, 0x4e, 0x92, - 0x0c, 0x4d, 0x2c, 0xb9, 0xa9, 0x3d, 0xb8, 0x9a, 0x9c, 0x3c, 0x1b, 0x9f, 0x3f, 0xc7, 0x12, 0xe6, - 0x50, 0xc2, 0xbf, 0x6b, 0x1f, 0x5a, 0x61, 0x14, 0x29, 0x65, 0x14, 0x25, 0x19, 0x8a, 0x22, 0xab, - 0xcd, 0x8e, 0xf4, 0x85, 0x3f, 0xfe, 0x27, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x96, 0x37, 0xa5, 0x55, - 0x06, 0x00, 0x00, + 0x14, 0xde, 0x49, 0xd2, 0xdd, 0x8d, 0xd3, 0x24, 0x74, 0x54, 0xd1, 0x69, 0x10, 0x21, 0x8c, 0xda, + 0x6a, 0x8b, 0xc4, 0x0c, 0x49, 0x41, 0x48, 0x83, 0x2a, 0x91, 0x9d, 0x8a, 0x32, 0x87, 0x8a, 0x68, + 0xa8, 0x8a, 0x84, 0x22, 0x45, 0x1e, 0x8f, 0x9b, 0x58, 0x9b, 0xb1, 0x23, 0xdb, 0x93, 0x55, 0xc4, + 0x1f, 0xe0, 0xc8, 0x5f, 0x80, 0x23, 0x67, 0x7e, 0x04, 0xe2, 0xb4, 0x47, 0x8e, 0x28, 0x7b, 0xe3, + 0x57, 0x20, 0xdb, 0xe3, 0x64, 0x57, 0x62, 0xbb, 0xa7, 0xf8, 0x7d, 0xef, 0x7b, 0x2f, 0xdf, 0xf7, + 0xde, 0xd8, 0xe0, 0xd1, 0x0a, 0xd3, 0xb2, 0xc8, 0x38, 0x0c, 0x11, 0xe3, 0x38, 0x24, 0x19, 0x0a, + 0xd7, 0x43, 0xb8, 0x5c, 0x2d, 0xe0, 0x50, 0x05, 0xc1, 0x8a, 0x33, 0xc9, 0xdc, 0x9e, 0x65, 0x05, + 0x8a, 0x15, 0xa8, 0x84, 0x65, 0xf5, 0x3e, 0xb9, 0xde, 0x01, 0xf1, 0xcd, 0x4a, 0xb2, 0x7d, 0x13, + 0x13, 0x9b, 0x3e, 0xbd, 0x8f, 0x54, 0x7f, 0x43, 0x5b, 0x12, 0x4c, 0x65, 0xb8, 0x1e, 0x56, 0xa7, + 0x8a, 0xf0, 0x70, 0xce, 0xd8, 0x7c, 0x89, 0x43, 0x1d, 0x65, 0xe5, 0xdb, 0x10, 0xd2, 0x8d, 0x49, + 0xf9, 0x5f, 0x83, 0x66, 0x92, 0xa1, 0x31, 0x92, 0x84, 0x51, 0xf7, 0x19, 0x00, 0x1c, 0x9e, 0xcf, + 0xa0, 0x8e, 0x3c, 0x67, 0xe0, 0x9c, 0xb4, 0x46, 0xf7, 0x03, 0x53, 0x1c, 0xd8, 0xe2, 0x60, 0x4c, + 0x37, 0x69, 0x93, 0xc3, 0x73, 0x53, 0xe4, 0xff, 0x04, 0x1e, 0x7c, 0x53, 0xd2, 0x39, 0xc9, 0x96, + 0xf8, 0x35, 0x3b, 0xc3, 0x74, 0x02, 0xd1, 0x19, 0x96, 0x2f, 0xa0, 0x84, 0xee, 0x7d, 0x70, 0x27, + 0xc7, 0x94, 0x15, 0xba, 0x55, 0x33, 0x35, 0x81, 0xfb, 0x3e, 0x38, 0x84, 0x05, 0x2b, 0xa9, 0xf4, + 0x6a, 0x1a, 0xae, 0x22, 0x85, 0x0b, 0x4c, 0x73, 0xcc, 0xbd, 0xba, 0xc1, 0x4d, 0xe4, 0xf6, 0xc0, + 0x31, 0xc7, 0x08, 0x93, 0x35, 0xe6, 0x5e, 0x43, 0x67, 0x76, 0xb1, 0xff, 0x73, 0x1d, 0x74, 0x13, + 0x24, 0x46, 0x9f, 0xfd, 0x40, 0xe4, 0x22, 0xe7, 0xf0, 0x1c, 0x2e, 0xdd, 0xe7, 0xbb, 0xfe, 0xc6, + 0xc1, 0xe3, 0xe0, 0xfa, 0x9c, 0xab, 0xd9, 0xd9, 0x59, 0x06, 0x63, 0x4d, 0xde, 0xc9, 0x88, 0xac, + 0xe8, 0x9a, 0xae, 0x7e, 0x74, 0x4b, 0xf5, 0x0b, 0xc5, 0xb5, 0xd6, 0x22, 0xf0, 0x30, 0xc7, 0x42, + 0x12, 0x0a, 0xd5, 0x68, 0x66, 0x68, 0x01, 0x09, 0x9d, 0xc1, 0x3c, 0xe7, 0x58, 0x88, 0xca, 0xd5, + 0x83, 0x2b, 0x84, 0x58, 0xe5, 0xc7, 0x26, 0xed, 0xbe, 0x02, 0x1d, 0x8e, 0x65, 0xc9, 0xf7, 0x05, + 0x0d, 0x2d, 0xe0, 0xc9, 0x6d, 0xf2, 0x0d, 0x3b, 0x6d, 0x9b, 0x6a, 0xdb, 0xee, 0x31, 0xe8, 0x48, + 0x52, 0x60, 0x56, 0xca, 0xd9, 0x02, 0x93, 0xf9, 0x42, 0x7a, 0x77, 0x06, 0xce, 0x49, 0x23, 0x6d, + 0x57, 0xe8, 0xb7, 0x1a, 0x74, 0x3f, 0x06, 0x77, 0x2d, 0x4d, 0xfd, 0x7a, 0x87, 0x9a, 0xd4, 0xaa, + 0xb0, 0xd7, 0xa4, 0xc0, 0xaa, 0x93, 0x60, 0x25, 0x47, 0x58, 0xf9, 0xa1, 0x14, 0x2f, 0xbd, 0x23, + 0xed, 0xa4, 0x6d, 0xd0, 0xd8, 0x80, 0xfe, 0x1f, 0x0e, 0x00, 0xb1, 0xfe, 0xea, 0xf4, 0xee, 0x3f, + 0x00, 0x4d, 0xf3, 0x0d, 0xce, 0x48, 0x5e, 0xed, 0xff, 0xd8, 0x00, 0x49, 0xee, 0x7e, 0x09, 0xee, + 0x56, 0x49, 0x21, 0xa1, 0xc4, 0xd5, 0xa8, 0xff, 0xff, 0x53, 0x6b, 0x19, 0xe6, 0xf7, 0x8a, 0xa8, + 0xb4, 0xac, 0x38, 0x43, 0x58, 0x08, 0x9c, 0x1b, 0xc1, 0x66, 0xaa, 0xed, 0x1d, 0xaa, 0x25, 0x3f, + 0x05, 0xef, 0xed, 0x69, 0x95, 0xfd, 0x86, 0x76, 0xd6, 0xdd, 0xe1, 0x66, 0x00, 0xfe, 0x53, 0xd0, + 0x36, 0xaa, 0x63, 0xb5, 0x7d, 0xcc, 0x5d, 0x0f, 0x1c, 0x21, 0x73, 0xd4, 0xb2, 0x1b, 0xa9, 0x0d, + 0xfd, 0xef, 0x40, 0x27, 0x66, 0x54, 0x60, 0x2a, 0x4a, 0x61, 0xe4, 0x3c, 0x07, 0x5d, 0x64, 0x91, + 0xca, 0xca, 0xbb, 0x6e, 0x4d, 0x07, 0x5d, 0x2b, 0xf7, 0x5f, 0x82, 0xee, 0x1b, 0xcc, 0xc9, 0x5b, + 0x62, 0xd5, 0x08, 0xf7, 0x73, 0x70, 0x64, 0xf4, 0x0a, 0xcf, 0x19, 0xd4, 0x4f, 0x5a, 0xa3, 0x9e, + 0x7e, 0x17, 0xcc, 0xe6, 0xcd, 0x9d, 0x5e, 0x0f, 0x03, 0xc3, 0x4e, 0x2d, 0xd5, 0xff, 0x14, 0xdc, + 0x8b, 0x19, 0xa5, 0x58, 0xdf, 0xc8, 0xdb, 0x8d, 0x7c, 0x01, 0xee, 0x59, 0xcf, 0xb6, 0x48, 0xb8, + 0x03, 0xd0, 0x42, 0xfb, 0x50, 0xff, 0x7b, 0x33, 0xbd, 0x0a, 0x9d, 0xfe, 0x5a, 0xfb, 0x73, 0xdb, + 0x77, 0x2e, 0xb6, 0x7d, 0xe7, 0x9f, 0x6d, 0xdf, 0xf9, 0xe5, 0xb2, 0x7f, 0x70, 0x71, 0xd9, 0x3f, + 0xf8, 0xfb, 0xb2, 0x7f, 0x00, 0xfa, 0x88, 0x15, 0xc1, 0xcd, 0xcf, 0xd9, 0xe9, 0x71, 0x92, 0xa1, + 0x89, 0x1a, 0xc5, 0xc4, 0xf9, 0x31, 0x9d, 0x13, 0xb9, 0x28, 0xb3, 0x00, 0xb1, 0x22, 0x44, 0x4c, + 0x14, 0x4c, 0x84, 0x1c, 0x2f, 0xe1, 0x06, 0xf3, 0x70, 0x3d, 0xda, 0x1d, 0xf5, 0xdd, 0x11, 0xe1, + 0xcd, 0x0f, 0xe9, 0x57, 0x24, 0x43, 0xf6, 0xfc, 0x5b, 0xad, 0x3e, 0x89, 0x93, 0xdf, 0x6b, 0xbd, + 0x89, 0x95, 0x10, 0x2b, 0x09, 0x49, 0x86, 0x82, 0x37, 0x15, 0xe5, 0xaf, 0x7d, 0x72, 0xaa, 0x92, + 0xd3, 0x24, 0x43, 0x53, 0x9b, 0xdc, 0xd6, 0x9e, 0xdc, 0x9c, 0x9c, 0xbe, 0x9c, 0x9c, 0xbe, 0xc2, + 0x12, 0xe6, 0x50, 0xc2, 0x7f, 0x6b, 0x1f, 0x5a, 0x62, 0x14, 0x29, 0x66, 0x14, 0x25, 0x19, 0x8a, + 0x22, 0xcb, 0xcd, 0x0e, 0xf5, 0xc2, 0x9f, 0xfd, 0x17, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x2a, 0x21, + 0xe0, 0x02, 0x06, 0x00, 0x00, } func (m *IbcAction) Marshal() (dAtA []byte, err error) { @@ -757,24 +737,17 @@ func (m *Ics20Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.SourceChannel) i = encodeVarintIbc(dAtA, i, uint64(len(m.SourceChannel))) i-- - dAtA[i] = 0x4a - } - if len(m.SourcePort) > 0 { - i -= len(m.SourcePort) - copy(dAtA[i:], m.SourcePort) - i = encodeVarintIbc(dAtA, i, uint64(len(m.SourcePort))) - i-- - dAtA[i] = 0x42 + dAtA[i] = 0x3a } if m.TimeoutTime != 0 { i = encodeVarintIbc(dAtA, i, uint64(m.TimeoutTime)) i-- - dAtA[i] = 0x38 + dAtA[i] = 0x30 } if m.TimeoutHeight != 0 { i = encodeVarintIbc(dAtA, i, uint64(m.TimeoutHeight)) i-- - dAtA[i] = 0x30 + dAtA[i] = 0x28 } if m.ReturnAddress != nil { { @@ -786,14 +759,14 @@ func (m *Ics20Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintIbc(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x2a + dAtA[i] = 0x22 } if len(m.DestinationChainAddress) > 0 { i -= len(m.DestinationChainAddress) copy(dAtA[i:], m.DestinationChainAddress) i = encodeVarintIbc(dAtA, i, uint64(len(m.DestinationChainAddress))) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x1a } if m.Denom != nil { { @@ -805,7 +778,7 @@ func (m *Ics20Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintIbc(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x1a + dAtA[i] = 0x12 } if m.Amount != nil { { @@ -817,13 +790,6 @@ func (m *Ics20Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintIbc(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 - } - if len(m.DestinationChainId) > 0 { - i -= len(m.DestinationChainId) - copy(dAtA[i:], m.DestinationChainId) - i = encodeVarintIbc(dAtA, i, uint64(len(m.DestinationChainId))) - i-- dAtA[i] = 0xa } return len(dAtA) - i, nil @@ -1098,10 +1064,6 @@ func (m *Ics20Withdrawal) Size() (n int) { } var l int _ = l - l = len(m.DestinationChainId) - if l > 0 { - n += 1 + l + sovIbc(uint64(l)) - } if m.Amount != nil { l = m.Amount.Size() n += 1 + l + sovIbc(uint64(l)) @@ -1124,10 +1086,6 @@ func (m *Ics20Withdrawal) Size() (n int) { if m.TimeoutTime != 0 { n += 1 + sovIbc(uint64(m.TimeoutTime)) } - l = len(m.SourcePort) - if l > 0 { - n += 1 + l + sovIbc(uint64(l)) - } l = len(m.SourceChannel) if l > 0 { n += 1 + l + sovIbc(uint64(l)) @@ -1526,38 +1484,6 @@ func (m *Ics20Withdrawal) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DestinationChainId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIbc - } - 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 ErrInvalidLengthIbc - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthIbc - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DestinationChainId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } @@ -1593,7 +1519,7 @@ func (m *Ics20Withdrawal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 3: + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } @@ -1629,7 +1555,7 @@ func (m *Ics20Withdrawal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 4: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DestinationChainAddress", wireType) } @@ -1661,7 +1587,7 @@ func (m *Ics20Withdrawal) Unmarshal(dAtA []byte) error { } m.DestinationChainAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ReturnAddress", wireType) } @@ -1697,7 +1623,7 @@ func (m *Ics20Withdrawal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 6: + case 5: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field TimeoutHeight", wireType) } @@ -1716,7 +1642,7 @@ func (m *Ics20Withdrawal) Unmarshal(dAtA []byte) error { break } } - case 7: + case 6: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field TimeoutTime", wireType) } @@ -1735,39 +1661,7 @@ func (m *Ics20Withdrawal) Unmarshal(dAtA []byte) error { break } } - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SourcePort", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIbc - } - 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 ErrInvalidLengthIbc - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthIbc - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SourcePort = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 9: + case 7: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field SourceChannel", wireType) } diff --git a/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go b/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go index 2dab3ab79..690e79f23 100644 --- a/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go +++ b/relayer/chains/penumbra/core/stake/v1alpha1/stake.pb.go @@ -650,7 +650,6 @@ func (m *ValidatorStatus) GetBondingState() *BondingState { type BondingState struct { State BondingState_BondingStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.stake.v1alpha1.BondingState_BondingStateEnum" json:"state,omitempty"` // Types that are valid to be assigned to XUnbondingEpoch: - // // *BondingState_UnbondingEpoch XUnbondingEpoch isBondingState_XUnbondingEpoch `protobuf_oneof:"_unbonding_epoch"` } @@ -1185,6 +1184,10 @@ type UndelegateClaimPlan struct { UnbondingAmount *v1alpha1.Amount `protobuf:"bytes,5,opt,name=unbonding_amount,json=unbondingAmount,proto3" json:"unbonding_amount,omitempty"` // The blinding factor to use for the balance commitment. BalanceBlinding []byte `protobuf:"bytes,6,opt,name=balance_blinding,json=balanceBlinding,proto3" json:"balance_blinding,omitempty"` + // The first blinding factor to use for the ZK undelegate claim proof. + ProofBlindingR []byte `protobuf:"bytes,7,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` + // The second blinding factor to use for the ZK undelegate claim proof. + ProofBlindingS []byte `protobuf:"bytes,8,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` } func (m *UndelegateClaimPlan) Reset() { *m = UndelegateClaimPlan{} } @@ -1255,6 +1258,20 @@ func (m *UndelegateClaimPlan) GetBalanceBlinding() []byte { return nil } +func (m *UndelegateClaimPlan) GetProofBlindingR() []byte { + if m != nil { + return m.ProofBlindingR + } + return nil +} + +func (m *UndelegateClaimPlan) GetProofBlindingS() []byte { + if m != nil { + return m.ProofBlindingS + } + return nil +} + // A list of pending delegations and undelegations. type DelegationChanges struct { Delegations []*Delegate `protobuf:"bytes,1,rep,name=delegations,proto3" json:"delegations,omitempty"` @@ -1491,105 +1508,106 @@ func init() { } var fileDescriptor_022d012c8e7b3ca5 = []byte{ - // 1554 bytes of a gzipped FileDescriptorProto + // 1578 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x6f, 0x23, 0x49, 0x15, 0x4f, 0x3b, 0x76, 0x12, 0x3f, 0x7f, 0xa6, 0x66, 0x01, 0xcf, 0x30, 0x93, 0x78, 0x7b, 0x81, 0x35, 0x33, 0x83, 0xc3, 0x04, 0xc1, 0x21, 0x7b, 0x58, 0xdc, 0xb6, 0x77, 0xe2, 0xdd, 0xc4, 0xf1, 0xb6, 0x9d, 0x48, 0xa0, 0x48, 0xad, 0xb2, 0xbb, 0x62, 0x37, 0x63, 0x57, 0x99, 0xae, 0x72, 0xb2, - 0xfe, 0x0b, 0xe0, 0xc8, 0x71, 0xcf, 0x1c, 0x38, 0xac, 0xc4, 0x81, 0x13, 0x27, 0x38, 0x23, 0x4e, - 0xcb, 0x0d, 0x71, 0x42, 0x19, 0x09, 0x24, 0xfe, 0x0a, 0x54, 0xd5, 0x5d, 0xed, 0x8f, 0x7c, 0x4d, - 0x56, 0x23, 0xb4, 0xdc, 0xfa, 0x7d, 0xfd, 0xea, 0xbd, 0xdf, 0xab, 0x57, 0x5d, 0xdd, 0x50, 0x1a, - 0x13, 0x3a, 0x19, 0x75, 0x7d, 0xbc, 0xd3, 0x63, 0x3e, 0xd9, 0xe1, 0x02, 0xbf, 0x22, 0x3b, 0xe7, - 0x2f, 0xf0, 0x70, 0x3c, 0xc0, 0x2f, 0x02, 0xb1, 0x3c, 0xf6, 0x99, 0x60, 0xe8, 0xb1, 0xf6, 0x2c, - 0x4b, 0xcf, 0x72, 0x60, 0xd2, 0x9e, 0x8f, 0x9e, 0x2e, 0xe2, 0xf4, 0xfc, 0xe9, 0x58, 0xb0, 0x19, - 0x50, 0x20, 0x07, 0x48, 0xe6, 0x9f, 0x56, 0x21, 0x79, 0x82, 0x87, 0x9e, 0x8b, 0x05, 0xf3, 0xd1, - 0x21, 0xa4, 0x3d, 0x97, 0x50, 0xe1, 0x89, 0xa9, 0xf3, 0x8a, 0x4c, 0x0b, 0x46, 0xd1, 0x28, 0xa5, - 0x76, 0x9f, 0x96, 0x17, 0x97, 0x0b, 0x01, 0x34, 0x60, 0xb9, 0x11, 0x86, 0x7c, 0x42, 0xa6, 0x76, - 0xca, 0x9b, 0x09, 0xe8, 0x3d, 0xc8, 0xf4, 0x18, 0xe5, 0x84, 0xf2, 0x09, 0x57, 0x78, 0xb1, 0xa2, - 0x51, 0x4a, 0xdb, 0xe9, 0x48, 0x29, 0x9d, 0x10, 0xc4, 0x29, 0x1e, 0x91, 0xc2, 0x6a, 0xd1, 0x28, - 0x25, 0x6d, 0xf5, 0x8c, 0x0a, 0xb0, 0x7e, 0x41, 0xba, 0xdc, 0x13, 0xa4, 0x10, 0x57, 0x6a, 0x2d, - 0xa2, 0x22, 0xa4, 0x5c, 0xc2, 0x7b, 0xbe, 0x37, 0x16, 0x1e, 0xa3, 0x85, 0x84, 0xb2, 0xce, 0xab, - 0x64, 0x2c, 0xa1, 0xb8, 0x3b, 0x24, 0x6e, 0x61, 0xa3, 0x68, 0x94, 0x36, 0x6c, 0x2d, 0xa2, 0x0e, - 0xe4, 0xce, 0x26, 0xd4, 0xf5, 0x68, 0xdf, 0xe1, 0xc2, 0x27, 0x78, 0xc4, 0x0b, 0x6b, 0xc5, 0xd5, - 0x52, 0x6a, 0xf7, 0x59, 0xf9, 0x36, 0x3e, 0xcb, 0x1f, 0x05, 0x41, 0x6d, 0x15, 0x63, 0x67, 0xcf, - 0xe6, 0x45, 0x8e, 0xde, 0x87, 0x1c, 0x27, 0xbf, 0x9c, 0x10, 0xda, 0x23, 0x8e, 0x04, 0x21, 0x7e, - 0x61, 0xbd, 0x68, 0x94, 0x32, 0x76, 0x56, 0xab, 0x9b, 0x4a, 0x8b, 0xda, 0x90, 0xed, 0xb3, 0x73, - 0xe2, 0x53, 0x2c, 0x5d, 0x25, 0x1d, 0x49, 0x45, 0xef, 0xf3, 0x3b, 0xe8, 0x7d, 0x19, 0x05, 0x49, - 0x82, 0x33, 0xfd, 0x79, 0xd1, 0xec, 0x42, 0x26, 0x6a, 0xdf, 0x81, 0xc7, 0x05, 0xfa, 0x14, 0xb2, - 0xe7, 0x5a, 0x21, 0x17, 0xe1, 0x05, 0x43, 0xd5, 0x78, 0x9f, 0x26, 0x66, 0x22, 0x84, 0x4f, 0xc8, - 0x94, 0x9b, 0xbf, 0x8b, 0x41, 0x66, 0x81, 0x03, 0x74, 0x02, 0x20, 0x98, 0x83, 0x5d, 0xd7, 0x27, - 0x9c, 0x87, 0xbb, 0xe4, 0xc7, 0xf7, 0x20, 0xb1, 0xdc, 0x61, 0x95, 0x20, 0x78, 0x7f, 0xc5, 0x4e, - 0x0a, 0x2d, 0xa0, 0x8f, 0x61, 0x4d, 0x30, 0xc7, 0xc5, 0x4c, 0xed, 0x94, 0xd4, 0xee, 0x8b, 0xfb, - 0x61, 0xd6, 0x30, 0xdb, 0x5f, 0xb1, 0x13, 0x42, 0x3e, 0x3c, 0xfa, 0x29, 0x24, 0xa3, 0x55, 0xe4, - 0xa6, 0x98, 0xcf, 0x36, 0x69, 0x6b, 0x11, 0x3d, 0x84, 0x0d, 0x1f, 0x0b, 0xe2, 0x74, 0xc7, 0x5c, - 0x2d, 0x9a, 0xb1, 0xd7, 0xa5, 0x6c, 0x8d, 0xf9, 0x23, 0x13, 0x12, 0x0a, 0xf3, 0x16, 0x1f, 0x2b, - 0x05, 0x49, 0x9f, 0xf4, 0xbc, 0xb1, 0x47, 0xa8, 0x30, 0xff, 0x65, 0xc0, 0x86, 0x8d, 0x05, 0xa9, - 0x61, 0x81, 0xdf, 0xf6, 0x2c, 0x6d, 0x43, 0x8a, 0x8c, 0x59, 0x6f, 0xe0, 0x78, 0xd4, 0x25, 0x9f, - 0xa9, 0x34, 0xe2, 0x36, 0x28, 0x55, 0x43, 0x6a, 0xd0, 0x2e, 0x7c, 0x63, 0xd6, 0x78, 0x9f, 0x5c, - 0x60, 0xdf, 0x75, 0x64, 0x96, 0x6a, 0x82, 0xe2, 0xf6, 0x83, 0xc8, 0x68, 0x2b, 0x9b, 0xcc, 0x13, - 0xfd, 0x04, 0xbe, 0x35, 0x8b, 0x21, 0x9f, 0xf5, 0x06, 0x98, 0xf6, 0x49, 0x10, 0x95, 0x50, 0x51, - 0x33, 0xc8, 0x7a, 0x68, 0x95, 0x71, 0xe6, 0xaf, 0x0c, 0x48, 0x5b, 0x98, 0x93, 0xa8, 0xd8, 0xa5, - 0xec, 0x8c, 0x2b, 0xd9, 0x95, 0x20, 0xdf, 0xc5, 0x9c, 0x2c, 0x24, 0x16, 0xd4, 0x90, 0x95, 0xfa, - 0xb9, 0x9c, 0x9e, 0x03, 0x52, 0x9e, 0x8b, 0xe9, 0xac, 0x2a, 0x5f, 0x85, 0xb1, 0x90, 0xc9, 0xe7, - 0x31, 0xc8, 0x45, 0x03, 0xd0, 0x16, 0x58, 0x4c, 0xf8, 0xdb, 0x66, 0xde, 0x82, 0x04, 0x17, 0x3a, - 0xdf, 0xab, 0xe3, 0xba, 0xb4, 0x27, 0x17, 0x92, 0x21, 0x76, 0x10, 0x8a, 0xde, 0x85, 0xf4, 0x39, - 0x13, 0xf2, 0xe4, 0x19, 0xb3, 0x0b, 0xe2, 0x87, 0xe5, 0xa4, 0x02, 0x5d, 0x4b, 0xaa, 0xd0, 0x11, - 0x64, 0xba, 0x4c, 0x9f, 0x4e, 0xba, 0x6f, 0x57, 0xd3, 0x5e, 0x5a, 0xce, 0x62, 0xe1, 0x08, 0xc8, - 0xc5, 0xd2, 0xdd, 0x39, 0xc9, 0xfc, 0x73, 0x0c, 0xd2, 0xf3, 0x66, 0xf4, 0xa9, 0x2e, 0x44, 0x12, - 0x92, 0xdd, 0xfd, 0xe0, 0xcd, 0x91, 0x17, 0x84, 0x3a, 0x9d, 0x8c, 0x74, 0x5d, 0xcf, 0x21, 0x37, - 0xa1, 0x3a, 0x6d, 0xd5, 0xee, 0xa0, 0xab, 0xfb, 0x2b, 0x76, 0x36, 0x32, 0xd4, 0xa5, 0xfe, 0xd7, - 0x86, 0x61, 0x7e, 0x6e, 0x40, 0x7e, 0x19, 0x09, 0x99, 0xb0, 0x65, 0x1d, 0x35, 0x6b, 0x8d, 0xe6, - 0x4b, 0xa7, 0xdd, 0xa9, 0x74, 0xea, 0x4e, 0xbd, 0x79, 0x7c, 0xe8, 0x1c, 0x37, 0xdb, 0xad, 0x7a, - 0xb5, 0xf1, 0x51, 0xa3, 0x5e, 0xcb, 0xaf, 0xa0, 0x27, 0xf0, 0xf0, 0x1a, 0x1f, 0xa9, 0xaa, 0xd7, - 0xf2, 0x06, 0x2a, 0xc2, 0xe3, 0x6b, 0x21, 0x42, 0x65, 0x3e, 0x86, 0xb6, 0xe1, 0xdb, 0x37, 0x7a, - 0xd4, 0x6b, 0xf9, 0x55, 0x0b, 0x41, 0xde, 0x59, 0xaa, 0xc4, 0xfc, 0x5b, 0x0c, 0xb2, 0x8b, 0xed, - 0x44, 0xc7, 0x8b, 0x14, 0x7e, 0x78, 0x9f, 0xbd, 0xb0, 0x24, 0xce, 0xd1, 0x68, 0xfe, 0xdb, 0x00, - 0x74, 0xd5, 0x8a, 0xbe, 0x03, 0xc5, 0x93, 0xca, 0x41, 0xa3, 0x56, 0xe9, 0x1c, 0xd9, 0x37, 0x93, - 0xf3, 0x2e, 0x3c, 0xb9, 0xd6, 0xab, 0xd1, 0xac, 0x54, 0x3b, 0x8d, 0x93, 0x7a, 0xde, 0x90, 0xe5, - 0x5f, 0xeb, 0x12, 0x3a, 0xc4, 0x6e, 0x74, 0xf8, 0xb8, 0xd2, 0x38, 0x90, 0xfc, 0xa0, 0xf7, 0x60, - 0xfb, 0x5a, 0x87, 0xce, 0xd1, 0xa1, 0xd5, 0xee, 0x1c, 0x35, 0xeb, 0xb5, 0x7c, 0xfc, 0xc6, 0x4c, - 0x6a, 0x8d, 0x76, 0xc5, 0x92, 0x38, 0x09, 0xf3, 0xd2, 0x98, 0x7b, 0x61, 0x35, 0xe8, 0x19, 0x43, - 0x75, 0x48, 0x46, 0x87, 0x4c, 0x38, 0xaa, 0xef, 0xbf, 0x21, 0xad, 0xf6, 0x2c, 0x12, 0xd5, 0x61, - 0x8d, 0xab, 0xf1, 0x0f, 0xc7, 0xf4, 0x07, 0xf7, 0x68, 0xcd, 0x84, 0xdb, 0x61, 0x30, 0xaa, 0x42, - 0x52, 0x1d, 0xf5, 0x2e, 0x16, 0x58, 0x4d, 0x69, 0x6a, 0xf7, 0x7b, 0xb7, 0x23, 0xe9, 0x33, 0xd0, - 0x56, 0xef, 0x08, 0xf9, 0x64, 0x5e, 0xc0, 0x83, 0x08, 0xbf, 0x46, 0xce, 0x3c, 0xea, 0xa9, 0x9b, - 0xc9, 0x5b, 0xaa, 0xf4, 0x21, 0x6c, 0xe0, 0x89, 0x18, 0x38, 0xdc, 0xeb, 0x87, 0x17, 0xaa, 0x75, - 0x29, 0xb7, 0xbd, 0xbe, 0xf9, 0x45, 0x0c, 0x36, 0x6a, 0x64, 0x48, 0xfa, 0x72, 0xaf, 0xfe, 0x0c, - 0xd0, 0xec, 0x70, 0xd7, 0x07, 0xda, 0x57, 0x38, 0x0c, 0x37, 0x23, 0x14, 0xad, 0xbd, 0xfb, 0x65, - 0xd4, 0xd4, 0xe7, 0x02, 0x71, 0x1d, 0x3c, 0x62, 0x13, 0x2a, 0x42, 0x32, 0xbf, 0x7b, 0xc7, 0xc2, - 0x15, 0xe5, 0xac, 0x0f, 0x0f, 0xe2, 0x06, 0x32, 0xb2, 0x61, 0xd3, 0x0d, 0xea, 0xf2, 0x18, 0xd5, - 0x88, 0xf1, 0xfb, 0x20, 0xe6, 0x67, 0xf1, 0x81, 0xc6, 0xfc, 0x63, 0x0c, 0xe0, 0x98, 0xba, 0xff, - 0x03, 0xba, 0x9e, 0xc2, 0x26, 0x17, 0xd8, 0x17, 0xce, 0x55, 0xd2, 0x72, 0xca, 0x50, 0xff, 0xff, - 0x62, 0x8e, 0x42, 0x6e, 0x46, 0x5c, 0x75, 0x88, 0xbd, 0x11, 0xaa, 0x43, 0xbc, 0xcb, 0x5c, 0xcd, - 0xd7, 0x1d, 0xf7, 0xb6, 0xa5, 0x60, 0x8b, 0xb9, 0x53, 0x5b, 0x85, 0xa3, 0x77, 0x20, 0x31, 0xf6, - 0x19, 0x3b, 0x0b, 0x37, 0x76, 0x20, 0xc8, 0x37, 0xd9, 0x83, 0x6b, 0x62, 0xbe, 0x2e, 0x2d, 0xfb, - 0x10, 0xd6, 0xc7, 0x84, 0xe2, 0xa1, 0x98, 0xde, 0xd0, 0xaa, 0xa5, 0xf2, 0x5b, 0x81, 0xb3, 0xad, - 0xa3, 0x90, 0x23, 0xaf, 0x3c, 0x43, 0xf5, 0x59, 0xd0, 0x63, 0xa3, 0x91, 0x27, 0x46, 0x24, 0x6a, - 0xd2, 0x0f, 0xef, 0xa8, 0xc3, 0x0a, 0x02, 0xab, 0x51, 0x9c, 0xbd, 0xd9, 0x5d, 0x56, 0x99, 0xff, - 0xb8, 0x4a, 0x60, 0x6b, 0x88, 0xe9, 0xd7, 0x90, 0xc0, 0xf8, 0x57, 0x22, 0xb0, 0x05, 0xf9, 0xd9, - 0xcb, 0x3b, 0xdc, 0xe3, 0x89, 0xfb, 0xec, 0xf1, 0xd9, 0x2d, 0x26, 0x1c, 0x9b, 0xef, 0xcb, 0xfb, - 0x6a, 0xd0, 0x92, 0xee, 0xd0, 0x53, 0x96, 0xc2, 0x9a, 0xda, 0x93, 0xb9, 0x50, 0x6f, 0x85, 0x6a, - 0xf3, 0xf7, 0x06, 0x6c, 0xd6, 0xa2, 0x11, 0xa9, 0xaa, 0xbb, 0x29, 0x47, 0xfb, 0xf2, 0x43, 0x55, - 0x2b, 0xf5, 0x47, 0xd8, 0x1d, 0xaf, 0x12, 0x7d, 0x74, 0xdb, 0xf3, 0xa1, 0xa8, 0x09, 0x99, 0x09, - 0x9d, 0xc7, 0x8a, 0x29, 0xac, 0xd2, 0x9b, 0xce, 0x98, 0xbd, 0x18, 0x6e, 0x0e, 0x61, 0xed, 0x78, - 0x2c, 0xbc, 0x11, 0x41, 0xcf, 0x00, 0x61, 0xee, 0xb0, 0x33, 0xa7, 0x3b, 0x64, 0xbd, 0x57, 0xce, - 0x80, 0x78, 0xfd, 0x81, 0x08, 0x2f, 0xef, 0x39, 0xcc, 0x8f, 0xce, 0x2c, 0xa9, 0xdf, 0x57, 0x6a, - 0xf4, 0x04, 0xe0, 0xc2, 0xa3, 0x2e, 0xbb, 0x70, 0x86, 0x84, 0x86, 0x9f, 0x41, 0xc9, 0x40, 0x73, - 0x40, 0x28, 0xfa, 0x26, 0xac, 0x75, 0x3d, 0x71, 0x4e, 0x7a, 0x6a, 0x06, 0xd2, 0x76, 0x28, 0x99, - 0xbf, 0x80, 0x77, 0xaa, 0x13, 0xdf, 0x27, 0x54, 0x54, 0xe7, 0xbe, 0xfa, 0x39, 0xb2, 0x21, 0xbb, - 0xf0, 0x6f, 0x40, 0x53, 0xf4, 0xec, 0x8e, 0x86, 0xcd, 0xa3, 0xd8, 0x99, 0xf9, 0x3f, 0x09, 0xdc, - 0xdc, 0x86, 0xf5, 0x70, 0x6b, 0xc8, 0x83, 0xc4, 0xa3, 0x94, 0xf8, 0x61, 0x35, 0x81, 0x60, 0xfd, - 0x21, 0xf6, 0x97, 0xcb, 0x2d, 0xe3, 0xcb, 0xcb, 0x2d, 0xe3, 0x9f, 0x97, 0x5b, 0xc6, 0x6f, 0x5e, - 0x6f, 0xad, 0x7c, 0xf9, 0x7a, 0x6b, 0xe5, 0xef, 0xaf, 0xb7, 0x56, 0xa0, 0xd8, 0x63, 0xa3, 0x5b, - 0x19, 0xb5, 0xa0, 0x2d, 0xe5, 0x96, 0xcf, 0x04, 0x6b, 0x19, 0x3f, 0x3f, 0xe9, 0x7b, 0x62, 0x30, - 0xe9, 0x96, 0x7b, 0x6c, 0xb4, 0xd3, 0x63, 0x7c, 0xc4, 0xf8, 0x8e, 0x4f, 0x86, 0x78, 0x4a, 0xfc, - 0x9d, 0xf3, 0xdd, 0xe8, 0xb1, 0x37, 0xc0, 0x1e, 0xe5, 0x3b, 0xb7, 0xfd, 0xd8, 0xf9, 0x40, 0x89, - 0x5a, 0xfa, 0x6d, 0x6c, 0xb5, 0x55, 0x6d, 0x7f, 0x11, 0x7b, 0xdc, 0xd2, 0xa9, 0x54, 0x65, 0x2a, - 0x6a, 0xe9, 0xf2, 0x49, 0xe8, 0xf4, 0xd7, 0x99, 0xf9, 0x54, 0x9a, 0x4f, 0x95, 0xf9, 0x54, 0x9b, - 0x2f, 0x63, 0xa5, 0xdb, 0xcc, 0xa7, 0x2f, 0x5b, 0xd6, 0x21, 0x11, 0x58, 0x5e, 0x71, 0xfe, 0x13, - 0xdb, 0xd6, 0xae, 0x7b, 0x7b, 0xd2, 0x77, 0x6f, 0x4f, 0x39, 0xef, 0xed, 0x69, 0xef, 0xee, 0x9a, - 0xfa, 0x51, 0xf4, 0xa3, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xba, 0x77, 0x8b, 0xfc, 0x9e, 0x12, - 0x00, 0x00, + 0xfe, 0x0b, 0xe0, 0xc8, 0x71, 0xcf, 0x1c, 0x38, 0xac, 0x04, 0x12, 0x27, 0x4e, 0x70, 0x46, 0x9c, + 0x96, 0x1b, 0x47, 0x94, 0x91, 0x40, 0xe2, 0xaf, 0x40, 0x55, 0xdd, 0xd5, 0xfe, 0xc8, 0xd7, 0x64, + 0x35, 0x42, 0xcb, 0xad, 0xdf, 0x7b, 0xbf, 0xf7, 0xea, 0xbd, 0x5f, 0xd5, 0xab, 0x8f, 0x86, 0xd2, + 0x98, 0xd0, 0xc9, 0xa8, 0xeb, 0xe3, 0x9d, 0x1e, 0xf3, 0xc9, 0x0e, 0x17, 0xf8, 0x15, 0xd9, 0x39, + 0x7f, 0x81, 0x87, 0xe3, 0x01, 0x7e, 0x11, 0x88, 0xe5, 0xb1, 0xcf, 0x04, 0x43, 0x8f, 0x35, 0xb2, + 0x2c, 0x91, 0xe5, 0xc0, 0xa4, 0x91, 0x8f, 0x9e, 0x2e, 0xc6, 0xe9, 0xf9, 0xd3, 0xb1, 0x60, 0xb3, + 0x40, 0x81, 0x1c, 0x44, 0x32, 0xff, 0xbc, 0x0a, 0xc9, 0x13, 0x3c, 0xf4, 0x5c, 0x2c, 0x98, 0x8f, + 0x0e, 0x21, 0xed, 0xb9, 0x84, 0x0a, 0x4f, 0x4c, 0x9d, 0x57, 0x64, 0x5a, 0x30, 0x8a, 0x46, 0x29, + 0xb5, 0xfb, 0xb4, 0xbc, 0x38, 0x5c, 0x18, 0x40, 0x07, 0x2c, 0x37, 0x42, 0x97, 0x4f, 0xc8, 0xd4, + 0x4e, 0x79, 0x33, 0x01, 0xbd, 0x07, 0x99, 0x1e, 0xa3, 0x9c, 0x50, 0x3e, 0xe1, 0x2a, 0x5e, 0xac, + 0x68, 0x94, 0xd2, 0x76, 0x3a, 0x52, 0x4a, 0x10, 0x82, 0x38, 0xc5, 0x23, 0x52, 0x58, 0x2d, 0x1a, + 0xa5, 0xa4, 0xad, 0xbe, 0x51, 0x01, 0xd6, 0x2f, 0x48, 0x97, 0x7b, 0x82, 0x14, 0xe2, 0x4a, 0xad, + 0x45, 0x54, 0x84, 0x94, 0x4b, 0x78, 0xcf, 0xf7, 0xc6, 0xc2, 0x63, 0xb4, 0x90, 0x50, 0xd6, 0x79, + 0x95, 0xf4, 0x25, 0x14, 0x77, 0x87, 0xc4, 0x2d, 0x6c, 0x14, 0x8d, 0xd2, 0x86, 0xad, 0x45, 0xd4, + 0x81, 0xdc, 0xd9, 0x84, 0xba, 0x1e, 0xed, 0x3b, 0x5c, 0xf8, 0x04, 0x8f, 0x78, 0x61, 0xad, 0xb8, + 0x5a, 0x4a, 0xed, 0x3e, 0x2b, 0xdf, 0xc6, 0x67, 0xf9, 0xa3, 0xc0, 0xa9, 0xad, 0x7c, 0xec, 0xec, + 0xd9, 0xbc, 0xc8, 0xd1, 0xfb, 0x90, 0xe3, 0xe4, 0x97, 0x13, 0x42, 0x7b, 0xc4, 0x91, 0x41, 0x88, + 0x5f, 0x58, 0x2f, 0x1a, 0xa5, 0x8c, 0x9d, 0xd5, 0xea, 0xa6, 0xd2, 0xa2, 0x36, 0x64, 0xfb, 0xec, + 0x9c, 0xf8, 0x14, 0x4b, 0xa8, 0xa4, 0x23, 0xa9, 0xe8, 0x7d, 0x7e, 0x07, 0xbd, 0x2f, 0x23, 0x27, + 0x49, 0x70, 0xa6, 0x3f, 0x2f, 0x9a, 0x5d, 0xc8, 0x44, 0xd3, 0x77, 0xe0, 0x71, 0x81, 0x3e, 0x85, + 0xec, 0xb9, 0x56, 0xc8, 0x41, 0x78, 0xc1, 0x50, 0x35, 0xde, 0x67, 0x12, 0x33, 0x51, 0x84, 0x4f, + 0xc8, 0x94, 0x9b, 0xbf, 0x8b, 0x41, 0x66, 0x81, 0x03, 0x74, 0x02, 0x20, 0x98, 0x83, 0x5d, 0xd7, + 0x27, 0x9c, 0x87, 0xab, 0xe4, 0xc7, 0xf7, 0x20, 0xb1, 0xdc, 0x61, 0x95, 0xc0, 0x79, 0x7f, 0xc5, + 0x4e, 0x0a, 0x2d, 0xa0, 0x8f, 0x61, 0x4d, 0x30, 0xc7, 0xc5, 0x4c, 0xad, 0x94, 0xd4, 0xee, 0x8b, + 0xfb, 0xc5, 0xac, 0x61, 0xb6, 0xbf, 0x62, 0x27, 0x84, 0xfc, 0x78, 0xf4, 0x53, 0x48, 0x46, 0xa3, + 0xc8, 0x45, 0x31, 0x9f, 0x6d, 0xd2, 0xd6, 0x22, 0x7a, 0x08, 0x1b, 0x3e, 0x16, 0xc4, 0xe9, 0x8e, + 0xb9, 0x1a, 0x34, 0x63, 0xaf, 0x4b, 0xd9, 0x1a, 0xf3, 0x47, 0x26, 0x24, 0x54, 0xcc, 0x5b, 0x30, + 0x56, 0x0a, 0x92, 0x3e, 0xe9, 0x79, 0x63, 0x8f, 0x50, 0x61, 0xfe, 0xcb, 0x80, 0x0d, 0x1b, 0x0b, + 0x52, 0xc3, 0x02, 0xbf, 0xed, 0x5e, 0xda, 0x86, 0x14, 0x19, 0xb3, 0xde, 0xc0, 0xf1, 0xa8, 0x4b, + 0x3e, 0x53, 0x69, 0xc4, 0x6d, 0x50, 0xaa, 0x86, 0xd4, 0xa0, 0x5d, 0xf8, 0xc6, 0x6c, 0xe2, 0x7d, + 0x72, 0x81, 0x7d, 0xd7, 0x91, 0x59, 0xaa, 0x0e, 0x8a, 0xdb, 0x0f, 0x22, 0xa3, 0xad, 0x6c, 0x32, + 0x4f, 0xf4, 0x13, 0xf8, 0xd6, 0xcc, 0x87, 0x7c, 0xd6, 0x1b, 0x60, 0xda, 0x27, 0x81, 0x57, 0x42, + 0x79, 0xcd, 0x42, 0xd6, 0x43, 0xab, 0xf4, 0x33, 0x7f, 0x65, 0x40, 0xda, 0xc2, 0x9c, 0x44, 0xc5, + 0x2e, 0x65, 0x67, 0x5c, 0xc9, 0xae, 0x04, 0xf9, 0x2e, 0xe6, 0x64, 0x21, 0xb1, 0xa0, 0x86, 0xac, + 0xd4, 0xcf, 0xe5, 0xf4, 0x1c, 0x90, 0x42, 0x2e, 0xa6, 0xb3, 0xaa, 0xb0, 0x2a, 0xc6, 0x42, 0x26, + 0x9f, 0xc7, 0x20, 0x17, 0x35, 0x40, 0x5b, 0x60, 0x31, 0xe1, 0x6f, 0x9b, 0x79, 0x0b, 0x12, 0x5c, + 0xe8, 0x7c, 0xaf, 0xb6, 0xeb, 0xd2, 0x9a, 0x5c, 0x48, 0x86, 0xd8, 0x81, 0x2b, 0x7a, 0x17, 0xd2, + 0xe7, 0x4c, 0xc8, 0x9d, 0x67, 0xcc, 0x2e, 0x88, 0x1f, 0x96, 0x93, 0x0a, 0x74, 0x2d, 0xa9, 0x42, + 0x47, 0x90, 0xe9, 0x32, 0xbd, 0x3b, 0xe9, 0x79, 0xbb, 0x9a, 0xf6, 0xd2, 0x70, 0x16, 0x0b, 0x5b, + 0x40, 0x0e, 0x96, 0xee, 0xce, 0x49, 0xe6, 0x5f, 0x62, 0x90, 0x9e, 0x37, 0xa3, 0x4f, 0x75, 0x21, + 0x92, 0x90, 0xec, 0xee, 0x07, 0x6f, 0x1e, 0x79, 0x41, 0xa8, 0xd3, 0xc9, 0x48, 0xd7, 0xf5, 0x1c, + 0x72, 0x13, 0xaa, 0xd3, 0x56, 0xd3, 0x1d, 0xcc, 0xea, 0xfe, 0x8a, 0x9d, 0x8d, 0x0c, 0x75, 0xa9, + 0xff, 0xb5, 0x61, 0x98, 0x9f, 0x1b, 0x90, 0x5f, 0x8e, 0x84, 0x4c, 0xd8, 0xb2, 0x8e, 0x9a, 0xb5, + 0x46, 0xf3, 0xa5, 0xd3, 0xee, 0x54, 0x3a, 0x75, 0xa7, 0xde, 0x3c, 0x3e, 0x74, 0x8e, 0x9b, 0xed, + 0x56, 0xbd, 0xda, 0xf8, 0xa8, 0x51, 0xaf, 0xe5, 0x57, 0xd0, 0x13, 0x78, 0x78, 0x0d, 0x46, 0xaa, + 0xea, 0xb5, 0xbc, 0x81, 0x8a, 0xf0, 0xf8, 0xda, 0x10, 0xa1, 0x32, 0x1f, 0x43, 0xdb, 0xf0, 0xed, + 0x1b, 0x11, 0xf5, 0x5a, 0x7e, 0xd5, 0x42, 0x90, 0x77, 0x96, 0x2a, 0x31, 0xff, 0x1e, 0x83, 0xec, + 0xe2, 0x74, 0xa2, 0xe3, 0x45, 0x0a, 0x3f, 0xbc, 0xcf, 0x5a, 0x58, 0x12, 0xe7, 0x68, 0x34, 0xff, + 0x6d, 0x00, 0xba, 0x6a, 0x45, 0xdf, 0x81, 0xe2, 0x49, 0xe5, 0xa0, 0x51, 0xab, 0x74, 0x8e, 0xec, + 0x9b, 0xc9, 0x79, 0x17, 0x9e, 0x5c, 0x8b, 0x6a, 0x34, 0x2b, 0xd5, 0x4e, 0xe3, 0xa4, 0x9e, 0x37, + 0x64, 0xf9, 0xd7, 0x42, 0x42, 0x40, 0xec, 0x46, 0xc0, 0xc7, 0x95, 0xc6, 0x81, 0xe4, 0x07, 0xbd, + 0x07, 0xdb, 0xd7, 0x02, 0x3a, 0x47, 0x87, 0x56, 0xbb, 0x73, 0xd4, 0xac, 0xd7, 0xf2, 0xf1, 0x1b, + 0x33, 0xa9, 0x35, 0xda, 0x15, 0x4b, 0xc6, 0x49, 0x98, 0x97, 0xc6, 0xdc, 0x81, 0xd5, 0xa0, 0x67, + 0x0c, 0xd5, 0x21, 0x19, 0x6d, 0x32, 0x61, 0xab, 0xbe, 0xff, 0x86, 0xb4, 0xda, 0x33, 0x4f, 0x54, + 0x87, 0x35, 0xae, 0xda, 0x3f, 0x6c, 0xd3, 0x1f, 0xdc, 0x63, 0x6a, 0x26, 0xdc, 0x0e, 0x9d, 0x51, + 0x15, 0x92, 0x6a, 0xab, 0x77, 0xb1, 0xc0, 0xaa, 0x4b, 0x53, 0xbb, 0xdf, 0xbb, 0x3d, 0x92, 0xde, + 0x03, 0x6d, 0x75, 0x46, 0xc8, 0x2f, 0xf3, 0x02, 0x1e, 0x44, 0xf1, 0x6b, 0xe4, 0xcc, 0xa3, 0x9e, + 0xba, 0x99, 0xbc, 0xa5, 0x4a, 0x1f, 0xc2, 0x06, 0x9e, 0x88, 0x81, 0xc3, 0xbd, 0x7e, 0x78, 0xa1, + 0x5a, 0x97, 0x72, 0xdb, 0xeb, 0x9b, 0x5f, 0xc4, 0x60, 0xa3, 0x46, 0x86, 0xa4, 0x2f, 0xd7, 0xea, + 0xcf, 0x00, 0xcd, 0x36, 0x77, 0xbd, 0xa1, 0x7d, 0x85, 0xcd, 0x70, 0x33, 0x8a, 0xa2, 0xb5, 0x77, + 0x1f, 0x46, 0x4d, 0xbd, 0x2f, 0x10, 0xd7, 0xc1, 0x23, 0x36, 0xa1, 0x22, 0x24, 0xf3, 0xbb, 0x77, + 0x0c, 0x5c, 0x51, 0x60, 0xbd, 0x79, 0x10, 0x37, 0x90, 0x91, 0x0d, 0x9b, 0x6e, 0x50, 0x97, 0xc7, + 0xa8, 0x8e, 0x18, 0xbf, 0x4f, 0xc4, 0xfc, 0xcc, 0x3f, 0xd0, 0x98, 0x7f, 0x8a, 0x01, 0x1c, 0x53, + 0xf7, 0x7f, 0x40, 0xd7, 0x53, 0xd8, 0xe4, 0x02, 0xfb, 0xc2, 0xb9, 0x4a, 0x5a, 0x4e, 0x19, 0xea, + 0xff, 0x5f, 0xcc, 0x51, 0xc8, 0xcd, 0x88, 0xab, 0x0e, 0xb1, 0x37, 0x42, 0x75, 0x88, 0x77, 0x99, + 0xab, 0xf9, 0xba, 0xe3, 0xde, 0xb6, 0xe4, 0x6c, 0x31, 0x77, 0x6a, 0x2b, 0x77, 0xf4, 0x0e, 0x24, + 0xc6, 0x3e, 0x63, 0x67, 0xe1, 0xc2, 0x0e, 0x04, 0x79, 0x92, 0x3d, 0xb8, 0xc6, 0xe7, 0xeb, 0x32, + 0x65, 0x1f, 0xc2, 0xfa, 0x98, 0x50, 0x3c, 0x14, 0xd3, 0x1b, 0xa6, 0x6a, 0xa9, 0xfc, 0x56, 0x00, + 0xb6, 0xb5, 0x17, 0x72, 0xe4, 0x95, 0x67, 0xa8, 0x9e, 0x05, 0x3d, 0x36, 0x1a, 0x79, 0x62, 0x44, + 0xa2, 0x49, 0xfa, 0xe1, 0x1d, 0x75, 0x58, 0x81, 0x63, 0x35, 0xf2, 0xb3, 0x37, 0xbb, 0xcb, 0x2a, + 0xf3, 0x0f, 0xab, 0x57, 0x08, 0x6c, 0x0d, 0x31, 0xfd, 0x1a, 0x12, 0x18, 0xff, 0x4a, 0x04, 0xb6, + 0x20, 0x3f, 0x3b, 0xbc, 0xc3, 0x35, 0x9e, 0xb8, 0xcf, 0x1a, 0x9f, 0xdd, 0x62, 0xc2, 0xb6, 0xf9, + 0xbe, 0xbc, 0xaf, 0x06, 0x53, 0xd2, 0x1d, 0x7a, 0xca, 0x52, 0x58, 0x53, 0x6b, 0x32, 0x17, 0xea, + 0xad, 0x50, 0x2d, 0xaf, 0xb6, 0x6a, 0x99, 0x46, 0x40, 0x27, 0x78, 0x01, 0xa6, 0xed, 0xac, 0xd2, + 0x6b, 0xa0, 0x7d, 0x0d, 0x92, 0xab, 0x37, 0xea, 0x32, 0xb2, 0x6d, 0xfe, 0xde, 0x80, 0xcd, 0x5a, + 0xd4, 0x76, 0x55, 0x75, 0xdf, 0xe5, 0x68, 0x5f, 0x3e, 0x7e, 0xb5, 0x52, 0x3f, 0xec, 0xee, 0x38, + 0x9e, 0xf4, 0x71, 0x60, 0xcf, 0xbb, 0xa2, 0x26, 0x64, 0x26, 0x74, 0x3e, 0x56, 0x4c, 0xc5, 0x2a, + 0xbd, 0x69, 0xdf, 0xda, 0x8b, 0xee, 0xe6, 0x10, 0xd6, 0x8e, 0xc7, 0xc2, 0x1b, 0x11, 0xf4, 0x0c, + 0x10, 0xe6, 0x8e, 0xaa, 0x91, 0xf5, 0x5e, 0x39, 0x03, 0xe2, 0xf5, 0x07, 0x22, 0x7c, 0x10, 0xe4, + 0x30, 0x3f, 0x3a, 0xb3, 0xa4, 0x7e, 0x5f, 0xa9, 0xd1, 0x13, 0x80, 0x0b, 0x8f, 0xba, 0xec, 0xc2, + 0x19, 0x12, 0x1a, 0x3e, 0xad, 0x92, 0x81, 0xe6, 0x80, 0x50, 0xf4, 0x4d, 0x58, 0xeb, 0x7a, 0xe2, + 0x9c, 0xf4, 0x54, 0x5f, 0xa5, 0xed, 0x50, 0x32, 0x7f, 0x01, 0xef, 0x54, 0x27, 0xbe, 0x4f, 0xa8, + 0xa8, 0xce, 0xfd, 0x49, 0xe0, 0xc8, 0x86, 0xec, 0xc2, 0xff, 0x06, 0x4d, 0xd1, 0xb3, 0x3b, 0x16, + 0xc1, 0x7c, 0x14, 0x3b, 0x33, 0xff, 0x77, 0x82, 0x9b, 0xdb, 0xb0, 0x1e, 0x2e, 0x37, 0xb9, 0x39, + 0x79, 0x94, 0x12, 0x3f, 0xac, 0x26, 0x10, 0xac, 0x3f, 0xc6, 0xfe, 0x7a, 0xb9, 0x65, 0x7c, 0x79, + 0xb9, 0x65, 0xfc, 0xf3, 0x72, 0xcb, 0xf8, 0xcd, 0xeb, 0xad, 0x95, 0x2f, 0x5f, 0x6f, 0xad, 0xfc, + 0xe3, 0xf5, 0xd6, 0x0a, 0x14, 0x7b, 0x6c, 0x74, 0x2b, 0xa3, 0x16, 0xb4, 0xa5, 0xdc, 0xf2, 0x99, + 0x60, 0x2d, 0xe3, 0xe7, 0x27, 0x7d, 0x4f, 0x0c, 0x26, 0xdd, 0x72, 0x8f, 0x8d, 0x76, 0x7a, 0x8c, + 0x8f, 0x18, 0xdf, 0xf1, 0xc9, 0x10, 0x4f, 0x89, 0xbf, 0x73, 0xbe, 0x1b, 0x7d, 0xf6, 0x06, 0xd8, + 0xa3, 0x7c, 0xe7, 0xb6, 0x9f, 0x45, 0x1f, 0x28, 0x51, 0x4b, 0xbf, 0x8d, 0xad, 0xb6, 0xaa, 0xed, + 0x2f, 0x62, 0x8f, 0x5b, 0x3a, 0x95, 0xaa, 0x4c, 0x45, 0x0d, 0x5d, 0x3e, 0x09, 0x41, 0x7f, 0x9b, + 0x99, 0x4f, 0xa5, 0xf9, 0x54, 0x99, 0x4f, 0xb5, 0xf9, 0x32, 0x56, 0xba, 0xcd, 0x7c, 0xfa, 0xb2, + 0x65, 0x1d, 0x12, 0x81, 0xe5, 0xb5, 0xe9, 0x3f, 0xb1, 0x6d, 0x0d, 0xdd, 0xdb, 0x93, 0xd8, 0xbd, + 0x3d, 0x05, 0xde, 0xdb, 0xd3, 0xe8, 0xee, 0x9a, 0xfa, 0xf9, 0xf4, 0xa3, 0xff, 0x06, 0x00, 0x00, + 0xff, 0xff, 0x34, 0xe3, 0xd1, 0x50, 0xf2, 0x12, 0x00, 0x00, } func (m *Validator) Marshal() (dAtA []byte, err error) { @@ -2454,6 +2472,20 @@ func (m *UndelegateClaimPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ProofBlindingS) > 0 { + i -= len(m.ProofBlindingS) + copy(dAtA[i:], m.ProofBlindingS) + i = encodeVarintStake(dAtA, i, uint64(len(m.ProofBlindingS))) + i-- + dAtA[i] = 0x42 + } + if len(m.ProofBlindingR) > 0 { + i -= len(m.ProofBlindingR) + copy(dAtA[i:], m.ProofBlindingR) + i = encodeVarintStake(dAtA, i, uint64(len(m.ProofBlindingR))) + i-- + dAtA[i] = 0x3a + } if len(m.BalanceBlinding) > 0 { i -= len(m.BalanceBlinding) copy(dAtA[i:], m.BalanceBlinding) @@ -3048,6 +3080,14 @@ func (m *UndelegateClaimPlan) Size() (n int) { if l > 0 { n += 1 + l + sovStake(uint64(l)) } + l = len(m.ProofBlindingR) + if l > 0 { + n += 1 + l + sovStake(uint64(l)) + } + l = len(m.ProofBlindingS) + if l > 0 { + n += 1 + l + sovStake(uint64(l)) + } return n } @@ -5527,6 +5567,74 @@ func (m *UndelegateClaimPlan) Unmarshal(dAtA []byte) error { m.BalanceBlinding = []byte{} } iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingR", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProofBlindingR = append(m.ProofBlindingR[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingR == nil { + m.ProofBlindingR = []byte{} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingS", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStake + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthStake + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthStake + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProofBlindingS = append(m.ProofBlindingS[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingS == nil { + m.ProofBlindingS = []byte{} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipStake(dAtA[iNdEx:]) diff --git a/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go b/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go index e11591783..c22d6f2ae 100644 --- a/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go +++ b/relayer/chains/penumbra/core/transaction/v1alpha1/transaction.pb.go @@ -184,20 +184,14 @@ func (m *EffectHash) GetInner() []byte { type TransactionBody struct { // A list of actions (state changes) performed by this transaction. Actions []*Action `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"` - // The maximum height that this transaction can be included in the chain. - // - // If zero, there is no maximum. - ExpiryHeight uint64 `protobuf:"varint,2,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` - // The chain this transaction is intended for. Including this prevents - // replaying a transaction on one chain onto a different chain. - ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // Parameters determining if a transaction should be accepted by this chain. + TransactionParameters *TransactionParameters `protobuf:"bytes,2,opt,name=transaction_parameters,json=transactionParameters,proto3" json:"transaction_parameters,omitempty"` // The transaction fee. - Fee *v1alpha1.Fee `protobuf:"bytes,4,opt,name=fee,proto3" json:"fee,omitempty"` - // A list of clues for use with Fuzzy Message Detection. - FmdClues []*v1alpha1.Clue `protobuf:"bytes,5,rep,name=fmd_clues,json=fmdClues,proto3" json:"fmd_clues,omitempty"` - // Types that are valid to be assigned to XEncryptedMemo: - // *TransactionBody_EncryptedMemo - XEncryptedMemo isTransactionBody_XEncryptedMemo `protobuf_oneof:"_encrypted_memo"` + Fee *v1alpha1.Fee `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"` + // Detection data for use with Fuzzy Message Detection + DetectionData *DetectionData `protobuf:"bytes,4,opt,name=detection_data,json=detectionData,proto3" json:"detection_data,omitempty"` + // Sub-message containing memo ciphertext if a memo was added to the transaction. + MemoData *MemoData `protobuf:"bytes,5,opt,name=memo_data,json=memoData,proto3" json:"memo_data,omitempty"` } func (m *TransactionBody) Reset() { *m = TransactionBody{} } @@ -233,72 +227,216 @@ func (m *TransactionBody) XXX_DiscardUnknown() { var xxx_messageInfo_TransactionBody proto.InternalMessageInfo -type isTransactionBody_XEncryptedMemo interface { - isTransactionBody_XEncryptedMemo() - MarshalTo([]byte) (int, error) - Size() int -} - -type TransactionBody_EncryptedMemo struct { - EncryptedMemo []byte `protobuf:"bytes,6,opt,name=encrypted_memo,json=encryptedMemo,proto3,oneof" json:"encrypted_memo,omitempty"` -} - -func (*TransactionBody_EncryptedMemo) isTransactionBody_XEncryptedMemo() {} - -func (m *TransactionBody) GetXEncryptedMemo() isTransactionBody_XEncryptedMemo { +func (m *TransactionBody) GetActions() []*Action { if m != nil { - return m.XEncryptedMemo + return m.Actions } return nil } -func (m *TransactionBody) GetActions() []*Action { +func (m *TransactionBody) GetTransactionParameters() *TransactionParameters { if m != nil { - return m.Actions + return m.TransactionParameters } return nil } -func (m *TransactionBody) GetExpiryHeight() uint64 { +func (m *TransactionBody) GetFee() *v1alpha1.Fee { if m != nil { - return m.ExpiryHeight + return m.Fee } - return 0 + return nil } -func (m *TransactionBody) GetChainId() string { +func (m *TransactionBody) GetDetectionData() *DetectionData { if m != nil { - return m.ChainId + return m.DetectionData } - return "" + return nil } -func (m *TransactionBody) GetFee() *v1alpha1.Fee { +func (m *TransactionBody) GetMemoData() *MemoData { if m != nil { - return m.Fee + return m.MemoData } return nil } -func (m *TransactionBody) GetFmdClues() []*v1alpha1.Clue { +// Represents the encrypted memo data. +type MemoData struct { + // Types that are valid to be assigned to XEncryptedMemo: + // *MemoData_EncryptedMemo + XEncryptedMemo isMemoData_XEncryptedMemo `protobuf_oneof:"_encrypted_memo"` +} + +func (m *MemoData) Reset() { *m = MemoData{} } +func (m *MemoData) String() string { return proto.CompactTextString(m) } +func (*MemoData) ProtoMessage() {} +func (*MemoData) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{4} +} +func (m *MemoData) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MemoData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MemoData.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 *MemoData) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemoData.Merge(m, src) +} +func (m *MemoData) XXX_Size() int { + return m.Size() +} +func (m *MemoData) XXX_DiscardUnknown() { + xxx_messageInfo_MemoData.DiscardUnknown(m) +} + +var xxx_messageInfo_MemoData proto.InternalMessageInfo + +type isMemoData_XEncryptedMemo interface { + isMemoData_XEncryptedMemo() + MarshalTo([]byte) (int, error) + Size() int +} + +type MemoData_EncryptedMemo struct { + EncryptedMemo []byte `protobuf:"bytes,1,opt,name=encrypted_memo,json=encryptedMemo,proto3,oneof" json:"encrypted_memo,omitempty"` +} + +func (*MemoData_EncryptedMemo) isMemoData_XEncryptedMemo() {} + +func (m *MemoData) GetXEncryptedMemo() isMemoData_XEncryptedMemo { if m != nil { - return m.FmdClues + return m.XEncryptedMemo } return nil } -func (m *TransactionBody) GetEncryptedMemo() []byte { - if x, ok := m.GetXEncryptedMemo().(*TransactionBody_EncryptedMemo); ok { +func (m *MemoData) GetEncryptedMemo() []byte { + if x, ok := m.GetXEncryptedMemo().(*MemoData_EncryptedMemo); ok { return x.EncryptedMemo } return nil } // XXX_OneofWrappers is for the internal use of the proto package. -func (*TransactionBody) XXX_OneofWrappers() []interface{} { +func (*MemoData) XXX_OneofWrappers() []interface{} { return []interface{}{ - (*TransactionBody_EncryptedMemo)(nil), + (*MemoData_EncryptedMemo)(nil), + } +} + +// The parameters determining if a transaction should be accepted by the chain. +type TransactionParameters struct { + // The maximum height that this transaction can be included in the chain. + // + // If zero, there is no maximum. + ExpiryHeight uint64 `protobuf:"varint,1,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` + // The chain this transaction is intended for. Including this prevents + // replaying a transaction on one chain onto a different chain. + ChainId string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` +} + +func (m *TransactionParameters) Reset() { *m = TransactionParameters{} } +func (m *TransactionParameters) String() string { return proto.CompactTextString(m) } +func (*TransactionParameters) ProtoMessage() {} +func (*TransactionParameters) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{5} +} +func (m *TransactionParameters) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionParameters.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 *TransactionParameters) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionParameters.Merge(m, src) +} +func (m *TransactionParameters) XXX_Size() int { + return m.Size() +} +func (m *TransactionParameters) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionParameters.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionParameters proto.InternalMessageInfo + +func (m *TransactionParameters) GetExpiryHeight() uint64 { + if m != nil { + return m.ExpiryHeight + } + return 0 +} + +func (m *TransactionParameters) GetChainId() string { + if m != nil { + return m.ChainId + } + return "" +} + +// Detection data used by a detection server performing Fuzzy Message Detection. +type DetectionData struct { + // A list of clues for use with Fuzzy Message Detection. + FmdClues []*v1alpha1.Clue `protobuf:"bytes,4,rep,name=fmd_clues,json=fmdClues,proto3" json:"fmd_clues,omitempty"` +} + +func (m *DetectionData) Reset() { *m = DetectionData{} } +func (m *DetectionData) String() string { return proto.CompactTextString(m) } +func (*DetectionData) ProtoMessage() {} +func (*DetectionData) Descriptor() ([]byte, []int) { + return fileDescriptor_cd20ea79758052c4, []int{6} +} +func (m *DetectionData) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DetectionData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DetectionData.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 *DetectionData) XXX_Merge(src proto.Message) { + xxx_messageInfo_DetectionData.Merge(m, src) +} +func (m *DetectionData) XXX_Size() int { + return m.Size() +} +func (m *DetectionData) XXX_DiscardUnknown() { + xxx_messageInfo_DetectionData.DiscardUnknown(m) +} + +var xxx_messageInfo_DetectionData proto.InternalMessageInfo + +func (m *DetectionData) GetFmdClues() []*v1alpha1.Clue { + if m != nil { + return m.FmdClues } + return nil } // A state change performed by a transaction. @@ -333,7 +471,7 @@ func (m *Action) Reset() { *m = Action{} } func (m *Action) String() string { return proto.CompactTextString(m) } func (*Action) ProtoMessage() {} func (*Action) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{4} + return fileDescriptor_cd20ea79758052c4, []int{7} } func (m *Action) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -658,14 +796,16 @@ type TransactionPerspective struct { // Any relevant address views. AddressViews []*v1alpha1.AddressView `protobuf:"bytes,4,rep,name=address_views,json=addressViews,proto3" json:"address_views,omitempty"` // Any relevant denoms for viewed assets. - Denoms []*v1alpha1.Denom `protobuf:"bytes,5,rep,name=denoms,proto3" json:"denoms,omitempty"` + Denoms []*v1alpha1.DenomMetadata `protobuf:"bytes,5,rep,name=denoms,proto3" json:"denoms,omitempty"` + // The transaction ID associated with this TransactionPerspective + TransactionId *Id `protobuf:"bytes,6,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` } func (m *TransactionPerspective) Reset() { *m = TransactionPerspective{} } func (m *TransactionPerspective) String() string { return proto.CompactTextString(m) } func (*TransactionPerspective) ProtoMessage() {} func (*TransactionPerspective) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{5} + return fileDescriptor_cd20ea79758052c4, []int{8} } func (m *TransactionPerspective) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -722,13 +862,20 @@ func (m *TransactionPerspective) GetAddressViews() []*v1alpha1.AddressView { return nil } -func (m *TransactionPerspective) GetDenoms() []*v1alpha1.Denom { +func (m *TransactionPerspective) GetDenoms() []*v1alpha1.DenomMetadata { if m != nil { return m.Denoms } return nil } +func (m *TransactionPerspective) GetTransactionId() *Id { + if m != nil { + return m.TransactionId + } + return nil +} + type PayloadKey struct { Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` } @@ -737,7 +884,7 @@ func (m *PayloadKey) Reset() { *m = PayloadKey{} } func (m *PayloadKey) String() string { return proto.CompactTextString(m) } func (*PayloadKey) ProtoMessage() {} func (*PayloadKey) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{6} + return fileDescriptor_cd20ea79758052c4, []int{9} } func (m *PayloadKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -782,7 +929,7 @@ func (m *PayloadKeyWithCommitment) Reset() { *m = PayloadKeyWithCommitme func (m *PayloadKeyWithCommitment) String() string { return proto.CompactTextString(m) } func (*PayloadKeyWithCommitment) ProtoMessage() {} func (*PayloadKeyWithCommitment) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{7} + return fileDescriptor_cd20ea79758052c4, []int{10} } func (m *PayloadKeyWithCommitment) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -834,7 +981,7 @@ func (m *NullifierWithNote) Reset() { *m = NullifierWithNote{} } func (m *NullifierWithNote) String() string { return proto.CompactTextString(m) } func (*NullifierWithNote) ProtoMessage() {} func (*NullifierWithNote) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{8} + return fileDescriptor_cd20ea79758052c4, []int{11} } func (m *NullifierWithNote) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -892,7 +1039,7 @@ func (m *TransactionView) Reset() { *m = TransactionView{} } func (m *TransactionView) String() string { return proto.CompactTextString(m) } func (*TransactionView) ProtoMessage() {} func (*TransactionView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{9} + return fileDescriptor_cd20ea79758052c4, []int{12} } func (m *TransactionView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -945,17 +1092,14 @@ func (m *TransactionView) GetAnchor() *v1alpha1.MerkleRoot { type TransactionBodyView struct { // A list views into of actions (state changes) performed by this transaction. ActionViews []*ActionView `protobuf:"bytes,1,rep,name=action_views,json=actionViews,proto3" json:"action_views,omitempty"` - // The maximum height that this transaction can be included in the chain. - // - // If zero, there is no maximum. - ExpiryHeight uint64 `protobuf:"varint,2,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` - // The chain this transaction is intended for. Including this prevents - // replaying a transaction on one chain onto a different chain. - ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // Transaction parameters. + TransactionParameters *TransactionParameters `protobuf:"bytes,2,opt,name=transaction_parameters,json=transactionParameters,proto3" json:"transaction_parameters,omitempty"` // The transaction fee. - Fee *v1alpha1.Fee `protobuf:"bytes,4,opt,name=fee,proto3" json:"fee,omitempty"` - // A list of clues for use with Fuzzy Message Detection. - FmdClues []*v1alpha1.Clue `protobuf:"bytes,5,rep,name=fmd_clues,json=fmdClues,proto3" json:"fmd_clues,omitempty"` + Fee *v1alpha1.Fee `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"` + // Types that are valid to be assigned to XDetectionData: + // + // *TransactionBodyView_DetectionData + XDetectionData isTransactionBodyView_XDetectionData `protobuf_oneof:"_detection_data"` // Types that are valid to be assigned to XMemoView: // // *TransactionBodyView_MemoView @@ -966,7 +1110,7 @@ func (m *TransactionBodyView) Reset() { *m = TransactionBodyView{} } func (m *TransactionBodyView) String() string { return proto.CompactTextString(m) } func (*TransactionBodyView) ProtoMessage() {} func (*TransactionBodyView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{10} + return fileDescriptor_cd20ea79758052c4, []int{13} } func (m *TransactionBodyView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -995,18 +1139,33 @@ func (m *TransactionBodyView) XXX_DiscardUnknown() { var xxx_messageInfo_TransactionBodyView proto.InternalMessageInfo +type isTransactionBodyView_XDetectionData interface { + isTransactionBodyView_XDetectionData() + MarshalTo([]byte) (int, error) + Size() int +} type isTransactionBodyView_XMemoView interface { isTransactionBodyView_XMemoView() MarshalTo([]byte) (int, error) Size() int } +type TransactionBodyView_DetectionData struct { + DetectionData *DetectionData `protobuf:"bytes,4,opt,name=detection_data,json=detectionData,proto3,oneof" json:"detection_data,omitempty"` +} type TransactionBodyView_MemoView struct { - MemoView *MemoView `protobuf:"bytes,6,opt,name=memo_view,json=memoView,proto3,oneof" json:"memo_view,omitempty"` + MemoView *MemoView `protobuf:"bytes,5,opt,name=memo_view,json=memoView,proto3,oneof" json:"memo_view,omitempty"` } -func (*TransactionBodyView_MemoView) isTransactionBodyView_XMemoView() {} +func (*TransactionBodyView_DetectionData) isTransactionBodyView_XDetectionData() {} +func (*TransactionBodyView_MemoView) isTransactionBodyView_XMemoView() {} +func (m *TransactionBodyView) GetXDetectionData() isTransactionBodyView_XDetectionData { + if m != nil { + return m.XDetectionData + } + return nil +} func (m *TransactionBodyView) GetXMemoView() isTransactionBodyView_XMemoView { if m != nil { return m.XMemoView @@ -1021,18 +1180,11 @@ func (m *TransactionBodyView) GetActionViews() []*ActionView { return nil } -func (m *TransactionBodyView) GetExpiryHeight() uint64 { - if m != nil { - return m.ExpiryHeight - } - return 0 -} - -func (m *TransactionBodyView) GetChainId() string { +func (m *TransactionBodyView) GetTransactionParameters() *TransactionParameters { if m != nil { - return m.ChainId + return m.TransactionParameters } - return "" + return nil } func (m *TransactionBodyView) GetFee() *v1alpha1.Fee { @@ -1042,9 +1194,9 @@ func (m *TransactionBodyView) GetFee() *v1alpha1.Fee { return nil } -func (m *TransactionBodyView) GetFmdClues() []*v1alpha1.Clue { - if m != nil { - return m.FmdClues +func (m *TransactionBodyView) GetDetectionData() *DetectionData { + if x, ok := m.GetXDetectionData().(*TransactionBodyView_DetectionData); ok { + return x.DetectionData } return nil } @@ -1059,6 +1211,7 @@ func (m *TransactionBodyView) GetMemoView() *MemoView { // XXX_OneofWrappers is for the internal use of the proto package. func (*TransactionBodyView) XXX_OneofWrappers() []interface{} { return []interface{}{ + (*TransactionBodyView_DetectionData)(nil), (*TransactionBodyView_MemoView)(nil), } } @@ -1096,7 +1249,7 @@ func (m *ActionView) Reset() { *m = ActionView{} } func (m *ActionView) String() string { return proto.CompactTextString(m) } func (*ActionView) ProtoMessage() {} func (*ActionView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{11} + return fileDescriptor_cd20ea79758052c4, []int{14} } func (m *ActionView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1422,7 +1575,7 @@ func (m *SpendView) Reset() { *m = SpendView{} } func (m *SpendView) String() string { return proto.CompactTextString(m) } func (*SpendView) ProtoMessage() {} func (*SpendView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{12} + return fileDescriptor_cd20ea79758052c4, []int{15} } func (m *SpendView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1505,7 +1658,7 @@ func (m *SpendView_Visible) Reset() { *m = SpendView_Visible{} } func (m *SpendView_Visible) String() string { return proto.CompactTextString(m) } func (*SpendView_Visible) ProtoMessage() {} func (*SpendView_Visible) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{12, 0} + return fileDescriptor_cd20ea79758052c4, []int{15, 0} } func (m *SpendView_Visible) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1556,7 +1709,7 @@ func (m *SpendView_Opaque) Reset() { *m = SpendView_Opaque{} } func (m *SpendView_Opaque) String() string { return proto.CompactTextString(m) } func (*SpendView_Opaque) ProtoMessage() {} func (*SpendView_Opaque) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{12, 1} + return fileDescriptor_cd20ea79758052c4, []int{15, 1} } func (m *SpendView_Opaque) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1604,7 +1757,7 @@ func (m *DelegatorVoteView) Reset() { *m = DelegatorVoteView{} } func (m *DelegatorVoteView) String() string { return proto.CompactTextString(m) } func (*DelegatorVoteView) ProtoMessage() {} func (*DelegatorVoteView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{13} + return fileDescriptor_cd20ea79758052c4, []int{16} } func (m *DelegatorVoteView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1687,7 +1840,7 @@ func (m *DelegatorVoteView_Visible) Reset() { *m = DelegatorVoteView_Vis func (m *DelegatorVoteView_Visible) String() string { return proto.CompactTextString(m) } func (*DelegatorVoteView_Visible) ProtoMessage() {} func (*DelegatorVoteView_Visible) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{13, 0} + return fileDescriptor_cd20ea79758052c4, []int{16, 0} } func (m *DelegatorVoteView_Visible) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1738,7 +1891,7 @@ func (m *DelegatorVoteView_Opaque) Reset() { *m = DelegatorVoteView_Opaq func (m *DelegatorVoteView_Opaque) String() string { return proto.CompactTextString(m) } func (*DelegatorVoteView_Opaque) ProtoMessage() {} func (*DelegatorVoteView_Opaque) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{13, 1} + return fileDescriptor_cd20ea79758052c4, []int{16, 1} } func (m *DelegatorVoteView_Opaque) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1786,7 +1939,7 @@ func (m *OutputView) Reset() { *m = OutputView{} } func (m *OutputView) String() string { return proto.CompactTextString(m) } func (*OutputView) ProtoMessage() {} func (*OutputView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{14} + return fileDescriptor_cd20ea79758052c4, []int{17} } func (m *OutputView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1870,7 +2023,7 @@ func (m *OutputView_Visible) Reset() { *m = OutputView_Visible{} } func (m *OutputView_Visible) String() string { return proto.CompactTextString(m) } func (*OutputView_Visible) ProtoMessage() {} func (*OutputView_Visible) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{14, 0} + return fileDescriptor_cd20ea79758052c4, []int{17, 0} } func (m *OutputView_Visible) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1928,7 +2081,7 @@ func (m *OutputView_Opaque) Reset() { *m = OutputView_Opaque{} } func (m *OutputView_Opaque) String() string { return proto.CompactTextString(m) } func (*OutputView_Opaque) ProtoMessage() {} func (*OutputView_Opaque) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{14, 1} + return fileDescriptor_cd20ea79758052c4, []int{17, 1} } func (m *OutputView_Opaque) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1978,7 +2131,7 @@ func (m *Spend) Reset() { *m = Spend{} } func (m *Spend) String() string { return proto.CompactTextString(m) } func (*Spend) ProtoMessage() {} func (*Spend) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{15} + return fileDescriptor_cd20ea79758052c4, []int{18} } func (m *Spend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2044,7 +2197,7 @@ func (m *SpendBody) Reset() { *m = SpendBody{} } func (m *SpendBody) String() string { return proto.CompactTextString(m) } func (*SpendBody) ProtoMessage() {} func (*SpendBody) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{16} + return fileDescriptor_cd20ea79758052c4, []int{19} } func (m *SpendBody) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2106,7 +2259,7 @@ func (m *Output) Reset() { *m = Output{} } func (m *Output) String() string { return proto.CompactTextString(m) } func (*Output) ProtoMessage() {} func (*Output) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{17} + return fileDescriptor_cd20ea79758052c4, []int{20} } func (m *Output) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2168,7 +2321,7 @@ func (m *OutputBody) Reset() { *m = OutputBody{} } func (m *OutputBody) String() string { return proto.CompactTextString(m) } func (*OutputBody) ProtoMessage() {} func (*OutputBody) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{18} + return fileDescriptor_cd20ea79758052c4, []int{21} } func (m *OutputBody) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2241,7 +2394,7 @@ func (m *AuthorizationData) Reset() { *m = AuthorizationData{} } func (m *AuthorizationData) String() string { return proto.CompactTextString(m) } func (*AuthorizationData) ProtoMessage() {} func (*AuthorizationData) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{19} + return fileDescriptor_cd20ea79758052c4, []int{22} } func (m *AuthorizationData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2304,7 +2457,7 @@ func (m *WitnessData) Reset() { *m = WitnessData{} } func (m *WitnessData) String() string { return proto.CompactTextString(m) } func (*WitnessData) ProtoMessage() {} func (*WitnessData) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{20} + return fileDescriptor_cd20ea79758052c4, []int{23} } func (m *WitnessData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2347,21 +2500,27 @@ func (m *WitnessData) GetStateCommitmentProofs() []*v1alpha1.StateCommitmentProo return nil } -// Describes a planned transaction. +// Describes a planned transaction. Permits clients to prepare a transaction +// prior submission, so that a user can review it prior to authorizing its execution. type TransactionPlan struct { - Actions []*ActionPlan `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"` - ExpiryHeight uint64 `protobuf:"varint,2,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` - ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` - Fee *v1alpha1.Fee `protobuf:"bytes,4,opt,name=fee,proto3" json:"fee,omitempty"` - CluePlans []*CluePlan `protobuf:"bytes,5,rep,name=clue_plans,json=cluePlans,proto3" json:"clue_plans,omitempty"` - MemoPlan *MemoPlan `protobuf:"bytes,6,opt,name=memo_plan,json=memoPlan,proto3" json:"memo_plan,omitempty"` + // The planner interface(s) for Actions to be performed, such as a Spend, Swap, + // or Delegation. See the ActionPlan docs for a full list of options. + Actions []*ActionPlan `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"` + // Time, as block height, after which TransactionPlan should be considered invalid. + ExpiryHeight uint64 `protobuf:"varint,2,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` + // The name of the network for which this TransactionPlan was built. + ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + Fee *v1alpha1.Fee `protobuf:"bytes,4,opt,name=fee,proto3" json:"fee,omitempty"` + CluePlans []*CluePlan `protobuf:"bytes,5,rep,name=clue_plans,json=cluePlans,proto3" json:"clue_plans,omitempty"` + // Planning interface for constructing an optional Memo for the Transaction. + MemoPlan *MemoPlan `protobuf:"bytes,6,opt,name=memo_plan,json=memoPlan,proto3" json:"memo_plan,omitempty"` } func (m *TransactionPlan) Reset() { *m = TransactionPlan{} } func (m *TransactionPlan) String() string { return proto.CompactTextString(m) } func (*TransactionPlan) ProtoMessage() {} func (*TransactionPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{21} + return fileDescriptor_cd20ea79758052c4, []int{24} } func (m *TransactionPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2468,7 +2627,7 @@ func (m *ActionPlan) Reset() { *m = ActionPlan{} } func (m *ActionPlan) String() string { return proto.CompactTextString(m) } func (*ActionPlan) ProtoMessage() {} func (*ActionPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{22} + return fileDescriptor_cd20ea79758052c4, []int{25} } func (m *ActionPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2796,7 +2955,7 @@ func (m *CluePlan) Reset() { *m = CluePlan{} } func (m *CluePlan) String() string { return proto.CompactTextString(m) } func (*CluePlan) ProtoMessage() {} func (*CluePlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{23} + return fileDescriptor_cd20ea79758052c4, []int{26} } func (m *CluePlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2858,7 +3017,7 @@ func (m *MemoPlan) Reset() { *m = MemoPlan{} } func (m *MemoPlan) String() string { return proto.CompactTextString(m) } func (*MemoPlan) ProtoMessage() {} func (*MemoPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{24} + return fileDescriptor_cd20ea79758052c4, []int{27} } func (m *MemoPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2909,7 +3068,7 @@ func (m *MemoCiphertext) Reset() { *m = MemoCiphertext{} } func (m *MemoCiphertext) String() string { return proto.CompactTextString(m) } func (*MemoCiphertext) ProtoMessage() {} func (*MemoCiphertext) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{25} + return fileDescriptor_cd20ea79758052c4, []int{28} } func (m *MemoCiphertext) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2954,7 +3113,7 @@ func (m *MemoPlaintext) Reset() { *m = MemoPlaintext{} } func (m *MemoPlaintext) String() string { return proto.CompactTextString(m) } func (*MemoPlaintext) ProtoMessage() {} func (*MemoPlaintext) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{26} + return fileDescriptor_cd20ea79758052c4, []int{29} } func (m *MemoPlaintext) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3009,7 +3168,7 @@ func (m *MemoView) Reset() { *m = MemoView{} } func (m *MemoView) String() string { return proto.CompactTextString(m) } func (*MemoView) ProtoMessage() {} func (*MemoView) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{27} + return fileDescriptor_cd20ea79758052c4, []int{30} } func (m *MemoView) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3092,7 +3251,7 @@ func (m *MemoView_Visible) Reset() { *m = MemoView_Visible{} } func (m *MemoView_Visible) String() string { return proto.CompactTextString(m) } func (*MemoView_Visible) ProtoMessage() {} func (*MemoView_Visible) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{27, 0} + return fileDescriptor_cd20ea79758052c4, []int{30, 0} } func (m *MemoView_Visible) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3143,7 +3302,7 @@ func (m *MemoView_Opaque) Reset() { *m = MemoView_Opaque{} } func (m *MemoView_Opaque) String() string { return proto.CompactTextString(m) } func (*MemoView_Opaque) ProtoMessage() {} func (*MemoView_Opaque) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{27, 1} + return fileDescriptor_cd20ea79758052c4, []int{30, 1} } func (m *MemoView_Opaque) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3188,13 +3347,17 @@ type SpendPlan struct { Randomizer []byte `protobuf:"bytes,3,opt,name=randomizer,proto3" json:"randomizer,omitempty"` // The blinding factor to use for the value commitment. ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` + // The first blinding factor to use for the ZK spend proof. + ProofBlindingR []byte `protobuf:"bytes,5,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` + // The second blinding factor to use for the ZK spend proof. + ProofBlindingS []byte `protobuf:"bytes,6,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` } func (m *SpendPlan) Reset() { *m = SpendPlan{} } func (m *SpendPlan) String() string { return proto.CompactTextString(m) } func (*SpendPlan) ProtoMessage() {} func (*SpendPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{28} + return fileDescriptor_cd20ea79758052c4, []int{31} } func (m *SpendPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3251,6 +3414,20 @@ func (m *SpendPlan) GetValueBlinding() []byte { return nil } +func (m *SpendPlan) GetProofBlindingR() []byte { + if m != nil { + return m.ProofBlindingR + } + return nil +} + +func (m *SpendPlan) GetProofBlindingS() []byte { + if m != nil { + return m.ProofBlindingS + } + return nil +} + type OutputPlan struct { // The value to send to this output. Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` @@ -3260,13 +3437,17 @@ type OutputPlan struct { Rseed []byte `protobuf:"bytes,3,opt,name=rseed,proto3" json:"rseed,omitempty"` // The blinding factor to use for the value commitment. ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` + // The first blinding factor to use for the ZK output proof. + ProofBlindingR []byte `protobuf:"bytes,5,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` + // The second blinding factor to use for the ZK output proof. + ProofBlindingS []byte `protobuf:"bytes,6,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` } func (m *OutputPlan) Reset() { *m = OutputPlan{} } func (m *OutputPlan) String() string { return proto.CompactTextString(m) } func (*OutputPlan) ProtoMessage() {} func (*OutputPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_cd20ea79758052c4, []int{29} + return fileDescriptor_cd20ea79758052c4, []int{32} } func (m *OutputPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3323,11 +3504,28 @@ func (m *OutputPlan) GetValueBlinding() []byte { return nil } +func (m *OutputPlan) GetProofBlindingR() []byte { + if m != nil { + return m.ProofBlindingR + } + return nil +} + +func (m *OutputPlan) GetProofBlindingS() []byte { + if m != nil { + return m.ProofBlindingS + } + return nil +} + func init() { proto.RegisterType((*Transaction)(nil), "penumbra.core.transaction.v1alpha1.Transaction") proto.RegisterType((*Id)(nil), "penumbra.core.transaction.v1alpha1.Id") proto.RegisterType((*EffectHash)(nil), "penumbra.core.transaction.v1alpha1.EffectHash") proto.RegisterType((*TransactionBody)(nil), "penumbra.core.transaction.v1alpha1.TransactionBody") + proto.RegisterType((*MemoData)(nil), "penumbra.core.transaction.v1alpha1.MemoData") + proto.RegisterType((*TransactionParameters)(nil), "penumbra.core.transaction.v1alpha1.TransactionParameters") + proto.RegisterType((*DetectionData)(nil), "penumbra.core.transaction.v1alpha1.DetectionData") proto.RegisterType((*Action)(nil), "penumbra.core.transaction.v1alpha1.Action") proto.RegisterType((*TransactionPerspective)(nil), "penumbra.core.transaction.v1alpha1.TransactionPerspective") proto.RegisterType((*PayloadKey)(nil), "penumbra.core.transaction.v1alpha1.PayloadKey") @@ -3369,172 +3567,182 @@ func init() { } var fileDescriptor_cd20ea79758052c4 = []byte{ - // 2631 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0x1c, 0x49, - 0x15, 0x9f, 0x9e, 0xb1, 0xc7, 0xf6, 0x9b, 0xf1, 0x57, 0xc5, 0x9b, 0x1d, 0x2c, 0xe4, 0x8d, 0x7a, - 0x93, 0xe0, 0x24, 0xec, 0x38, 0xb1, 0x9d, 0x8d, 0xe4, 0x0d, 0xb0, 0x1e, 0x7b, 0xb3, 0xe3, 0x64, - 0x1d, 0xcf, 0x76, 0x82, 0xa3, 0x04, 0xb3, 0x4d, 0x4d, 0x77, 0xd9, 0xd3, 0x72, 0x4f, 0x77, 0xd3, - 0xdd, 0x33, 0x8e, 0xf7, 0x1f, 0x00, 0x2e, 0x68, 0x91, 0x38, 0x20, 0x2e, 0x48, 0x5c, 0x90, 0x38, - 0x70, 0xe0, 0x08, 0xe2, 0xcc, 0x0a, 0x24, 0x14, 0x89, 0x0b, 0xd2, 0x0a, 0x09, 0x92, 0x13, 0x1f, - 0x17, 0xfe, 0x01, 0x84, 0xaa, 0xba, 0xfa, 0x73, 0xda, 0x99, 0x1e, 0x3b, 0x61, 0x95, 0x4d, 0x4e, - 0xae, 0x7a, 0x7e, 0xef, 0x57, 0x55, 0xef, 0xbd, 0xaa, 0x7a, 0xef, 0x55, 0x0f, 0x2c, 0x5b, 0xc4, - 0xe8, 0xb4, 0x9b, 0x36, 0x5e, 0x50, 0x4c, 0x9b, 0x2c, 0xb8, 0x36, 0x36, 0x1c, 0xac, 0xb8, 0x9a, - 0x69, 0x2c, 0x74, 0xaf, 0x60, 0xdd, 0x6a, 0xe1, 0x2b, 0x51, 0x62, 0xd5, 0xb2, 0x4d, 0xd7, 0x44, - 0xa2, 0x2f, 0x55, 0xa5, 0x52, 0xd5, 0x28, 0x83, 0x2f, 0x35, 0x7b, 0x31, 0x8e, 0xac, 0xd8, 0x87, - 0x96, 0x6b, 0x86, 0xa0, 0x5e, 0xdf, 0xc3, 0x9b, 0x9d, 0x8f, 0xf3, 0x3a, 0x2e, 0xde, 0x27, 0x21, - 0x2b, 0xeb, 0x72, 0xce, 0xb3, 0x71, 0x4e, 0xad, 0xa9, 0x84, 0x7c, 0x5a, 0x53, 0x49, 0xe7, 0x52, - 0xc9, 0xc3, 0x90, 0x4b, 0x25, 0x0f, 0x39, 0xd7, 0x62, 0x9c, 0x6b, 0xcf, 0xec, 0x12, 0xdb, 0xc0, - 0x86, 0x12, 0x19, 0x3a, 0xa4, 0x79, 0x32, 0xe2, 0x6f, 0x04, 0x28, 0xdd, 0x0d, 0x97, 0x8b, 0xde, - 0x87, 0xa1, 0xa6, 0xa9, 0x1e, 0x56, 0x84, 0x33, 0xc2, 0x7c, 0x69, 0x71, 0xa9, 0xda, 0x5f, 0x31, - 0xd5, 0x88, 0x78, 0xcd, 0x54, 0x0f, 0x25, 0x06, 0x80, 0xde, 0x80, 0x52, 0x53, 0x33, 0x54, 0xcd, - 0xd8, 0x93, 0x1d, 0x6d, 0xaf, 0x92, 0x3f, 0x23, 0xcc, 0x97, 0x25, 0xe0, 0xa4, 0x3b, 0xda, 0x1e, - 0x5a, 0x85, 0x22, 0x36, 0x94, 0x96, 0x69, 0x57, 0x0a, 0x6c, 0xac, 0x0b, 0x89, 0xb1, 0xb8, 0x42, - 0x83, 0x61, 0x36, 0x89, 0xbd, 0xaf, 0x13, 0xc9, 0x34, 0x5d, 0x89, 0x0b, 0x8a, 0x15, 0xc8, 0x6f, - 0xa8, 0x08, 0xc1, 0x50, 0x0b, 0x3b, 0x2d, 0x36, 0xe5, 0xb2, 0xc4, 0xda, 0xa2, 0x08, 0xf0, 0xde, - 0xee, 0x2e, 0x51, 0xdc, 0x3a, 0x76, 0x5a, 0x68, 0x06, 0x86, 0x35, 0xc3, 0x20, 0x36, 0x67, 0xf1, - 0x3a, 0xe2, 0x9f, 0xf2, 0x30, 0x99, 0x98, 0x3b, 0x5a, 0x87, 0x11, 0xaf, 0xe7, 0x54, 0x84, 0x33, - 0x85, 0xf9, 0xd2, 0xe2, 0xc5, 0x2c, 0x1a, 0x58, 0x65, 0x7d, 0xc9, 0x17, 0x45, 0x6f, 0xc2, 0x38, - 0x79, 0x68, 0x69, 0xf6, 0xa1, 0xdc, 0x22, 0xda, 0x5e, 0xcb, 0x65, 0xab, 0x1f, 0x92, 0xca, 0x1e, - 0xb1, 0xce, 0x68, 0xe8, 0x4b, 0x30, 0xaa, 0xb4, 0xb0, 0x66, 0xc8, 0x9a, 0xca, 0x34, 0x30, 0x26, - 0x8d, 0xb0, 0xfe, 0x86, 0x8a, 0x96, 0xa1, 0xb0, 0x4b, 0x48, 0x65, 0x88, 0xe9, 0x45, 0xec, 0xa3, - 0x97, 0x1b, 0x84, 0x48, 0x94, 0x1d, 0xbd, 0x0b, 0x63, 0xbb, 0x6d, 0x55, 0x56, 0xf4, 0x0e, 0x71, - 0x2a, 0xc3, 0x6c, 0xf6, 0x6f, 0xf6, 0x91, 0x5d, 0xd3, 0x3b, 0x44, 0x1a, 0xdd, 0x6d, 0xab, 0xb4, - 0xe1, 0xa0, 0x8b, 0x30, 0x41, 0x0c, 0xc6, 0x43, 0x54, 0xb9, 0x4d, 0xda, 0x66, 0xa5, 0x48, 0x15, - 0x56, 0xcf, 0x49, 0xe3, 0x01, 0x7d, 0x93, 0xb4, 0xcd, 0xef, 0x0b, 0x42, 0x6d, 0x1a, 0x26, 0xe5, - 0x38, 0xb3, 0xf8, 0xe7, 0x09, 0x28, 0x7a, 0xaa, 0x40, 0xab, 0x30, 0xec, 0x58, 0xc4, 0x50, 0xb9, - 0x1f, 0x5d, 0xc8, 0xa2, 0xc5, 0x3b, 0x54, 0xa0, 0x9e, 0x93, 0x3c, 0x49, 0xb4, 0x0e, 0x45, 0xb3, - 0xe3, 0x5a, 0x1d, 0x4f, 0x7b, 0x19, 0x2d, 0xb1, 0xc5, 0x24, 0xea, 0x39, 0x89, 0xcb, 0xa2, 0xb7, - 0x61, 0xc8, 0x39, 0xc0, 0x16, 0xf7, 0xb1, 0x33, 0x09, 0x0c, 0xba, 0x77, 0xc2, 0xf1, 0x0f, 0xb0, - 0x55, 0xcf, 0x49, 0x8c, 0x1f, 0xdd, 0x00, 0xa0, 0x7f, 0x65, 0x45, 0xc7, 0x5a, 0x9b, 0x5b, 0xe2, - 0x5c, 0x3f, 0xe9, 0x35, 0xca, 0x5c, 0xcf, 0x49, 0x63, 0x8e, 0xdf, 0x41, 0xbb, 0x30, 0xd3, 0xc5, - 0xba, 0xa6, 0x62, 0xd7, 0xb4, 0x65, 0x95, 0xec, 0x6a, 0x86, 0x46, 0x67, 0x5c, 0x99, 0x62, 0x88, - 0x57, 0x12, 0x88, 0xde, 0xc9, 0x10, 0x60, 0x6e, 0xfb, 0x92, 0xeb, 0x81, 0x60, 0x3d, 0x27, 0x9d, - 0xea, 0xf6, 0x92, 0xe9, 0x7c, 0xb5, 0xa6, 0x22, 0x7b, 0xfa, 0xa8, 0x4c, 0xa7, 0xce, 0x97, 0x9e, - 0x27, 0x01, 0xf6, 0x46, 0x53, 0xf1, 0x6c, 0x45, 0xe7, 0xab, 0xf9, 0x1d, 0xb4, 0x03, 0x93, 0x96, - 0x6d, 0x5a, 0xa6, 0x83, 0x75, 0xd9, 0xe9, 0x34, 0xdb, 0x9a, 0x5b, 0x41, 0xa9, 0x53, 0x8d, 0x9c, - 0x24, 0x01, 0x66, 0x83, 0x4b, 0xde, 0x61, 0x82, 0xf5, 0x9c, 0x34, 0x61, 0xc5, 0x28, 0xa8, 0x09, - 0xd3, 0x01, 0xfa, 0x81, 0xe6, 0xb6, 0x54, 0x1b, 0x1f, 0x54, 0x4e, 0xa5, 0x1e, 0x35, 0x4f, 0xc3, - 0xbf, 0xc7, 0x45, 0xeb, 0x39, 0x69, 0xca, 0x4a, 0xd0, 0xd0, 0x7d, 0x98, 0x08, 0x35, 0xde, 0x35, - 0x5d, 0x52, 0x99, 0x61, 0x03, 0x5c, 0xce, 0x30, 0x40, 0xa0, 0xf0, 0x6d, 0xd3, 0x25, 0xd4, 0xed, - 0xbb, 0x51, 0x02, 0x85, 0x56, 0x89, 0x4e, 0xf6, 0x42, 0xe8, 0xd7, 0x32, 0x43, 0xaf, 0xfb, 0x82, - 0x3e, 0xb4, 0x1a, 0x25, 0x20, 0x13, 0x4e, 0x07, 0x9a, 0x51, 0x89, 0x65, 0x3a, 0x9a, 0xcb, 0x7d, - 0xef, 0x34, 0x1b, 0xe2, 0xda, 0x00, 0xea, 0x59, 0xf7, 0xe4, 0x7d, 0x6f, 0x9c, 0xb1, 0x52, 0xe8, - 0x68, 0x0b, 0xc6, 0x59, 0x4f, 0x33, 0x0d, 0xd9, 0xb4, 0x88, 0x51, 0x99, 0x63, 0xe3, 0xcc, 0x3f, - 0xcd, 0xc7, 0x1b, 0x5c, 0x60, 0xcb, 0x22, 0xd4, 0x6d, 0xca, 0x56, 0xa4, 0x8f, 0x24, 0x98, 0x08, - 0x00, 0x15, 0xdd, 0x74, 0x48, 0xe5, 0x8d, 0xd4, 0xbd, 0x9f, 0x8a, 0xb8, 0x46, 0x05, 0xa8, 0x56, - 0xac, 0x28, 0x01, 0x7d, 0x0b, 0xa6, 0x03, 0xcc, 0xc0, 0x5f, 0xce, 0x30, 0xd8, 0xaf, 0x66, 0x81, - 0x8d, 0x39, 0x4a, 0x82, 0x86, 0x08, 0xbc, 0x16, 0x80, 0xdb, 0xe4, 0x00, 0xdb, 0x2a, 0xd7, 0xb8, - 0xc8, 0x06, 0x58, 0xc8, 0x32, 0x80, 0xc4, 0xe4, 0x7c, 0x4d, 0x9f, 0xb2, 0x7a, 0xc9, 0x68, 0x1d, - 0x46, 0xb9, 0xa9, 0x49, 0x65, 0x9e, 0x21, 0x9f, 0x7f, 0xfa, 0xae, 0xe7, 0x9e, 0x42, 0xd5, 0x11, - 0x48, 0xa2, 0x9b, 0x00, 0x1d, 0x23, 0xc0, 0xb9, 0x90, 0x6a, 0xab, 0x04, 0xce, 0x37, 0x03, 0xfe, - 0x7a, 0x4e, 0x8a, 0x48, 0xa3, 0x07, 0x30, 0x15, 0xf6, 0xf8, 0x9a, 0x2f, 0x32, 0xc4, 0xb7, 0xb2, - 0x22, 0xfa, 0x2b, 0x9e, 0xec, 0xc4, 0x49, 0xe8, 0x26, 0x8c, 0xa9, 0xd8, 0x94, 0xbd, 0xc3, 0x7f, - 0x91, 0x81, 0x5e, 0xca, 0xb2, 0x3b, 0xb0, 0xe9, 0x1f, 0xff, 0xa3, 0x2a, 0x6f, 0xa3, 0x4d, 0x00, - 0x8a, 0xc5, 0x6f, 0x81, 0xa5, 0x54, 0xb3, 0x1f, 0x01, 0x16, 0xdc, 0x03, 0x74, 0x36, 0x5e, 0x07, - 0x35, 0xa0, 0x44, 0xe1, 0xf8, 0xee, 0xaa, 0x2c, 0xa7, 0xae, 0xf8, 0x08, 0x3c, 0xbe, 0x75, 0xa8, - 0x22, 0xd5, 0xa0, 0x87, 0xee, 0xc3, 0x94, 0xa6, 0x38, 0x8b, 0x97, 0x03, 0xdf, 0xc4, 0x7a, 0xe5, - 0x53, 0x21, 0x75, 0xd1, 0xf1, 0xb3, 0x97, 0x0a, 0xdd, 0x0b, 0x64, 0xa8, 0x1e, 0xb5, 0x38, 0xa9, - 0x36, 0x0a, 0x45, 0xef, 0x2c, 0x17, 0x7f, 0x5d, 0x80, 0xd3, 0x91, 0x30, 0xa5, 0x41, 0x6c, 0xc7, - 0x22, 0x8a, 0xab, 0x75, 0x09, 0x92, 0xa1, 0x6c, 0xe1, 0x43, 0xdd, 0xc4, 0xaa, 0xbc, 0x4f, 0x0e, - 0xfd, 0x90, 0xe5, 0x7a, 0x96, 0x8b, 0xb2, 0xe1, 0xc9, 0xdd, 0x22, 0x87, 0x74, 0xd0, 0x35, 0xb3, - 0xdd, 0xd6, 0xdc, 0x36, 0x31, 0x5c, 0xa9, 0x64, 0x05, 0xff, 0x71, 0xd0, 0x77, 0x60, 0x8a, 0x59, - 0x52, 0x36, 0x3a, 0xba, 0xae, 0xed, 0x6a, 0xc4, 0x76, 0x2a, 0x79, 0x36, 0xc8, 0xd5, 0x2c, 0x83, - 0xdc, 0xf6, 0xa5, 0xe8, 0x18, 0xb7, 0x4d, 0x97, 0x48, 0x93, 0x0c, 0x2e, 0xa0, 0x3b, 0xe8, 0x06, - 0x94, 0xb1, 0xda, 0xd5, 0x14, 0x22, 0x1b, 0xa6, 0x4b, 0x9c, 0x4a, 0x21, 0x53, 0xdc, 0xc2, 0xb0, - 0x4a, 0x9e, 0x20, 0x6d, 0x3b, 0xf4, 0x38, 0xc3, 0xaa, 0x6a, 0x13, 0xc7, 0x91, 0xbb, 0x1a, 0x39, - 0x70, 0x2a, 0x43, 0xa9, 0xe1, 0x5b, 0x12, 0x68, 0xd5, 0x93, 0xd9, 0xd6, 0xc8, 0x81, 0x54, 0xc6, - 0x61, 0xc7, 0x41, 0xd7, 0xa1, 0xa8, 0x12, 0xc3, 0x6c, 0xfb, 0xa1, 0xd4, 0xd9, 0x3e, 0x48, 0xeb, - 0x94, 0x59, 0xe2, 0x32, 0x34, 0xfe, 0x0c, 0x35, 0x7c, 0x44, 0xfc, 0xf9, 0x5b, 0x01, 0x2a, 0x47, - 0x99, 0x01, 0x6d, 0x41, 0x29, 0x62, 0x5a, 0x1e, 0x46, 0x55, 0x07, 0xb3, 0xac, 0x04, 0xa1, 0x2d, - 0xd1, 0x6d, 0x00, 0x25, 0x80, 0xe7, 0x21, 0x55, 0xb5, 0xcf, 0x9a, 0xee, 0xb8, 0x74, 0x5f, 0x87, - 0xbe, 0x11, 0x41, 0x10, 0x7f, 0x2c, 0xc0, 0x74, 0x8f, 0x7d, 0xd1, 0x0d, 0x18, 0x0b, 0x5c, 0x85, - 0x4f, 0x7a, 0xbe, 0x9f, 0x2d, 0x7d, 0x7e, 0x29, 0x14, 0x45, 0xd7, 0x60, 0x88, 0xfa, 0x03, 0x9f, - 0x67, 0x26, 0x77, 0x60, 0x02, 0xe2, 0x1f, 0x85, 0x58, 0x50, 0x4f, 0x6d, 0x89, 0xee, 0xc2, 0x18, - 0x4d, 0x49, 0x98, 0x63, 0xf0, 0x49, 0x5d, 0x3b, 0x46, 0x62, 0xc3, 0x9c, 0x64, 0xb4, 0xc9, 0x5b, - 0xff, 0x97, 0x04, 0xe7, 0xbf, 0x79, 0x38, 0x95, 0x32, 0x0b, 0xf4, 0x21, 0x94, 0x3d, 0x0a, 0x77, - 0x76, 0x6f, 0xe3, 0x57, 0xb3, 0xe7, 0x2a, 0x6c, 0x2d, 0xa5, 0x50, 0x47, 0x2f, 0x6e, 0xce, 0x72, - 0x1b, 0xc6, 0x68, 0xf2, 0xe1, 0x19, 0xb7, 0x98, 0x7a, 0x47, 0xa4, 0xea, 0x81, 0xe6, 0x31, 0x74, - 0xe5, 0xf4, 0xc6, 0x69, 0xf3, 0x36, 0xcd, 0x6b, 0xca, 0x00, 0x72, 0x00, 0x28, 0xfe, 0x67, 0x02, - 0x20, 0xd4, 0x18, 0x7a, 0x2f, 0x9e, 0xd6, 0xbc, 0x95, 0x39, 0xad, 0xe1, 0x23, 0xf1, 0xd4, 0xa6, - 0x9e, 0x48, 0x6d, 0xaa, 0xd9, 0x53, 0x1b, 0x0e, 0xe4, 0xa7, 0x37, 0x2b, 0xb1, 0xf4, 0xe6, 0x6c, - 0xbf, 0x04, 0x85, 0x4b, 0x7b, 0x29, 0xce, 0xcd, 0x94, 0x14, 0xe7, 0x42, 0xa6, 0x14, 0x87, 0xc3, - 0xbc, 0x4a, 0x73, 0xbe, 0x98, 0x69, 0xce, 0x47, 0x47, 0xa4, 0x39, 0x99, 0xee, 0xfc, 0x58, 0x9e, - 0xc3, 0x1d, 0xe5, 0x55, 0xae, 0xf3, 0x12, 0xe6, 0x3a, 0x17, 0x9e, 0x51, 0xae, 0x73, 0xf1, 0x44, - 0xb9, 0xce, 0x4b, 0x95, 0x8f, 0xa4, 0x25, 0x76, 0x97, 0x9e, 0x51, 0x62, 0xf7, 0x1c, 0x73, 0x9d, - 0x71, 0x28, 0x45, 0xa2, 0x19, 0xf1, 0x47, 0x05, 0x18, 0x0b, 0x2e, 0x4d, 0xf4, 0x21, 0x8c, 0x74, - 0x35, 0x47, 0x6b, 0xea, 0x84, 0x5f, 0xba, 0x57, 0x07, 0xba, 0x74, 0xab, 0xdb, 0x9e, 0x70, 0x3d, - 0x27, 0xf9, 0x38, 0xe8, 0x36, 0x14, 0x4d, 0x0b, 0x7f, 0xb7, 0xe3, 0x87, 0x97, 0xcb, 0x83, 0x21, - 0x6e, 0x31, 0x59, 0x76, 0x09, 0xb3, 0xd6, 0xec, 0xf7, 0x04, 0x18, 0xe1, 0xc3, 0xa0, 0x6f, 0x1c, - 0xb7, 0xf0, 0xe9, 0xc7, 0x06, 0xef, 0xc4, 0x22, 0xdf, 0xaf, 0x64, 0x88, 0x7c, 0x59, 0x2c, 0xc7, - 0x84, 0x66, 0x37, 0xa0, 0xe8, 0xcd, 0xee, 0xc4, 0xf3, 0xa0, 0x71, 0x90, 0x97, 0xfa, 0x31, 0x9b, - 0xfc, 0xb5, 0x00, 0xd3, 0x3d, 0x27, 0x3b, 0xba, 0x9f, 0xb4, 0xcd, 0xd7, 0x8e, 0x75, 0x43, 0xa4, - 0xd9, 0x68, 0x3b, 0x61, 0xa3, 0xeb, 0xc7, 0x43, 0xee, 0xb1, 0xd5, 0xcf, 0x22, 0xb6, 0xba, 0xd7, - 0x73, 0xcf, 0x09, 0xc7, 0x2b, 0xe7, 0x25, 0x2f, 0xb8, 0x13, 0xd9, 0x10, 0x07, 0x36, 0x7c, 0x5e, - 0xf3, 0xab, 0x4d, 0x25, 0x81, 0xc5, 0x7f, 0x17, 0x00, 0xc2, 0x00, 0x13, 0x49, 0x49, 0xc3, 0xbe, - 0x3d, 0x58, 0x84, 0x9a, 0x66, 0xd1, 0xad, 0x84, 0x45, 0xaf, 0x0e, 0x08, 0xd9, 0x63, 0xca, 0xcf, - 0x22, 0xa6, 0xac, 0x05, 0x11, 0xb5, 0x30, 0xe8, 0x63, 0x41, 0x10, 0x4b, 0x9f, 0xc4, 0x6a, 0xc9, - 0x7c, 0xbd, 0x70, 0xd2, 0x7c, 0x7d, 0xf6, 0x83, 0xc0, 0x0d, 0x9e, 0xc1, 0xda, 0xe8, 0x11, 0xeb, - 0xb5, 0xbc, 0xed, 0xfc, 0x99, 0x00, 0xc3, 0xde, 0x9d, 0xb6, 0x1a, 0x7b, 0xef, 0xcb, 0x9e, 0xd0, - 0x44, 0x5e, 0xfa, 0x3e, 0x80, 0x51, 0xdc, 0x71, 0x5b, 0x41, 0x16, 0xdc, 0x1b, 0x44, 0xf7, 0xd4, - 0x15, 0x28, 0xc2, 0x6a, 0xc7, 0x6d, 0xdd, 0xd1, 0xf6, 0x0c, 0xec, 0x76, 0x6c, 0x22, 0x8d, 0x60, - 0xaf, 0x8b, 0x56, 0x61, 0xd8, 0xb2, 0x4d, 0x73, 0x97, 0xab, 0xf0, 0x52, 0x1f, 0xa8, 0x07, 0xb7, - 0x18, 0x58, 0x83, 0x8a, 0x48, 0x9e, 0xa4, 0xf8, 0x53, 0x81, 0x5f, 0x20, 0xec, 0x49, 0x4f, 0x06, - 0xd4, 0xc4, 0x3a, 0xdd, 0x1d, 0x72, 0xa4, 0x00, 0x92, 0xbe, 0x93, 0x92, 0xe8, 0x35, 0x4f, 0x30, - 0x52, 0x02, 0x99, 0x6e, 0x26, 0x49, 0xe8, 0xcb, 0xd1, 0x9a, 0x47, 0x81, 0x95, 0x01, 0x22, 0x95, - 0x8c, 0x09, 0xc8, 0xdb, 0xfb, 0x2c, 0xbb, 0x2a, 0x4b, 0x79, 0x7b, 0x5f, 0xfc, 0x44, 0x80, 0x22, - 0x0f, 0x00, 0x6a, 0x31, 0xdd, 0x0f, 0x90, 0x04, 0x46, 0x94, 0x5f, 0xf3, 0xd5, 0x95, 0x4f, 0x0d, - 0x47, 0x7a, 0xd5, 0xe5, 0x21, 0xc4, 0xf4, 0xf5, 0xc3, 0xbc, 0xbf, 0xf9, 0x99, 0xc2, 0x36, 0xa1, - 0x4c, 0x5d, 0x5a, 0xe6, 0xce, 0x78, 0x84, 0xd7, 0xa5, 0xed, 0x07, 0xee, 0xca, 0x52, 0xc9, 0x08, - 0x3b, 0x47, 0xe8, 0x3f, 0xff, 0xec, 0xf4, 0x3f, 0x0f, 0x53, 0x07, 0x36, 0xb6, 0x2c, 0xfe, 0x0c, - 0x19, 0xec, 0xbf, 0xb2, 0x34, 0xc1, 0xe9, 0x34, 0xd7, 0xbf, 0x45, 0x0e, 0xd1, 0x79, 0x98, 0x34, - 0xbb, 0xfb, 0xb2, 0xcf, 0x4d, 0x19, 0x3d, 0xc3, 0x8c, 0x9b, 0xdd, 0xfd, 0x7b, 0x1e, 0xf5, 0x16, - 0x39, 0x14, 0x7f, 0x92, 0x87, 0x69, 0xea, 0x9e, 0xa6, 0xad, 0x7d, 0x8c, 0xa9, 0x01, 0xd6, 0xb1, - 0x8b, 0xd1, 0x4d, 0x28, 0x11, 0xf6, 0xa6, 0x2c, 0x07, 0xcf, 0xcd, 0xfd, 0x8b, 0x3a, 0xe1, 0x2b, - 0xb4, 0x04, 0x24, 0x7c, 0x91, 0x96, 0xa0, 0xe4, 0xdd, 0xae, 0xd4, 0xed, 0xfd, 0x9a, 0xea, 0x31, - 0xb6, 0x8d, 0x77, 0x47, 0x53, 0x9a, 0x83, 0x14, 0x98, 0x89, 0x9f, 0xea, 0x1c, 0xbc, 0x70, 0x5c, - 0x70, 0x14, 0xbb, 0x35, 0xd8, 0x20, 0xe2, 0xef, 0x04, 0x28, 0xdd, 0xd3, 0x5c, 0x83, 0x38, 0x0e, - 0x53, 0x4a, 0x58, 0xe4, 0x12, 0x8e, 0x59, 0xe4, 0x42, 0xfb, 0xf0, 0xba, 0xe3, 0xb2, 0x80, 0x35, - 0xb0, 0xa9, 0xcc, 0x1c, 0xd3, 0xd7, 0xcb, 0xd2, 0x60, 0x65, 0x4a, 0xcf, 0xb7, 0x5f, 0x73, 0x52, - 0xa8, 0x8e, 0xf8, 0x8f, 0xf8, 0xa3, 0x7f, 0x43, 0xc7, 0x06, 0xaa, 0x27, 0x1f, 0xfd, 0x07, 0x28, - 0xa4, 0x51, 0x80, 0xcf, 0xfb, 0xe1, 0xff, 0x16, 0x80, 0xa2, 0x77, 0x88, 0x6c, 0xe9, 0xd8, 0xf0, - 0xab, 0x68, 0x99, 0x6a, 0x60, 0x6b, 0x7a, 0x87, 0xb0, 0x05, 0x8c, 0x29, 0xbc, 0xe5, 0xa0, 0x0d, - 0x5e, 0x4f, 0xa3, 0x60, 0x83, 0xd6, 0xd3, 0x18, 0x16, 0xab, 0xa6, 0xd1, 0x96, 0xf8, 0xaf, 0xa0, - 0x78, 0xc6, 0xd4, 0x7c, 0xec, 0xe2, 0x19, 0x95, 0x7e, 0x26, 0xc5, 0x33, 0x0e, 0x74, 0xcc, 0xe2, - 0x19, 0x97, 0x3e, 0x69, 0xf1, 0x8c, 0xc3, 0xbc, 0x2a, 0x9e, 0x7d, 0x31, 0x8b, 0x67, 0xdf, 0x3e, - 0xa2, 0x78, 0xb6, 0x3c, 0x68, 0xd0, 0xce, 0xfd, 0xe4, 0xf3, 0xae, 0x9d, 0x6d, 0x02, 0x44, 0x32, - 0xfe, 0xd7, 0x8f, 0x93, 0xf0, 0x47, 0x00, 0x5e, 0x8c, 0x52, 0x9c, 0x7c, 0x74, 0x29, 0xee, 0xf2, - 0x20, 0xa5, 0x38, 0x6e, 0xc2, 0xde, 0x72, 0x9c, 0xf6, 0xf4, 0x72, 0xdc, 0xd2, 0x80, 0xe5, 0x38, - 0x3e, 0xce, 0x0b, 0xf2, 0xf9, 0xc1, 0x47, 0x47, 0x7e, 0x7e, 0x70, 0x65, 0xa0, 0x2a, 0x15, 0x5f, - 0xf5, 0x4b, 0xfd, 0x09, 0x42, 0xe4, 0x3b, 0x81, 0x1f, 0x08, 0x30, 0xea, 0x5f, 0xe8, 0xe8, 0x5d, - 0x18, 0xe1, 0xaf, 0xd9, 0xfc, 0xb6, 0x3d, 0x9f, 0xed, 0x21, 0x5c, 0xf2, 0xc5, 0xd0, 0x0c, 0x0c, - 0xdb, 0x0e, 0x21, 0x2a, 0x7f, 0xd8, 0xf4, 0x3a, 0xe8, 0x1c, 0x4c, 0x58, 0x36, 0x51, 0x34, 0x87, - 0x7a, 0x6e, 0x53, 0x73, 0x1d, 0x76, 0x79, 0x0e, 0x49, 0xe3, 0x01, 0xb5, 0xa6, 0xb9, 0x8e, 0xd8, - 0x86, 0x51, 0x3f, 0x1e, 0x40, 0x5b, 0x30, 0x66, 0xe9, 0x58, 0x33, 0x5c, 0xf2, 0xd0, 0x4f, 0xbb, - 0xae, 0x0c, 0x10, 0x50, 0x78, 0x82, 0x52, 0x88, 0x81, 0xa6, 0xa0, 0x40, 0x23, 0x77, 0x6f, 0x5e, - 0xb4, 0x29, 0x9e, 0x87, 0x09, 0xca, 0xbd, 0xa6, 0x59, 0x2d, 0x62, 0x33, 0x9e, 0xf4, 0x17, 0x77, - 0x05, 0xc6, 0x63, 0xa8, 0xe8, 0xeb, 0x50, 0x74, 0x88, 0xa1, 0x06, 0x6f, 0xd5, 0x59, 0xb5, 0xc4, - 0xa5, 0x10, 0x82, 0x21, 0xb6, 0xac, 0x3c, 0x0b, 0xe3, 0x58, 0x5b, 0xfc, 0x7d, 0xc1, 0x5b, 0x3c, - 0x2b, 0xa4, 0x34, 0x92, 0x85, 0x94, 0xe5, 0x41, 0xde, 0x26, 0xd3, 0xca, 0x28, 0x9b, 0x89, 0x32, - 0xca, 0xd2, 0x40, 0x80, 0x3d, 0x45, 0x94, 0x5f, 0x45, 0x8a, 0x28, 0x12, 0x80, 0x12, 0xa8, 0x90, - 0xcf, 0x77, 0x31, 0x2b, 0x7c, 0xa8, 0x7c, 0x29, 0x82, 0x12, 0xb7, 0x7e, 0xfe, 0xe4, 0xd6, 0x9f, - 0xdd, 0x09, 0xea, 0x22, 0xcf, 0x61, 0xba, 0xb5, 0x52, 0xe4, 0x35, 0x59, 0xfc, 0x85, 0x5f, 0x47, - 0x60, 0x7e, 0xec, 0x7f, 0x92, 0x20, 0x0c, 0xf8, 0x49, 0x02, 0x9a, 0x85, 0x51, 0xff, 0x60, 0xe6, - 0xf9, 0x40, 0xd0, 0x47, 0x73, 0x00, 0x36, 0x36, 0x54, 0xb3, 0xad, 0x7d, 0x1c, 0x14, 0x0f, 0x22, - 0x14, 0xba, 0xdf, 0xba, 0x98, 0xc6, 0xf6, 0x4d, 0xdd, 0xfb, 0xb0, 0xc0, 0x4f, 0x58, 0x19, 0xb5, - 0xc6, 0x89, 0xe2, 0x23, 0xc1, 0xcf, 0xe0, 0xd9, 0x54, 0x57, 0x60, 0x98, 0xfd, 0x9f, 0xcf, 0xb5, - 0xdf, 0xa7, 0x2b, 0xdb, 0x94, 0x57, 0xf2, 0x44, 0xd0, 0x06, 0x94, 0x55, 0xe2, 0xb8, 0xb2, 0x7f, - 0x7c, 0xe4, 0x07, 0xda, 0x18, 0x25, 0x2a, 0xbb, 0x9a, 0x3c, 0x42, 0x0a, 0x89, 0x23, 0x24, 0xc3, - 0x92, 0x6a, 0x7f, 0xcf, 0x7f, 0xfa, 0x78, 0x4e, 0x78, 0xf4, 0x78, 0x4e, 0xf8, 0xdb, 0xe3, 0x39, - 0xe1, 0x93, 0x27, 0x73, 0xb9, 0x47, 0x4f, 0xe6, 0x72, 0x7f, 0x79, 0x32, 0x97, 0x83, 0xf3, 0x8a, - 0xd9, 0xce, 0x60, 0xe7, 0xda, 0x54, 0x34, 0xd1, 0xb3, 0x4d, 0xd7, 0x6c, 0x08, 0x0f, 0x9a, 0x7b, - 0x9a, 0xdb, 0xea, 0x34, 0xab, 0x8a, 0xd9, 0x5e, 0x50, 0x4c, 0xa7, 0x6d, 0x3a, 0x0b, 0x36, 0xd1, - 0xf1, 0x21, 0xb1, 0x17, 0xba, 0x8b, 0x41, 0x93, 0xe5, 0x63, 0xce, 0x42, 0xff, 0xdf, 0x12, 0xbc, - 0x13, 0x21, 0xfa, 0xb4, 0x9f, 0xe7, 0x0b, 0x8d, 0xb5, 0xbb, 0xbf, 0xcc, 0x8b, 0x0d, 0x7f, 0x8a, - 0x6b, 0x74, 0x8a, 0x91, 0xc9, 0x54, 0xb7, 0x39, 0xeb, 0x1f, 0x42, 0xa6, 0x1d, 0xca, 0xb4, 0x13, - 0x61, 0xda, 0xf1, 0x99, 0x1e, 0xe7, 0xab, 0xfd, 0x99, 0x76, 0xde, 0x6f, 0xd4, 0x36, 0x89, 0x8b, - 0x55, 0xec, 0xe2, 0x7f, 0xe6, 0xcf, 0xf9, 0x02, 0x2b, 0x2b, 0x54, 0x62, 0x65, 0x25, 0x22, 0xb2, - 0xb2, 0xe2, 0xcb, 0x34, 0x8b, 0xec, 0x37, 0x00, 0x4b, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xa7, - 0x60, 0xeb, 0xa7, 0x35, 0x31, 0x00, 0x00, + // 2795 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x6f, 0xe3, 0xc6, + 0xf5, 0x17, 0x25, 0xdb, 0x6b, 0x3f, 0xc9, 0x5a, 0x7b, 0xf6, 0x47, 0xf4, 0x35, 0xbe, 0x70, 0x16, + 0x4c, 0xb2, 0xf5, 0x6e, 0x12, 0x39, 0xeb, 0xdd, 0x4d, 0x50, 0x27, 0x6d, 0x63, 0xd9, 0xd9, 0xc8, + 0xbb, 0xf1, 0x5a, 0xa1, 0x53, 0xbb, 0x49, 0x9d, 0xb0, 0x23, 0x72, 0x6c, 0x11, 0x96, 0x48, 0x96, + 0xa4, 0xe4, 0x75, 0xfe, 0x81, 0xa6, 0x97, 0x22, 0x05, 0x7a, 0x28, 0x7a, 0x29, 0x50, 0xe4, 0xd4, + 0x43, 0xff, 0x80, 0x16, 0x3d, 0x37, 0x68, 0x2f, 0x01, 0x7a, 0x29, 0x10, 0x14, 0x48, 0x37, 0xa7, + 0xfe, 0xb8, 0xf4, 0xdc, 0x4b, 0x31, 0x3f, 0x38, 0x24, 0x25, 0x7a, 0x45, 0xd9, 0x4e, 0x83, 0xfc, + 0x38, 0x99, 0xf3, 0xfc, 0xde, 0x67, 0x66, 0xde, 0x7b, 0x33, 0xf3, 0xde, 0x9b, 0x11, 0xdc, 0x72, + 0x89, 0xdd, 0xed, 0x34, 0x3d, 0xbc, 0x68, 0x38, 0x1e, 0x59, 0x0c, 0x3c, 0x6c, 0xfb, 0xd8, 0x08, + 0x2c, 0xc7, 0x5e, 0xec, 0xdd, 0xc0, 0x6d, 0xb7, 0x85, 0x6f, 0xc4, 0x89, 0x55, 0xd7, 0x73, 0x02, + 0x07, 0xa9, 0xa1, 0x54, 0x95, 0x4a, 0x55, 0xe3, 0x0c, 0xa1, 0xd4, 0xdc, 0xf5, 0x24, 0xb2, 0xe1, + 0x1d, 0xb9, 0x81, 0x13, 0x81, 0xf2, 0x36, 0xc7, 0x9b, 0x5b, 0x48, 0xf2, 0xfa, 0x01, 0x3e, 0x20, + 0x11, 0x2b, 0x6b, 0x0a, 0xce, 0x27, 0x93, 0x9c, 0x56, 0xd3, 0x88, 0xf8, 0xac, 0xa6, 0x91, 0xce, + 0x65, 0x92, 0x07, 0x11, 0x97, 0x49, 0x1e, 0x08, 0xae, 0xa5, 0x24, 0xd7, 0xbe, 0xd3, 0x23, 0x9e, + 0x8d, 0x6d, 0x23, 0xd6, 0x75, 0x44, 0xe3, 0x32, 0xea, 0x6f, 0x15, 0x28, 0xbe, 0x11, 0x4d, 0x17, + 0xbd, 0x0a, 0x63, 0x4d, 0xc7, 0x3c, 0xaa, 0x28, 0x57, 0x94, 0x85, 0xe2, 0xd2, 0xcd, 0xea, 0x70, + 0xc5, 0x54, 0x63, 0xe2, 0x35, 0xc7, 0x3c, 0xd2, 0x18, 0x00, 0x7a, 0x1c, 0x8a, 0x4d, 0xcb, 0x36, + 0x2d, 0x7b, 0x5f, 0xf7, 0xad, 0xfd, 0x4a, 0xfe, 0x8a, 0xb2, 0x50, 0xd2, 0x40, 0x90, 0xb6, 0xac, + 0x7d, 0xb4, 0x02, 0x13, 0xd8, 0x36, 0x5a, 0x8e, 0x57, 0x29, 0xb0, 0xbe, 0xae, 0xf5, 0xf5, 0x25, + 0x14, 0x2a, 0xbb, 0xd9, 0x20, 0xde, 0x41, 0x9b, 0x68, 0x8e, 0x13, 0x68, 0x42, 0x50, 0xad, 0x40, + 0x7e, 0xdd, 0x44, 0x08, 0xc6, 0x5a, 0xd8, 0x6f, 0xb1, 0x21, 0x97, 0x34, 0xf6, 0xad, 0xaa, 0x00, + 0xaf, 0xec, 0xed, 0x11, 0x23, 0xa8, 0x63, 0xbf, 0x85, 0x2e, 0xc2, 0xb8, 0x65, 0xdb, 0xc4, 0x13, + 0x2c, 0xbc, 0xa1, 0x7e, 0x50, 0x80, 0xf3, 0x7d, 0x63, 0x47, 0x6b, 0x70, 0x8e, 0xb7, 0xfc, 0x8a, + 0x72, 0xa5, 0xb0, 0x50, 0x5c, 0xba, 0x9e, 0x45, 0x03, 0x2b, 0xac, 0xad, 0x85, 0xa2, 0xc8, 0x85, + 0xcb, 0x31, 0x3e, 0xdd, 0xc5, 0x1e, 0xee, 0x90, 0x80, 0x78, 0x3e, 0x53, 0x43, 0x71, 0xe9, 0x9b, + 0x23, 0xaa, 0xb5, 0x21, 0x01, 0xb4, 0x4b, 0x41, 0x1a, 0x19, 0xdd, 0x82, 0xc2, 0x1e, 0x21, 0x42, + 0x93, 0xea, 0x10, 0x4d, 0xde, 0x21, 0x44, 0xa3, 0xec, 0xe8, 0x7b, 0x50, 0x36, 0x49, 0x40, 0xf8, + 0x28, 0x4d, 0x1c, 0xe0, 0xca, 0x18, 0x03, 0xb8, 0x91, 0x65, 0x7c, 0x6b, 0xa1, 0xe4, 0x1a, 0x0e, + 0xb0, 0x36, 0x6d, 0xc6, 0x9b, 0x68, 0x1d, 0xa6, 0x3a, 0xa4, 0xe3, 0x70, 0xd0, 0x71, 0x06, 0xfa, + 0x4c, 0x16, 0xd0, 0x0d, 0xd2, 0x71, 0x18, 0xde, 0x64, 0x47, 0x7c, 0xa9, 0xeb, 0x30, 0x19, 0x52, + 0xd1, 0x75, 0x28, 0x13, 0x9b, 0x4d, 0x87, 0x98, 0x3a, 0xe5, 0xe0, 0x16, 0xad, 0xe7, 0xb4, 0x69, + 0x49, 0xa7, 0xcc, 0xef, 0x29, 0x4a, 0x6d, 0x16, 0xce, 0xeb, 0x49, 0x66, 0x75, 0x07, 0x2e, 0xa5, + 0x6a, 0x15, 0x3d, 0x01, 0xd3, 0xe4, 0x81, 0x6b, 0x79, 0x47, 0x7a, 0x8b, 0x58, 0xfb, 0xad, 0x80, + 0xc1, 0x8e, 0x69, 0x25, 0x4e, 0xac, 0x33, 0x1a, 0xfa, 0x3f, 0x98, 0x34, 0x5a, 0xd8, 0xb2, 0x75, + 0xcb, 0x64, 0x76, 0x9c, 0xd2, 0xce, 0xb1, 0xf6, 0xba, 0xa9, 0xbe, 0x0e, 0xd3, 0x09, 0x75, 0xa0, + 0x97, 0x61, 0x6a, 0xaf, 0x63, 0xea, 0x46, 0xbb, 0x4b, 0xfc, 0xca, 0x18, 0xf3, 0xa4, 0x27, 0x86, + 0x58, 0x65, 0xb5, 0xdd, 0x25, 0xda, 0xe4, 0x5e, 0xc7, 0xa4, 0x1f, 0xbe, 0xfa, 0xe7, 0x32, 0x4c, + 0x70, 0xbf, 0x42, 0x2b, 0x30, 0xee, 0xbb, 0xc4, 0x36, 0xc5, 0xa2, 0xbc, 0x96, 0x45, 0x91, 0x5b, + 0x54, 0xa0, 0x9e, 0xd3, 0xb8, 0x24, 0x5a, 0x83, 0x09, 0xa7, 0x1b, 0xb8, 0xdd, 0x40, 0x78, 0x60, + 0x26, 0xb7, 0xde, 0x64, 0x12, 0xf5, 0x9c, 0x26, 0x64, 0xd1, 0xf3, 0x30, 0xe6, 0x1f, 0x62, 0x57, + 0xb8, 0xd9, 0x95, 0x3e, 0x0c, 0xba, 0x11, 0x45, 0xfd, 0x1f, 0x62, 0xb7, 0x9e, 0xd3, 0x18, 0x3f, + 0xba, 0x03, 0x40, 0xff, 0xea, 0x46, 0x1b, 0x5b, 0x1d, 0xe1, 0x63, 0x4f, 0x0d, 0x93, 0x5e, 0xa5, + 0xcc, 0xf5, 0x9c, 0x36, 0xe5, 0x87, 0x0d, 0xb4, 0x07, 0x17, 0x7b, 0xb8, 0x6d, 0x99, 0x38, 0x70, + 0x3c, 0xdd, 0x24, 0x7b, 0x96, 0x6d, 0xd1, 0x11, 0x57, 0x66, 0x52, 0xbd, 0x96, 0x6f, 0xb3, 0x12, + 0x73, 0x3b, 0x94, 0x5c, 0x93, 0x82, 0xf5, 0x9c, 0x76, 0xa1, 0x37, 0x48, 0xa6, 0xe3, 0xb5, 0x9a, + 0x86, 0xce, 0xf5, 0x51, 0x99, 0x4d, 0x1d, 0x2f, 0xdd, 0x9c, 0x25, 0xf6, 0x7a, 0xd3, 0xe0, 0xb6, + 0xa2, 0xe3, 0xb5, 0xc2, 0x06, 0xda, 0x85, 0xf3, 0xae, 0xe7, 0xb8, 0x8e, 0x8f, 0xdb, 0xba, 0xdf, + 0x6d, 0x76, 0xac, 0xa0, 0x82, 0x52, 0x87, 0x1a, 0xdb, 0x96, 0x25, 0x66, 0x43, 0x48, 0x6e, 0x31, + 0xc1, 0x7a, 0x4e, 0x2b, 0xbb, 0x09, 0x0a, 0x6a, 0xc2, 0xac, 0x44, 0x3f, 0xb4, 0x82, 0x96, 0xe9, + 0xe1, 0xc3, 0xca, 0x85, 0xd4, 0x7d, 0xfb, 0x51, 0xf8, 0x3b, 0x42, 0xb4, 0x9e, 0xd3, 0x66, 0xdc, + 0x3e, 0x1a, 0x7a, 0x13, 0xca, 0x91, 0xc6, 0x7b, 0x4e, 0x40, 0x2a, 0x17, 0x59, 0x07, 0xcf, 0x65, + 0xe8, 0x40, 0x2a, 0x7c, 0xdb, 0x09, 0x08, 0x5d, 0xa2, 0xbd, 0x38, 0x81, 0x42, 0x9b, 0xa4, 0x4d, + 0xf6, 0x23, 0xe8, 0x4b, 0x99, 0xa1, 0xd7, 0x42, 0xc1, 0x10, 0xda, 0x8c, 0x13, 0x90, 0x03, 0x97, + 0xa5, 0x66, 0x4c, 0xe2, 0x3a, 0xbe, 0x15, 0x08, 0xdf, 0xbb, 0xcc, 0xba, 0x78, 0x61, 0x04, 0xf5, + 0xac, 0x71, 0xf9, 0xd0, 0x1b, 0x2f, 0xba, 0x29, 0x74, 0xb4, 0x09, 0xd3, 0xac, 0x45, 0xf7, 0x51, + 0xc7, 0x25, 0x76, 0x65, 0x9e, 0xf5, 0xb3, 0xf0, 0x28, 0x1f, 0x6f, 0x08, 0x81, 0x4d, 0x97, 0x50, + 0xb7, 0x29, 0xb9, 0xb1, 0x36, 0xd2, 0xa0, 0x2c, 0x01, 0x8d, 0xb6, 0xe3, 0x93, 0xca, 0xe3, 0xa9, + 0x6b, 0x3f, 0x15, 0x71, 0x95, 0x0a, 0x50, 0xad, 0xb8, 0x71, 0x02, 0xfa, 0x3e, 0xcc, 0x4a, 0x4c, + 0xe9, 0x2f, 0x57, 0x52, 0xf7, 0xe6, 0x54, 0xd8, 0x84, 0xa3, 0xf4, 0xd1, 0x10, 0x81, 0x4b, 0x12, + 0xdc, 0x23, 0x87, 0xd8, 0x33, 0x85, 0xc6, 0x55, 0xd6, 0xc1, 0x62, 0x96, 0x0e, 0x34, 0x26, 0x17, + 0x6a, 0xfa, 0x82, 0x3b, 0x48, 0x46, 0x6b, 0x30, 0x29, 0x4c, 0x4d, 0x2a, 0x0b, 0x0c, 0xf9, 0xea, + 0xa3, 0x57, 0xbd, 0xf0, 0x14, 0xaa, 0x0e, 0x29, 0x89, 0xee, 0x02, 0x74, 0x6d, 0x89, 0x73, 0x2d, + 0xd5, 0x56, 0x7d, 0x38, 0xdf, 0x95, 0xfc, 0xf5, 0x9c, 0x16, 0x93, 0x46, 0x6f, 0xc1, 0x4c, 0xd4, + 0x12, 0x73, 0xbe, 0xce, 0x10, 0x9f, 0xcd, 0x8a, 0x18, 0xce, 0xf8, 0x7c, 0x37, 0x49, 0x42, 0x77, + 0x61, 0xca, 0xc4, 0x8e, 0xce, 0x37, 0xff, 0x25, 0x06, 0xfa, 0x74, 0x96, 0xd5, 0x81, 0x9d, 0x70, + 0xfb, 0x9f, 0x34, 0xc5, 0x37, 0xda, 0x00, 0xa0, 0x58, 0xe2, 0x14, 0xb8, 0x99, 0x6a, 0xf6, 0x63, + 0xc0, 0xe4, 0x39, 0x40, 0x47, 0xc3, 0x1b, 0xa8, 0x01, 0x45, 0x0a, 0x27, 0x56, 0x57, 0xe5, 0x56, + 0xea, 0x8c, 0x8f, 0xc1, 0x13, 0x4b, 0x87, 0x2a, 0xd2, 0x94, 0x2d, 0xf4, 0x26, 0xcc, 0x58, 0x86, + 0xbf, 0xf4, 0x9c, 0xf4, 0x4d, 0xdc, 0xae, 0x7c, 0xa8, 0xa4, 0x4e, 0x3a, 0xb9, 0xf7, 0x52, 0xa1, + 0x1d, 0x29, 0x43, 0xf5, 0x68, 0x25, 0x49, 0xb5, 0x49, 0x98, 0xe0, 0x7b, 0xb9, 0xfa, 0xe3, 0x31, + 0xb8, 0x1c, 0x0f, 0x01, 0x88, 0xe7, 0xbb, 0xf4, 0xd8, 0xee, 0x11, 0xa4, 0x43, 0xc9, 0xc5, 0x47, + 0x6d, 0x07, 0x9b, 0xfa, 0x01, 0x39, 0x0a, 0xe3, 0xbf, 0x97, 0xb2, 0x1c, 0x94, 0x0d, 0x2e, 0x77, + 0x8f, 0x1c, 0xd1, 0x4e, 0x57, 0x9d, 0x4e, 0xc7, 0x0a, 0x3a, 0xc4, 0x0e, 0xb4, 0xa2, 0x2b, 0xff, + 0xe3, 0xa3, 0x1f, 0xc0, 0x0c, 0xb3, 0xa4, 0x6e, 0x77, 0xdb, 0x6d, 0x6b, 0xcf, 0xe2, 0xf1, 0x20, + 0xed, 0xe4, 0x76, 0x96, 0x4e, 0xee, 0x87, 0x52, 0xb4, 0x8f, 0xfb, 0x4e, 0x40, 0xb4, 0xf3, 0x0c, + 0x4e, 0xd2, 0x7d, 0x74, 0x07, 0x4a, 0xd8, 0xec, 0x59, 0x06, 0xd1, 0x6d, 0x27, 0x20, 0x7e, 0xa5, + 0x90, 0x29, 0xf0, 0x60, 0x58, 0x45, 0x2e, 0x48, 0xbf, 0x7d, 0xba, 0x9d, 0x61, 0xd3, 0xf4, 0x88, + 0xef, 0xeb, 0x3d, 0x8b, 0x1c, 0x86, 0x11, 0xcc, 0xf5, 0x21, 0x40, 0x2b, 0x5c, 0x66, 0xdb, 0x22, + 0x87, 0x5a, 0x09, 0x47, 0x0d, 0x9f, 0x86, 0x1f, 0x26, 0xb1, 0x9d, 0x8e, 0x5f, 0x19, 0x67, 0x48, + 0xcf, 0x0c, 0x41, 0x5a, 0xa3, 0xcc, 0x1b, 0x24, 0xc0, 0x34, 0x7e, 0xd4, 0x84, 0x2c, 0xda, 0x80, + 0x72, 0x3c, 0xac, 0xb6, 0xcc, 0xca, 0x44, 0xea, 0x16, 0x90, 0xaa, 0xbe, 0x75, 0x53, 0x9b, 0x8e, + 0xfd, 0x63, 0xdd, 0xa4, 0x39, 0x42, 0x64, 0xb8, 0x63, 0x72, 0x84, 0xdf, 0x29, 0x50, 0x39, 0xce, + 0xba, 0x68, 0x13, 0x8a, 0x31, 0x8f, 0x11, 0xd1, 0x59, 0x75, 0x34, 0x87, 0xd1, 0x20, 0x72, 0x11, + 0x74, 0x1f, 0xc0, 0x90, 0xf0, 0x22, 0x52, 0xab, 0x0e, 0x51, 0xd5, 0x56, 0x40, 0xb7, 0x8b, 0xc8, + 0xe5, 0x62, 0x08, 0xea, 0xcf, 0x14, 0x98, 0x1d, 0x70, 0x1b, 0x74, 0x07, 0xa6, 0xa4, 0x07, 0x8a, + 0x41, 0x2f, 0x0c, 0x73, 0x91, 0x90, 0x5f, 0x8b, 0x44, 0xd1, 0x0b, 0x30, 0x46, 0xdd, 0x4c, 0x8c, + 0x33, 0x93, 0x97, 0x31, 0x01, 0xf5, 0x4f, 0x4a, 0x22, 0xf1, 0xa2, 0x2e, 0x82, 0xde, 0x80, 0x29, + 0x9a, 0x36, 0x32, 0x7f, 0x13, 0x83, 0x7a, 0xe1, 0x04, 0xc9, 0x27, 0xf3, 0xbd, 0xc9, 0xa6, 0xf8, + 0xfa, 0x9f, 0x24, 0xa1, 0x9f, 0x14, 0xe0, 0x42, 0xca, 0x28, 0xd0, 0xeb, 0x50, 0x12, 0x8e, 0xca, + 0xd7, 0x10, 0xdf, 0x4f, 0xaa, 0xd9, 0xf3, 0x49, 0x36, 0x97, 0x62, 0xa4, 0xa3, 0x2f, 0x4e, 0x5e, + 0xf9, 0xf6, 0x99, 0xe5, 0x95, 0x3c, 0xb6, 0x8b, 0x11, 0xde, 0x53, 0x14, 0x74, 0x5f, 0x24, 0x97, + 0xcc, 0x57, 0x46, 0x4c, 0x2e, 0xa9, 0x22, 0xeb, 0x0a, 0x4f, 0x2f, 0xe9, 0x77, 0x98, 0x29, 0x26, + 0xc7, 0x5b, 0x2b, 0x01, 0xe8, 0xb2, 0x0f, 0xf5, 0xdf, 0x65, 0x80, 0xc8, 0x26, 0xe8, 0x95, 0x64, + 0x3e, 0xf6, 0x6c, 0xe6, 0x7c, 0x8c, 0x75, 0x2e, 0x73, 0xb2, 0x7a, 0x5f, 0x4e, 0x56, 0xcd, 0x9e, + 0x93, 0x09, 0xa0, 0x30, 0x2f, 0x5b, 0x4e, 0xe4, 0x65, 0x4f, 0x0e, 0xcb, 0xac, 0x84, 0x34, 0xcf, + 0xcd, 0xee, 0xa6, 0xe4, 0x66, 0xd7, 0x32, 0xe5, 0x66, 0x02, 0xe6, 0xeb, 0xfc, 0xec, 0xcb, 0x99, + 0x9f, 0xbd, 0x73, 0x4c, 0x7e, 0x76, 0x3b, 0xdb, 0x22, 0x8e, 0xe5, 0x63, 0xc2, 0x51, 0xbe, 0x4e, + 0xd2, 0xbe, 0x82, 0x49, 0xda, 0xb5, 0x33, 0x4a, 0xd2, 0xae, 0x9f, 0x2a, 0x49, 0xfb, 0x4a, 0x25, + 0x52, 0x69, 0x19, 0xe9, 0xd3, 0x67, 0x94, 0x91, 0x7e, 0x86, 0x49, 0xda, 0x34, 0x14, 0x63, 0xf1, + 0x92, 0xfa, 0xd3, 0x02, 0x4c, 0xc9, 0x43, 0x13, 0xbd, 0x0e, 0xe7, 0x7a, 0x96, 0x6f, 0x35, 0xdb, + 0x44, 0x1c, 0xba, 0xb7, 0x47, 0x3a, 0x74, 0xab, 0xdb, 0x5c, 0xb8, 0x9e, 0xd3, 0x42, 0x1c, 0x74, + 0x1f, 0x26, 0x1c, 0x17, 0xff, 0xb0, 0x1b, 0x06, 0xb0, 0xb7, 0x46, 0x43, 0xdc, 0x64, 0xb2, 0xec, + 0x10, 0x66, 0x5f, 0x73, 0x3f, 0x52, 0xe0, 0x9c, 0xe8, 0x06, 0x7d, 0xe7, 0xa4, 0x15, 0xdb, 0x30, + 0x36, 0x78, 0x31, 0x11, 0x5b, 0x7f, 0x23, 0x43, 0x6c, 0xcd, 0xa2, 0x45, 0x26, 0x34, 0xb7, 0x0e, + 0x13, 0x7c, 0x74, 0xa7, 0x1e, 0x07, 0x8d, 0x83, 0x78, 0xce, 0xca, 0x6c, 0xf2, 0xd7, 0x02, 0xcc, + 0x0e, 0xec, 0xec, 0xe8, 0xcd, 0x7e, 0xdb, 0x7c, 0xeb, 0x44, 0x27, 0x44, 0x9a, 0x8d, 0xb6, 0xfb, + 0x6c, 0xf4, 0xd2, 0xc9, 0x90, 0x07, 0x6c, 0xf5, 0xcb, 0x98, 0xad, 0x76, 0x06, 0xce, 0x39, 0xe5, + 0x64, 0x75, 0xc8, 0xfe, 0x03, 0xee, 0x54, 0x36, 0xc4, 0xd2, 0x86, 0x9f, 0xd5, 0xf8, 0x6a, 0x33, + 0xfd, 0xc0, 0xea, 0xbf, 0x0a, 0x00, 0x51, 0x80, 0x89, 0xb4, 0x7e, 0xc3, 0x3e, 0x3f, 0x5a, 0x84, + 0x9a, 0x66, 0xd1, 0xcd, 0x3e, 0x8b, 0xde, 0x1e, 0x11, 0x72, 0xc0, 0x94, 0x1f, 0xc7, 0x4c, 0x59, + 0x93, 0x11, 0xb5, 0x32, 0xea, 0x2d, 0x87, 0x8c, 0xa5, 0x4f, 0x63, 0xb5, 0xfe, 0x8a, 0x40, 0xe1, + 0xb4, 0x15, 0x81, 0xb9, 0xd7, 0xa4, 0x1b, 0x9c, 0xc1, 0xdc, 0xe8, 0x16, 0xcb, 0xbf, 0xf8, 0x72, + 0xfe, 0x58, 0x81, 0x71, 0x7e, 0xa6, 0xad, 0x24, 0x6e, 0x7d, 0xb3, 0x27, 0x34, 0xb1, 0xfb, 0xde, + 0xd7, 0x60, 0x12, 0x77, 0x83, 0x96, 0xcc, 0xb3, 0x07, 0x83, 0xe8, 0x81, 0xca, 0x05, 0x45, 0x58, + 0xe9, 0x06, 0xad, 0x2d, 0x6b, 0xdf, 0xc6, 0x41, 0xd7, 0x23, 0xda, 0x39, 0xcc, 0x9b, 0x68, 0x05, + 0xc6, 0x5d, 0xcf, 0x71, 0xf6, 0x84, 0x0a, 0x9f, 0x1e, 0x02, 0xf5, 0xd6, 0x3d, 0x06, 0xd6, 0xa0, + 0x22, 0x1a, 0x97, 0x54, 0x7f, 0xa1, 0x88, 0x03, 0x84, 0x5d, 0xec, 0xea, 0x80, 0x9a, 0xb8, 0x4d, + 0x57, 0x87, 0x1e, 0x2b, 0xb1, 0xa4, 0xaf, 0xa4, 0x7e, 0xf4, 0x1a, 0x17, 0x8c, 0x15, 0x59, 0x66, + 0x9b, 0xfd, 0x24, 0xf4, 0xff, 0xf1, 0xaa, 0x4a, 0x81, 0x15, 0x1a, 0x62, 0xb5, 0x92, 0x32, 0xe4, + 0xbd, 0x03, 0x96, 0x5d, 0x95, 0xb4, 0xbc, 0x77, 0xa0, 0xbe, 0xaf, 0xc0, 0x84, 0x08, 0x00, 0x6a, + 0x09, 0xdd, 0x8f, 0x90, 0x04, 0xc6, 0x94, 0x5f, 0x0b, 0xd5, 0x95, 0x4f, 0x0d, 0x47, 0x06, 0xd5, + 0xc5, 0x11, 0x12, 0xfa, 0xfa, 0x49, 0x3e, 0x5c, 0xfc, 0x4c, 0x61, 0x1b, 0x50, 0xa2, 0x2e, 0xad, + 0x0b, 0x67, 0x3c, 0xc6, 0xeb, 0xd2, 0xd6, 0x83, 0x70, 0x65, 0xad, 0x68, 0x47, 0x8d, 0x63, 0xf4, + 0x9f, 0x3f, 0x3b, 0xfd, 0x2f, 0xc0, 0xcc, 0xa1, 0x87, 0x5d, 0x57, 0xdc, 0xf5, 0xca, 0xf5, 0x57, + 0xd2, 0xca, 0x82, 0x4e, 0xd3, 0xff, 0x7b, 0xe4, 0x08, 0x5d, 0x85, 0xf3, 0x4e, 0xef, 0x40, 0x0f, + 0xb9, 0x29, 0x23, 0x37, 0xcc, 0xb4, 0xd3, 0x3b, 0xd8, 0xe1, 0xd4, 0x7b, 0xe4, 0x48, 0xfd, 0x79, + 0x1e, 0x66, 0xa9, 0x7b, 0x3a, 0x9e, 0xf5, 0x2e, 0x96, 0x37, 0xbb, 0x77, 0xa1, 0x48, 0xd8, 0xcb, + 0x02, 0x5d, 0x3e, 0x3a, 0x18, 0x5e, 0x36, 0x8a, 0xde, 0x22, 0x68, 0x40, 0xa2, 0x77, 0x09, 0x1a, + 0x14, 0xf9, 0xe9, 0x4a, 0xdd, 0x3e, 0x2c, 0x06, 0x9f, 0x60, 0xd9, 0xf0, 0x33, 0x9a, 0xd2, 0x7c, + 0x64, 0xc0, 0xc5, 0xe4, 0xae, 0x2e, 0xc0, 0x0b, 0x27, 0x05, 0x47, 0x89, 0x53, 0x83, 0x75, 0xa2, + 0xfe, 0x5e, 0x81, 0xe2, 0x8e, 0x15, 0xd8, 0xc4, 0xf7, 0x99, 0x52, 0xa2, 0x32, 0x9a, 0x72, 0xc2, + 0x32, 0x1a, 0x3a, 0x80, 0xc7, 0xfc, 0x80, 0x05, 0xac, 0xd2, 0xa6, 0x3a, 0x73, 0xcc, 0x50, 0x2f, + 0x37, 0x47, 0x2b, 0x84, 0x72, 0xdf, 0xbe, 0xe4, 0xa7, 0x50, 0x7d, 0xf5, 0xef, 0xf9, 0x44, 0x05, + 0xb2, 0xd1, 0xc6, 0x36, 0xaa, 0xf7, 0x3f, 0xfd, 0x18, 0xa1, 0x54, 0x47, 0x01, 0xa2, 0xe7, 0x1f, + 0x03, 0xaf, 0x09, 0xf2, 0x43, 0x5e, 0x13, 0x14, 0x12, 0xaf, 0x09, 0xc2, 0xa2, 0xdb, 0xd8, 0x68, + 0x45, 0xb7, 0x7b, 0x00, 0x46, 0xbb, 0x4b, 0x74, 0xb7, 0x8d, 0xed, 0xe3, 0xea, 0xec, 0xa9, 0x53, + 0x58, 0x6d, 0x77, 0x09, 0x9b, 0xc0, 0x94, 0x21, 0xbe, 0x7c, 0xf9, 0x7e, 0x83, 0x82, 0x89, 0x2a, + 0x7b, 0xe6, 0x12, 0x1b, 0xc3, 0x62, 0x05, 0x36, 0xfa, 0xa5, 0xfe, 0x53, 0x16, 0xcf, 0x98, 0x9a, + 0x4f, 0x5c, 0x3c, 0xa3, 0xd2, 0x67, 0x52, 0x3c, 0x13, 0x40, 0x27, 0x2c, 0x9e, 0x09, 0xe9, 0xd3, + 0x16, 0xcf, 0x04, 0xcc, 0xd7, 0xc5, 0xb3, 0x2f, 0x67, 0xf1, 0xec, 0xed, 0x63, 0x8a, 0x67, 0xb7, + 0x46, 0x0d, 0xda, 0x85, 0x9f, 0x7c, 0xde, 0xb5, 0xb3, 0x0d, 0x80, 0x58, 0xc6, 0xff, 0xd8, 0x49, + 0x12, 0xfe, 0x18, 0xc0, 0x17, 0xa3, 0x14, 0xa7, 0x1f, 0x5f, 0x8a, 0x7b, 0x6e, 0x94, 0x52, 0x9c, + 0x30, 0xe1, 0x60, 0x39, 0xce, 0x7a, 0x74, 0x39, 0xee, 0xe6, 0x88, 0xe5, 0x38, 0xd1, 0xcf, 0x17, + 0xe4, 0xdd, 0xc4, 0x3b, 0xc7, 0xbe, 0x9b, 0xb8, 0x31, 0x52, 0x95, 0x4a, 0xcc, 0xfa, 0x2b, 0xfd, + 0x76, 0x22, 0xfe, 0xc0, 0x41, 0x81, 0xc9, 0xf0, 0x40, 0x47, 0x2f, 0xc3, 0x39, 0x71, 0x0d, 0x2f, + 0x4e, 0xdb, 0xab, 0xd9, 0x6e, 0xf0, 0xb5, 0x50, 0x0c, 0x5d, 0x84, 0x71, 0xcf, 0x27, 0xc4, 0x14, + 0x57, 0xa7, 0xbc, 0x81, 0x9e, 0x82, 0xb2, 0xeb, 0x11, 0xc3, 0xf2, 0xa9, 0xe7, 0x36, 0xad, 0xc0, + 0x67, 0x87, 0xe7, 0x98, 0x36, 0x2d, 0xa9, 0x35, 0x2b, 0xf0, 0xd5, 0x0e, 0x7f, 0xb9, 0xc9, 0x86, + 0xb2, 0x09, 0x53, 0x6e, 0x1b, 0x5b, 0x76, 0x40, 0x1e, 0x84, 0x69, 0xd7, 0x8d, 0x11, 0x02, 0x0a, + 0x2e, 0xa8, 0x45, 0x18, 0x68, 0x06, 0x0a, 0x34, 0x72, 0xe7, 0xe3, 0xa2, 0x9f, 0xea, 0x55, 0x28, + 0x53, 0xee, 0x55, 0xcb, 0x6d, 0x11, 0x8f, 0xf1, 0xa4, 0xdf, 0xe9, 0x1b, 0x30, 0x9d, 0x40, 0x45, + 0xdf, 0x86, 0x09, 0x9f, 0xd8, 0xa6, 0xbc, 0x0d, 0xcf, 0xaa, 0x25, 0x21, 0x85, 0x10, 0x8c, 0xb1, + 0x69, 0xf1, 0x47, 0xa1, 0xec, 0x5b, 0xfd, 0x43, 0x81, 0x4f, 0x9e, 0x15, 0x52, 0x1a, 0xfd, 0x85, + 0x94, 0x5b, 0xa3, 0x5c, 0x57, 0xa6, 0x95, 0x51, 0x36, 0xfa, 0xca, 0x28, 0x37, 0x47, 0x02, 0x1c, + 0x28, 0xa2, 0xfc, 0x26, 0x56, 0x44, 0xd1, 0x00, 0x0c, 0xa9, 0x42, 0x31, 0xde, 0xa5, 0xac, 0xf0, + 0x91, 0xf2, 0xb5, 0x18, 0x4a, 0xd2, 0xfa, 0xf9, 0xd3, 0x5b, 0x7f, 0x6e, 0x57, 0xd6, 0x45, 0x3e, + 0x83, 0xe1, 0xd6, 0x8a, 0xb1, 0x0b, 0x66, 0xf5, 0x3f, 0x61, 0x1d, 0x81, 0xf9, 0x71, 0xf8, 0xe8, + 0x41, 0x19, 0xf1, 0xd1, 0x03, 0x9a, 0x83, 0xc9, 0x70, 0x63, 0x16, 0xf9, 0x80, 0x6c, 0xa3, 0x79, + 0x00, 0x0f, 0xdb, 0xa6, 0xd3, 0xb1, 0xde, 0x95, 0xc5, 0x83, 0x18, 0x85, 0xae, 0xb7, 0x1e, 0xa6, + 0xb1, 0x7d, 0xb3, 0xcd, 0x9f, 0x2e, 0x84, 0x09, 0x2b, 0xa3, 0xd6, 0x04, 0x91, 0xa6, 0xc0, 0x2c, + 0x63, 0x92, 0x6c, 0xba, 0xc7, 0xae, 0xc7, 0x4b, 0x2c, 0xba, 0x72, 0xf6, 0x42, 0x46, 0x2d, 0x85, + 0xd3, 0x67, 0x51, 0x7e, 0x3f, 0xe7, 0x96, 0xfa, 0x81, 0xac, 0x0a, 0xb0, 0xe9, 0x2f, 0xc3, 0x38, + 0xeb, 0x53, 0xcc, 0xff, 0xc9, 0x21, 0xf3, 0xdf, 0xa6, 0xbc, 0x1a, 0x17, 0x41, 0xeb, 0x50, 0x32, + 0x89, 0x1f, 0xe8, 0xe1, 0x96, 0x94, 0x1f, 0x69, 0xb1, 0x15, 0xa9, 0xec, 0x4a, 0xff, 0xb6, 0x54, + 0xe8, 0xdb, 0x96, 0x3e, 0x27, 0x35, 0xd5, 0xfe, 0x96, 0xff, 0xf0, 0xe1, 0xbc, 0xf2, 0xd1, 0xc3, + 0x79, 0xe5, 0x93, 0x87, 0xf3, 0xca, 0xfb, 0x9f, 0xce, 0xe7, 0x3e, 0xfa, 0x74, 0x3e, 0xf7, 0x97, + 0x4f, 0xe7, 0x73, 0x70, 0xd5, 0x70, 0x3a, 0x19, 0xfc, 0xb1, 0x36, 0x13, 0x4f, 0x48, 0x3d, 0x27, + 0x70, 0x1a, 0xca, 0x5b, 0xcd, 0x7d, 0x2b, 0x68, 0x75, 0x9b, 0x55, 0xc3, 0xe9, 0x2c, 0x1a, 0x8e, + 0xdf, 0x71, 0xfc, 0x45, 0x8f, 0xb4, 0xf1, 0x11, 0xf1, 0x16, 0x7b, 0x4b, 0xf2, 0x93, 0xe5, 0x8d, + 0xfe, 0xe2, 0xf0, 0x5f, 0xbe, 0xbc, 0x18, 0x23, 0x86, 0xb4, 0x5f, 0xe5, 0x0b, 0x8d, 0xd5, 0x37, + 0x7e, 0x9d, 0x57, 0x1b, 0xe1, 0x10, 0x57, 0xe9, 0x10, 0x63, 0x83, 0xa9, 0x6e, 0x0b, 0xd6, 0x3f, + 0x46, 0x4c, 0xbb, 0x94, 0x69, 0x37, 0xc6, 0xb4, 0x1b, 0x32, 0x3d, 0xcc, 0x57, 0x87, 0x33, 0xed, + 0xbe, 0xda, 0xa8, 0x85, 0xcf, 0xbb, 0xfe, 0x91, 0x7f, 0x2a, 0x14, 0x58, 0x5e, 0xa6, 0x12, 0xcb, + 0xcb, 0x31, 0x91, 0xe5, 0xe5, 0x50, 0xa6, 0x39, 0xc1, 0x7e, 0xb1, 0x72, 0xf3, 0xbf, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x96, 0xcf, 0xfa, 0xae, 0xe3, 0x33, 0x00, 0x00, } func (m *Transaction) Marshal() (dAtA []byte, err error) { @@ -3671,32 +3879,21 @@ func (m *TransactionBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.XEncryptedMemo != nil { + if m.MemoData != nil { { - size := m.XEncryptedMemo.Size() - i -= size - if _, err := m.XEncryptedMemo.MarshalTo(dAtA[i:]); err != nil { + size, err := m.MemoData.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { return 0, err } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x2a } - if len(m.FmdClues) > 0 { - for iNdEx := len(m.FmdClues) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.FmdClues[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTransaction(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - } - if m.Fee != nil { + if m.DetectionData != nil { { - size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.DetectionData.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3706,17 +3903,29 @@ func (m *TransactionBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x22 } - if len(m.ChainId) > 0 { - i -= len(m.ChainId) - copy(dAtA[i:], m.ChainId) - i = encodeVarintTransaction(dAtA, i, uint64(len(m.ChainId))) + if m.Fee != nil { + { + size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x1a } - if m.ExpiryHeight != 0 { - i = encodeVarintTransaction(dAtA, i, uint64(m.ExpiryHeight)) + if m.TransactionParameters != nil { + { + size, err := m.TransactionParameters.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x10 + dAtA[i] = 0x12 } if len(m.Actions) > 0 { for iNdEx := len(m.Actions) - 1; iNdEx >= 0; iNdEx-- { @@ -3735,22 +3944,126 @@ func (m *TransactionBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *TransactionBody_EncryptedMemo) MarshalTo(dAtA []byte) (int, error) { +func (m *MemoData) 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 *MemoData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MemoData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XEncryptedMemo != nil { + { + size := m.XEncryptedMemo.Size() + i -= size + if _, err := m.XEncryptedMemo.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *MemoData_EncryptedMemo) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionBody_EncryptedMemo) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MemoData_EncryptedMemo) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) if m.EncryptedMemo != nil { i -= len(m.EncryptedMemo) copy(dAtA[i:], m.EncryptedMemo) i = encodeVarintTransaction(dAtA, i, uint64(len(m.EncryptedMemo))) i-- - dAtA[i] = 0x32 + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *TransactionParameters) 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 *TransactionParameters) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionParameters) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ChainId) > 0 { + i -= len(m.ChainId) + copy(dAtA[i:], m.ChainId) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ChainId))) + i-- + dAtA[i] = 0x12 + } + if m.ExpiryHeight != 0 { + i = encodeVarintTransaction(dAtA, i, uint64(m.ExpiryHeight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *DetectionData) 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 *DetectionData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DetectionData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.FmdClues) > 0 { + for iNdEx := len(m.FmdClues) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.FmdClues[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } } return len(dAtA) - i, nil } + func (m *Action) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4301,6 +4614,18 @@ func (m *TransactionPerspective) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if m.TransactionId != nil { + { + size, err := m.TransactionId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } if len(m.Denoms) > 0 { for iNdEx := len(m.Denoms) - 1; iNdEx >= 0; iNdEx-- { { @@ -4581,18 +4906,13 @@ func (m *TransactionBodyView) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } } - if len(m.FmdClues) > 0 { - for iNdEx := len(m.FmdClues) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.FmdClues[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTransaction(dAtA, i, uint64(size)) + if m.XDetectionData != nil { + { + size := m.XDetectionData.Size() + i -= size + if _, err := m.XDetectionData.MarshalTo(dAtA[i:]); err != nil { + return 0, err } - i-- - dAtA[i] = 0x2a } } if m.Fee != nil { @@ -4605,19 +4925,19 @@ func (m *TransactionBodyView) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintTransaction(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x22 - } - if len(m.ChainId) > 0 { - i -= len(m.ChainId) - copy(dAtA[i:], m.ChainId) - i = encodeVarintTransaction(dAtA, i, uint64(len(m.ChainId))) - i-- dAtA[i] = 0x1a } - if m.ExpiryHeight != 0 { - i = encodeVarintTransaction(dAtA, i, uint64(m.ExpiryHeight)) + if m.TransactionParameters != nil { + { + size, err := m.TransactionParameters.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x10 + dAtA[i] = 0x12 } if len(m.ActionViews) > 0 { for iNdEx := len(m.ActionViews) - 1; iNdEx >= 0; iNdEx-- { @@ -4636,6 +4956,27 @@ func (m *TransactionBodyView) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *TransactionBodyView_DetectionData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionBodyView_DetectionData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DetectionData != nil { + { + size, err := m.DetectionData.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTransaction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} func (m *TransactionBodyView_MemoView) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) @@ -4653,7 +4994,7 @@ func (m *TransactionBodyView_MemoView) MarshalToSizedBuffer(dAtA []byte) (int, e i = encodeVarintTransaction(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x32 + dAtA[i] = 0x2a } return len(dAtA) - i, nil } @@ -6949,6 +7290,20 @@ func (m *SpendPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ProofBlindingS) > 0 { + i -= len(m.ProofBlindingS) + copy(dAtA[i:], m.ProofBlindingS) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ProofBlindingS))) + i-- + dAtA[i] = 0x32 + } + if len(m.ProofBlindingR) > 0 { + i -= len(m.ProofBlindingR) + copy(dAtA[i:], m.ProofBlindingR) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ProofBlindingR))) + i-- + dAtA[i] = 0x2a + } if len(m.ValueBlinding) > 0 { i -= len(m.ValueBlinding) copy(dAtA[i:], m.ValueBlinding) @@ -7003,6 +7358,20 @@ func (m *OutputPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ProofBlindingS) > 0 { + i -= len(m.ProofBlindingS) + copy(dAtA[i:], m.ProofBlindingS) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ProofBlindingS))) + i-- + dAtA[i] = 0x32 + } + if len(m.ProofBlindingR) > 0 { + i -= len(m.ProofBlindingR) + copy(dAtA[i:], m.ProofBlindingR) + i = encodeVarintTransaction(dAtA, i, uint64(len(m.ProofBlindingR))) + i-- + dAtA[i] = 0x2a + } if len(m.ValueBlinding) > 0 { i -= len(m.ValueBlinding) copy(dAtA[i:], m.ValueBlinding) @@ -7114,30 +7483,38 @@ func (m *TransactionBody) Size() (n int) { n += 1 + l + sovTransaction(uint64(l)) } } - if m.ExpiryHeight != 0 { - n += 1 + sovTransaction(uint64(m.ExpiryHeight)) - } - l = len(m.ChainId) - if l > 0 { + if m.TransactionParameters != nil { + l = m.TransactionParameters.Size() n += 1 + l + sovTransaction(uint64(l)) } if m.Fee != nil { l = m.Fee.Size() n += 1 + l + sovTransaction(uint64(l)) } - if len(m.FmdClues) > 0 { - for _, e := range m.FmdClues { - l = e.Size() - n += 1 + l + sovTransaction(uint64(l)) - } + if m.DetectionData != nil { + l = m.DetectionData.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + if m.MemoData != nil { + l = m.MemoData.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *MemoData) Size() (n int) { + if m == nil { + return 0 } + var l int + _ = l if m.XEncryptedMemo != nil { n += m.XEncryptedMemo.Size() } return n } -func (m *TransactionBody_EncryptedMemo) Size() (n int) { +func (m *MemoData_EncryptedMemo) Size() (n int) { if m == nil { return 0 } @@ -7149,6 +7526,37 @@ func (m *TransactionBody_EncryptedMemo) Size() (n int) { } return n } +func (m *TransactionParameters) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ExpiryHeight != 0 { + n += 1 + sovTransaction(uint64(m.ExpiryHeight)) + } + l = len(m.ChainId) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} + +func (m *DetectionData) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FmdClues) > 0 { + for _, e := range m.FmdClues { + l = e.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + } + return n +} + func (m *Action) Size() (n int) { if m == nil { return 0 @@ -7461,6 +7869,10 @@ func (m *TransactionPerspective) Size() (n int) { n += 1 + l + sovTransaction(uint64(l)) } } + if m.TransactionId != nil { + l = m.TransactionId.Size() + n += 1 + l + sovTransaction(uint64(l)) + } return n } @@ -7544,22 +7956,16 @@ func (m *TransactionBodyView) Size() (n int) { n += 1 + l + sovTransaction(uint64(l)) } } - if m.ExpiryHeight != 0 { - n += 1 + sovTransaction(uint64(m.ExpiryHeight)) - } - l = len(m.ChainId) - if l > 0 { + if m.TransactionParameters != nil { + l = m.TransactionParameters.Size() n += 1 + l + sovTransaction(uint64(l)) } if m.Fee != nil { l = m.Fee.Size() n += 1 + l + sovTransaction(uint64(l)) } - if len(m.FmdClues) > 0 { - for _, e := range m.FmdClues { - l = e.Size() - n += 1 + l + sovTransaction(uint64(l)) - } + if m.XDetectionData != nil { + n += m.XDetectionData.Size() } if m.XMemoView != nil { n += m.XMemoView.Size() @@ -7567,19 +7973,31 @@ func (m *TransactionBodyView) Size() (n int) { return n } -func (m *TransactionBodyView_MemoView) Size() (n int) { +func (m *TransactionBodyView_DetectionData) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.MemoView != nil { - l = m.MemoView.Size() + if m.DetectionData != nil { + l = m.DetectionData.Size() n += 1 + l + sovTransaction(uint64(l)) } return n } -func (m *ActionView) Size() (n int) { +func (m *TransactionBodyView_MemoView) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MemoView != nil { + l = m.MemoView.Size() + n += 1 + l + sovTransaction(uint64(l)) + } + return n +} +func (m *ActionView) Size() (n int) { if m == nil { return 0 } @@ -8651,6 +9069,14 @@ func (m *SpendPlan) Size() (n int) { if l > 0 { n += 1 + l + sovTransaction(uint64(l)) } + l = len(m.ProofBlindingR) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.ProofBlindingS) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } return n } @@ -8676,6 +9102,14 @@ func (m *OutputPlan) Size() (n int) { if l > 0 { n += 1 + l + sovTransaction(uint64(l)) } + l = len(m.ProofBlindingR) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } + l = len(m.ProofBlindingS) + if l > 0 { + n += 1 + l + sovTransaction(uint64(l)) + } return n } @@ -9073,10 +9507,10 @@ func (m *TransactionBody) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExpiryHeight", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TransactionParameters", wireType) } - m.ExpiryHeight = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTransaction @@ -9086,16 +9520,33 @@ func (m *TransactionBody) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ExpiryHeight |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TransactionParameters == nil { + m.TransactionParameters = &TransactionParameters{} + } + if err := m.TransactionParameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTransaction @@ -9105,27 +9556,31 @@ func (m *TransactionBody) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTransaction } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTransaction } if postIndex > l { return io.ErrUnexpectedEOF } - m.ChainId = string(dAtA[iNdEx:postIndex]) + if m.Fee == nil { + m.Fee = &v1alpha1.Fee{} + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DetectionData", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9149,17 +9604,287 @@ func (m *TransactionBody) Unmarshal(dAtA []byte) error { if postIndex < 0 { return ErrInvalidLengthTransaction } - if postIndex > l { + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DetectionData == nil { + m.DetectionData = &DetectionData{} + } + if err := m.DetectionData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemoData", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MemoData == nil { + m.MemoData = &MemoData{} + } + if err := m.MemoData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MemoData) 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 ErrIntOverflowTransaction + } + 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: MemoData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MemoData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EncryptedMemo", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := make([]byte, postIndex-iNdEx) + copy(v, dAtA[iNdEx:postIndex]) + m.XEncryptedMemo = &MemoData_EncryptedMemo{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionParameters) 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 ErrIntOverflowTransaction + } + 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: TransactionParameters: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TransactionParameters: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpiryHeight", wireType) + } + m.ExpiryHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpiryHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + 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 ErrInvalidLengthTransaction + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChainId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTransaction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTransaction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DetectionData) 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 ErrIntOverflowTransaction + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - if m.Fee == nil { - m.Fee = &v1alpha1.Fee{} - } - if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 5: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DetectionData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DetectionData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field FmdClues", wireType) } @@ -9193,39 +9918,6 @@ func (m *TransactionBody) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EncryptedMemo", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransaction - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTransaction - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthTransaction - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := make([]byte, postIndex-iNdEx) - copy(v, dAtA[iNdEx:postIndex]) - m.XEncryptedMemo = &TransactionBody_EncryptedMemo{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTransaction(dAtA[iNdEx:]) @@ -10261,11 +10953,47 @@ func (m *TransactionPerspective) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Denoms = append(m.Denoms, &v1alpha1.Denom{}) + m.Denoms = append(m.Denoms, &v1alpha1.DenomMetadata{}) if err := m.Denoms[len(m.Denoms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TransactionId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TransactionId == nil { + m.TransactionId = &Id{} + } + if err := m.TransactionId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTransaction(dAtA[iNdEx:]) @@ -10835,29 +11563,10 @@ func (m *TransactionBodyView) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExpiryHeight", wireType) - } - m.ExpiryHeight = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTransaction - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ExpiryHeight |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TransactionParameters", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTransaction @@ -10867,25 +11576,29 @@ func (m *TransactionBodyView) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTransaction } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTransaction } if postIndex > l { return io.ErrUnexpectedEOF } - m.ChainId = string(dAtA[iNdEx:postIndex]) + if m.TransactionParameters == nil { + m.TransactionParameters = &TransactionParameters{} + } + if err := m.TransactionParameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 4: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) } @@ -10921,9 +11634,9 @@ func (m *TransactionBodyView) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 5: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FmdClues", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DetectionData", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10950,12 +11663,13 @@ func (m *TransactionBodyView) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FmdClues = append(m.FmdClues, &v1alpha1.Clue{}) - if err := m.FmdClues[len(m.FmdClues)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + v := &DetectionData{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } + m.XDetectionData = &TransactionBodyView_DetectionData{v} iNdEx = postIndex - case 6: + case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field MemoView", wireType) } @@ -15751,6 +16465,74 @@ func (m *SpendPlan) Unmarshal(dAtA []byte) error { m.ValueBlinding = []byte{} } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingR", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProofBlindingR = append(m.ProofBlindingR[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingR == nil { + m.ProofBlindingR = []byte{} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingS", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProofBlindingS = append(m.ProofBlindingS[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingS == nil { + m.ProofBlindingS = []byte{} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTransaction(dAtA[iNdEx:]) @@ -15941,6 +16723,74 @@ func (m *OutputPlan) Unmarshal(dAtA []byte) error { m.ValueBlinding = []byte{} } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingR", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProofBlindingR = append(m.ProofBlindingR[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingR == nil { + m.ProofBlindingR = []byte{} + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProofBlindingS", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTransaction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTransaction + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTransaction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProofBlindingS = append(m.ProofBlindingS[:0], dAtA[iNdEx:postIndex]...) + if m.ProofBlindingS == nil { + m.ProofBlindingS = []byte{} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTransaction(dAtA[iNdEx:]) diff --git a/relayer/chains/penumbra/keys.go b/relayer/chains/penumbra/keys.go index aa09fa7b1..0c6131fda 100644 --- a/relayer/chains/penumbra/keys.go +++ b/relayer/chains/penumbra/keys.go @@ -66,6 +66,13 @@ func (cc *PenumbraProvider) AddKey(name string, coinType uint32, signingAlgorith return ko, nil } +// Updates config.yaml chain with the specified key. +// It fails config is already using the same key or if the key does not exist +func (cc *PenumbraProvider) UseKey(key string) error { + cc.PCfg.Key = key + return nil +} + // RestoreKey converts a mnemonic to a private key and BIP-39 HD Path and persists it to the keystore. // It fails if there is an existing key with the same address. func (cc *PenumbraProvider) RestoreKey(name, mnemonic string, coinType uint32, signingAlgorithm string) (address string, err error) { diff --git a/relayer/chains/penumbra/log.go b/relayer/chains/penumbra/log.go index 3c4661cc5..b1f110cf0 100644 --- a/relayer/chains/penumbra/log.go +++ b/relayer/chains/penumbra/log.go @@ -6,6 +6,7 @@ import ( "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" typestx "github.com/cosmos/cosmos-sdk/types/tx" + feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" "github.com/cosmos/relayer/v2/relayer/provider" @@ -151,6 +152,18 @@ func getFeePayer(tx *typestx.Tx) string { case *clienttypes.MsgUpdateClient: // Same failure mode as MsgCreateClient. return firstMsg.Signer + case *clienttypes.MsgUpgradeClient: + return firstMsg.Signer + case *clienttypes.MsgSubmitMisbehaviour: + return firstMsg.Signer + case *feetypes.MsgRegisterPayee: + return firstMsg.Relayer + case *feetypes.MsgRegisterCounterpartyPayee: + return firstMsg.Relayer + case *feetypes.MsgPayPacketFee: + return firstMsg.Signer + case *feetypes.MsgPayPacketFeeAsync: + return firstMsg.PacketFee.RefundAddress default: return firstMsg.GetSigners()[0].String() } diff --git a/relayer/chains/penumbra/message_handlers.go b/relayer/chains/penumbra/message_handlers.go index 69f3b3538..22b570eb6 100644 --- a/relayer/chains/penumbra/message_handlers.go +++ b/relayer/chains/penumbra/message_handlers.go @@ -63,18 +63,18 @@ func (pcp *PenumbraChainProcessor) handleChannelMessage(eventType string, ci pro } } if !found { - pcp.channelStateCache[channelKey] = false + pcp.channelStateCache.SetOpen(channelKey, false, ci.Order) } } else { switch eventType { case chantypes.EventTypeChannelOpenTry: - pcp.channelStateCache[channelKey] = false + pcp.channelStateCache.SetOpen(channelKey, false, ci.Order) case chantypes.EventTypeChannelOpenAck, chantypes.EventTypeChannelOpenConfirm: - pcp.channelStateCache[channelKey] = true + pcp.channelStateCache.SetOpen(channelKey, true, ci.Order) case chantypes.EventTypeChannelCloseConfirm: for k := range pcp.channelStateCache { if k.PortID == ci.PortID && k.ChannelID == ci.ChannelID { - pcp.channelStateCache[k] = false + pcp.channelStateCache.SetOpen(channelKey, false, ci.Order) break } } diff --git a/relayer/chains/penumbra/msg.go b/relayer/chains/penumbra/msg.go index 689a3267d..951529b0a 100644 --- a/relayer/chains/penumbra/msg.go +++ b/relayer/chains/penumbra/msg.go @@ -5,10 +5,10 @@ import ( "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/gogoproto/proto" chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" "github.com/cosmos/relayer/v2/relayer/chains/cosmos" "github.com/cosmos/relayer/v2/relayer/provider" - "github.com/gogo/protobuf/proto" "go.uber.org/zap/zapcore" ) diff --git a/relayer/chains/penumbra/penumbra_chain_processor.go b/relayer/chains/penumbra/penumbra_chain_processor.go index b140b87f5..2f741d589 100644 --- a/relayer/chains/penumbra/penumbra_chain_processor.go +++ b/relayer/chains/penumbra/penumbra_chain_processor.go @@ -257,12 +257,13 @@ func (pcp *PenumbraChainProcessor) initializeChannelState(ctx context.Context) e continue } pcp.channelConnections[ch.ChannelId] = ch.ConnectionHops[0] - pcp.channelStateCache[processor.ChannelKey{ + k := processor.ChannelKey{ ChannelID: ch.ChannelId, PortID: ch.PortId, CounterpartyChannelID: ch.Counterparty.ChannelId, CounterpartyPortID: ch.Counterparty.PortId, - }] = ch.State == chantypes.OPEN + } + pcp.channelStateCache.SetOpen(k, ch.State == chantypes.OPEN, ch.Ordering) } return nil } diff --git a/relayer/chains/penumbra/provider.go b/relayer/chains/penumbra/provider.go index 036d059f2..92918b3d0 100644 --- a/relayer/chains/penumbra/provider.go +++ b/relayer/chains/penumbra/provider.go @@ -37,27 +37,28 @@ var ( const cometEncodingThreshold = "v0.37.0-alpha" type PenumbraProviderConfig struct { - KeyDirectory string `json:"key-directory" yaml:"key-directory"` - Key string `json:"key" yaml:"key"` - ChainName string `json:"-" yaml:"-"` - ChainID string `json:"chain-id" yaml:"chain-id"` - RPCAddr string `json:"rpc-addr" yaml:"rpc-addr"` - AccountPrefix string `json:"account-prefix" yaml:"account-prefix"` - KeyringBackend string `json:"keyring-backend" yaml:"keyring-backend"` - GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` - GasPrices string `json:"gas-prices" yaml:"gas-prices"` - MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` - MaxGasAmount uint64 `json:"max-gas-amount" yaml:"max-gas-amount"` - Debug bool `json:"debug" yaml:"debug"` - Timeout string `json:"timeout" yaml:"timeout"` - BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` - OutputFormat string `json:"output-format" yaml:"output-format"` - SignModeStr string `json:"sign-mode" yaml:"sign-mode"` - ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` - Modules []module.AppModuleBasic `json:"-" yaml:"-"` - Slip44 int `json:"coin-type" yaml:"coin-type"` - Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` - MinLoopDuration time.Duration `json:"min-loop-duration" yaml:"min-loop-duration"` + KeyDirectory string `json:"key-directory" yaml:"key-directory"` + Key string `json:"key" yaml:"key"` + ChainName string `json:"-" yaml:"-"` + ChainID string `json:"chain-id" yaml:"chain-id"` + RPCAddr string `json:"rpc-addr" yaml:"rpc-addr"` + AccountPrefix string `json:"account-prefix" yaml:"account-prefix"` + KeyringBackend string `json:"keyring-backend" yaml:"keyring-backend"` + GasAdjustment float64 `json:"gas-adjustment" yaml:"gas-adjustment"` + GasPrices string `json:"gas-prices" yaml:"gas-prices"` + MinGasAmount uint64 `json:"min-gas-amount" yaml:"min-gas-amount"` + MaxGasAmount uint64 `json:"max-gas-amount" yaml:"max-gas-amount"` + Debug bool `json:"debug" yaml:"debug"` + Timeout string `json:"timeout" yaml:"timeout"` + BlockTimeout string `json:"block-timeout" yaml:"block-timeout"` + OutputFormat string `json:"output-format" yaml:"output-format"` + SignModeStr string `json:"sign-mode" yaml:"sign-mode"` + ExtraCodecs []string `json:"extra-codecs" yaml:"extra-codecs"` + Modules []module.AppModuleBasic `json:"-" yaml:"-"` + Slip44 int `json:"coin-type" yaml:"coin-type"` + Broadcast provider.BroadcastMode `json:"broadcast-mode" yaml:"broadcast-mode"` + MinLoopDuration time.Duration `json:"min-loop-duration" yaml:"min-loop-duration"` + ExtensionOptions []provider.ExtensionOption `json:"extension-options" yaml:"extension-options"` } func (pc PenumbraProviderConfig) Validate() error { diff --git a/relayer/chains/penumbra/query.go b/relayer/chains/penumbra/query.go index da651ef93..ce1f08ed6 100644 --- a/relayer/chains/penumbra/query.go +++ b/relayer/chains/penumbra/query.go @@ -702,6 +702,29 @@ func (cc *PenumbraProvider) QueryNextSeqRecv(ctx context.Context, height int64, }, nil } +// QueryNextSeqAck returns the next seqAck for a configured channel +func (cc *PenumbraProvider) QueryNextSeqAck(ctx context.Context, height int64, channelid, portid string) (recvRes *chantypes.QueryNextSequenceReceiveResponse, err error) { + key := host.NextSequenceAckKey(portid, channelid) + + value, proofBz, proofHeight, err := cc.QueryTendermintProof(ctx, height, key) + if err != nil { + return nil, err + } + + // check if next sequence receive exists + if len(value) == 0 { + return nil, sdkerrors.Wrapf(chantypes.ErrChannelNotFound, "portID (%s), channelID (%s)", portid, channelid) + } + + sequence := binary.BigEndian.Uint64(value) + + return &chantypes.QueryNextSequenceReceiveResponse{ + NextSequenceReceive: sequence, + Proof: proofBz, + ProofHeight: proofHeight, + }, nil +} + // QueryPacketCommitment returns the packet commitment proof at a given height func (cc *PenumbraProvider) QueryPacketCommitment(ctx context.Context, height int64, channelid, portid string, seq uint64) (comRes *chantypes.QueryPacketCommitmentResponse, err error) { key := host.PacketCommitmentKey(portid, channelid, seq) diff --git a/relayer/chains/penumbra/tx.go b/relayer/chains/penumbra/tx.go index 0069f6151..dd90ac098 100644 --- a/relayer/chains/penumbra/tx.go +++ b/relayer/chains/penumbra/tx.go @@ -313,8 +313,10 @@ func (cc *PenumbraProvider) sendMessagesInner(ctx context.Context, msgs []provid // will have a signing protocol for this. txBody := penumbratypes.TransactionBody{ - Actions: make([]*penumbratypes.Action, 0), - Fee: &penumbracrypto.Fee{Amount: &penumbracrypto.Amount{Lo: 0, Hi: 0}}, + Actions: make([]*penumbratypes.Action, 0), + Fee: &penumbracrypto.Fee{Amount: &penumbracrypto.Amount{Lo: 0, Hi: 0}}, + MemoData: &penumbratypes.MemoData{}, + TransactionParameters: &penumbratypes.TransactionParameters{}, } for _, msg := range PenumbraMsgs(msgs...) { @@ -497,7 +499,9 @@ func (cc *PenumbraProvider) MsgUpdateClient(srcClientId string, dstHeader ibcexp Signer: acc, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) ConnectionOpenInit(srcClientId, dstClientId string, dstPrefix commitmenttypes.MerklePrefix, dstHeader ibcexported.ClientMessage) ([]provider.RelayerMessage, error) { @@ -530,7 +534,9 @@ func (cc *PenumbraProvider) ConnectionOpenInit(srcClientId, dstClientId string, Signer: acc, } - return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + })}, nil } func (cc *PenumbraProvider) ConnectionOpenTry(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, dstPrefix commitmenttypes.MerklePrefix, srcClientId, dstClientId, srcConnId, dstConnId string) ([]provider.RelayerMessage, error) { @@ -595,7 +601,9 @@ func (cc *PenumbraProvider) ConnectionOpenTry(ctx context.Context, dstQueryProvi Signer: acc, } - return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + })}, nil } func (cc *PenumbraProvider) ConnectionOpenAck(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, srcClientId, srcConnId, dstClientId, dstConnId string) ([]provider.RelayerMessage, error) { @@ -645,7 +653,9 @@ func (cc *PenumbraProvider) ConnectionOpenAck(ctx context.Context, dstQueryProvi Signer: acc, } - return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + })}, nil } func (cc *PenumbraProvider) ConnectionOpenConfirm(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, dstConnId, srcClientId, srcConnId string) ([]provider.RelayerMessage, error) { @@ -678,7 +688,9 @@ func (cc *PenumbraProvider) ConnectionOpenConfirm(ctx context.Context, dstQueryP Signer: acc, } - return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + })}, nil } func (cc *PenumbraProvider) ChannelOpenInit(srcClientId, srcConnId, srcPortId, srcVersion, dstPortId string, order chantypes.Order, dstHeader ibcexported.ClientMessage) ([]provider.RelayerMessage, error) { @@ -710,7 +722,9 @@ func (cc *PenumbraProvider) ChannelOpenInit(srcClientId, srcConnId, srcPortId, s Signer: acc, } - return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + })}, nil } func (cc *PenumbraProvider) ChannelOpenTry(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, srcPortId, dstPortId, srcChanId, dstChanId, srcVersion, srcConnectionId, srcClientId string) ([]provider.RelayerMessage, error) { @@ -763,7 +777,9 @@ func (cc *PenumbraProvider) ChannelOpenTry(ctx context.Context, dstQueryProvider Signer: acc, } - return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + })}, nil } func (cc *PenumbraProvider) ChannelOpenAck(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, srcClientId, srcPortId, srcChanId, dstChanId, dstPortId string) ([]provider.RelayerMessage, error) { @@ -800,7 +816,9 @@ func (cc *PenumbraProvider) ChannelOpenAck(ctx context.Context, dstQueryProvider Signer: acc, } - return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + })}, nil } func (cc *PenumbraProvider) ChannelOpenConfirm(ctx context.Context, dstQueryProvider provider.QueryProvider, dstHeader ibcexported.ClientMessage, srcClientId, srcPortId, srcChanId, dstPortId, dstChanId string) ([]provider.RelayerMessage, error) { @@ -834,7 +852,9 @@ func (cc *PenumbraProvider) ChannelOpenConfirm(ctx context.Context, dstQueryProv Signer: acc, } - return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg)}, nil + return []provider.RelayerMessage{updateMsg, cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + })}, nil } func (cc *PenumbraProvider) ChannelCloseInit(srcPortId, srcChanId string) (provider.RelayerMessage, error) { @@ -852,7 +872,9 @@ func (cc *PenumbraProvider) ChannelCloseInit(srcPortId, srcChanId string) (provi Signer: acc, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) ChannelCloseConfirm(ctx context.Context, dstQueryProvider provider.QueryProvider, dsth int64, dstChanId, dstPortId, srcPortId, srcChanId string) (provider.RelayerMessage, error) { @@ -877,7 +899,9 @@ func (cc *PenumbraProvider) ChannelCloseConfirm(ctx context.Context, dstQueryPro Signer: acc, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) MsgUpgradeClient(srcClientId string, consRes *clienttypes.QueryConsensusStateResponse, clientRes *clienttypes.QueryClientStateResponse) (provider.RelayerMessage, error) { @@ -888,9 +912,14 @@ func (cc *PenumbraProvider) MsgUpgradeClient(srcClientId string, consRes *client if acc, err = cc.Address(); err != nil { return nil, err } - return cosmos.NewCosmosMessage(&clienttypes.MsgUpgradeClient{ClientId: srcClientId, ClientState: clientRes.ClientState, + + msgUpgradeClient := &clienttypes.MsgUpgradeClient{ClientId: srcClientId, ClientState: clientRes.ClientState, ConsensusState: consRes.ConsensusState, ProofUpgradeClient: consRes.GetProof(), - ProofUpgradeConsensusState: consRes.ConsensusState.Value, Signer: acc}), nil + ProofUpgradeConsensusState: consRes.ConsensusState.Value, Signer: acc} + + return cosmos.NewCosmosMessage(msgUpgradeClient, func(signer string) { + msgUpgradeClient.Signer = signer + }), nil } func (cc *PenumbraProvider) MsgSubmitMisbehaviour(clientID string, misbehaviour ibcexported.ClientMessage) (provider.RelayerMessage, error) { @@ -958,7 +987,9 @@ func (cc *PenumbraProvider) MsgRelayAcknowledgement(ctx context.Context, dst pro Signer: acc, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } } @@ -986,7 +1017,9 @@ func (cc *PenumbraProvider) MsgTransfer( msg.TimeoutHeight = info.TimeoutHeight } - return cosmos.NewCosmosMessage(msg), nil + msgTransfer := cosmos.NewCosmosMessage(msg, nil).(cosmos.CosmosMessage) + msgTransfer.FeegrantDisabled = true + return msgTransfer, nil } // MsgRelayTimeout constructs the MsgTimeout which is to be sent to the sending chain. @@ -1065,7 +1098,9 @@ func (cc *PenumbraProvider) orderedChannelTimeoutMsg( Signer: acc, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) unorderedChannelTimeoutMsg( @@ -1104,7 +1139,9 @@ func (cc *PenumbraProvider) unorderedChannelTimeoutMsg( NextSequenceRecv: packet.Seq(), Signer: acc, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } // MsgRelayRecvPacket constructs the MsgRecvPacket which is to be sent to the receiving chain. @@ -1143,7 +1180,9 @@ func (cc *PenumbraProvider) MsgRelayRecvPacket(ctx context.Context, dst provider Signer: acc, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } } @@ -1198,7 +1237,9 @@ func (cc *PenumbraProvider) MsgRecvPacket(msgTransfer provider.PacketInfo, proof Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) PacketAcknowledgement(ctx context.Context, msgRecvPacket provider.PacketInfo, height uint64) (provider.PacketProof, error) { @@ -1226,7 +1267,9 @@ func (cc *PenumbraProvider) MsgAcknowledgement(msgRecvPacket provider.PacketInfo Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) PacketReceipt(ctx context.Context, msgTransfer provider.PacketInfo, height uint64) (provider.PacketProof, error) { @@ -1255,7 +1298,9 @@ func (cc *PenumbraProvider) MsgTimeout(msgTransfer provider.PacketInfo, proof pr Signer: signer, } - return cosmos.NewCosmosMessage(assembled), nil + return cosmos.NewCosmosMessage(assembled, func(signer string) { + assembled.Signer = signer + }), nil } func (cc *PenumbraProvider) MsgTimeoutOnClose(msgTransfer provider.PacketInfo, proof provider.PacketProof) (provider.RelayerMessage, error) { @@ -1271,7 +1316,9 @@ func (cc *PenumbraProvider) MsgTimeoutOnClose(msgTransfer provider.PacketInfo, p Signer: signer, } - return cosmos.NewCosmosMessage(assembled), nil + return cosmos.NewCosmosMessage(assembled, func(signer string) { + assembled.Signer = signer + }), nil } func (cc *PenumbraProvider) MsgConnectionOpenInit(info provider.ConnectionInfo, proof provider.ConnectionProof) (provider.RelayerMessage, error) { @@ -1291,7 +1338,9 @@ func (cc *PenumbraProvider) MsgConnectionOpenInit(info provider.ConnectionInfo, Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) ConnectionHandshakeProof(ctx context.Context, msgOpenInit provider.ConnectionInfo, height uint64) (provider.ConnectionProof, error) { @@ -1349,7 +1398,9 @@ func (cc *PenumbraProvider) MsgConnectionOpenTry(msgOpenInit provider.Connection Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) MsgConnectionOpenAck(msgOpenTry provider.ConnectionInfo, proof provider.ConnectionProof) (provider.RelayerMessage, error) { @@ -1379,7 +1430,9 @@ func (cc *PenumbraProvider) MsgConnectionOpenAck(msgOpenTry provider.ConnectionI Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } // NextSeqRecv queries for the appropriate Tendermint proof required to prove the next expected packet sequence number @@ -1426,7 +1479,9 @@ func (cc *PenumbraProvider) MsgConnectionOpenConfirm(msgOpenAck provider.Connect Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) MsgChannelOpenInit(info provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { @@ -1449,7 +1504,9 @@ func (cc *PenumbraProvider) MsgChannelOpenInit(info provider.ChannelInfo, proof Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) ChannelProof(ctx context.Context, msg provider.ChannelInfo, height uint64) (provider.ChannelProof, error) { @@ -1492,7 +1549,9 @@ func (cc *PenumbraProvider) MsgChannelOpenTry(msgOpenInit provider.ChannelInfo, Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) MsgChannelOpenAck(msgOpenTry provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { @@ -1510,7 +1569,9 @@ func (cc *PenumbraProvider) MsgChannelOpenAck(msgOpenTry provider.ChannelInfo, p Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) MsgChannelOpenConfirm(msgOpenAck provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { @@ -1526,7 +1587,9 @@ func (cc *PenumbraProvider) MsgChannelOpenConfirm(msgOpenAck provider.ChannelInf Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) MsgChannelCloseInit(info provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { @@ -1540,7 +1603,9 @@ func (cc *PenumbraProvider) MsgChannelCloseInit(info provider.ChannelInfo, proof Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) MsgChannelCloseConfirm(msgCloseInit provider.ChannelInfo, proof provider.ChannelProof) (provider.RelayerMessage, error) { @@ -1556,7 +1621,9 @@ func (cc *PenumbraProvider) MsgChannelCloseConfirm(msgCloseInit provider.Channel Signer: signer, } - return cosmos.NewCosmosMessage(msg), nil + return cosmos.NewCosmosMessage(msg, func(signer string) { + msg.Signer = signer + }), nil } func (cc *PenumbraProvider) MsgUpdateClientHeader(latestHeader provider.IBCHeader, trustedHeight clienttypes.Height, trustedHeader provider.IBCHeader) (ibcexported.ClientMessage, error) { @@ -1941,12 +2008,13 @@ var JmtSpec = &ics23.ProofSpec{ Hash: ics23.HashOp_SHA256, ChildOrder: []int32{0, 1}, MinPrefixLength: 16, - MaxPrefixLength: 48, + MaxPrefixLength: 16, ChildSize: 32, - EmptyChild: nil, + EmptyChild: []byte("SPARSE_MERKLE_PLACEHOLDER_HASH__"), }, - MinDepth: 0, - MaxDepth: 64, + MinDepth: 0, + MaxDepth: 64, + PrehashKeyBeforeComparison: true, } var ApphashSpec = &ics23.ProofSpec{ @@ -1965,8 +2033,9 @@ var ApphashSpec = &ics23.ProofSpec{ ChildSize: 32, EmptyChild: nil, }, - MinDepth: 0, - MaxDepth: 1, + MinDepth: 0, + MaxDepth: 1, + PrehashKeyBeforeComparison: true, } var PenumbraProofSpecs = []*ics23.ProofSpec{JmtSpec, ApphashSpec} @@ -2227,7 +2296,7 @@ func (cc *PenumbraProvider) MsgSubmitQueryResponse(chainID string, queryID provi panic("implement me") } -func (cc *PenumbraProvider) SendMessagesToMempool(ctx context.Context, msgs []provider.RelayerMessage, memo string, asyncCtx context.Context, asyncCallback func(*provider.RelayerTxResponse, error)) error { +func (cc *PenumbraProvider) SendMessagesToMempool(ctx context.Context, msgs []provider.RelayerMessage, memo string, asyncCtx context.Context, asyncCallback []func(*provider.RelayerTxResponse, error)) error { sendRsp, err := cc.sendMessagesInner(ctx, msgs, memo) cc.log.Debug("Received response from sending messages", zap.Any("response", sendRsp), zap.Error(err)) return err diff --git a/relayer/chains/penumbra/view/v1alpha1/view.pb.go b/relayer/chains/penumbra/view/v1alpha1/view.pb.go index 5e28b5218..35056567e 100644 --- a/relayer/chains/penumbra/view/v1alpha1/view.pb.go +++ b/relayer/chains/penumbra/view/v1alpha1/view.pb.go @@ -8,10 +8,11 @@ import ( fmt "fmt" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" - v1alpha13 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/chain/v1alpha1" + v1alpha14 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/chain/v1alpha1" v1alpha11 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/crypto/v1alpha1" - v1alpha14 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/dex/v1alpha1" + v1alpha15 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/dex/v1alpha1" v1alpha12 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/ibc/v1alpha1" + v1alpha13 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/stake/v1alpha1" v1alpha1 "github.com/cosmos/relayer/v2/relayer/chains/penumbra/core/transaction/v1alpha1" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -32,6 +33,105 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +type AuthorizeAndBuildRequest struct { + // The transaction plan to authorize and build. + TransactionPlan *v1alpha1.TransactionPlan `protobuf:"bytes,1,opt,name=transaction_plan,json=transactionPlan,proto3" json:"transaction_plan,omitempty"` + // The authorization data to use to authorize the transaction plan. + AuthorizationData *v1alpha1.AuthorizationData `protobuf:"bytes,2,opt,name=authorization_data,json=authorizationData,proto3" json:"authorization_data,omitempty"` +} + +func (m *AuthorizeAndBuildRequest) Reset() { *m = AuthorizeAndBuildRequest{} } +func (m *AuthorizeAndBuildRequest) String() string { return proto.CompactTextString(m) } +func (*AuthorizeAndBuildRequest) ProtoMessage() {} +func (*AuthorizeAndBuildRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{0} +} +func (m *AuthorizeAndBuildRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AuthorizeAndBuildRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AuthorizeAndBuildRequest.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 *AuthorizeAndBuildRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuthorizeAndBuildRequest.Merge(m, src) +} +func (m *AuthorizeAndBuildRequest) XXX_Size() int { + return m.Size() +} +func (m *AuthorizeAndBuildRequest) XXX_DiscardUnknown() { + xxx_messageInfo_AuthorizeAndBuildRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_AuthorizeAndBuildRequest proto.InternalMessageInfo + +func (m *AuthorizeAndBuildRequest) GetTransactionPlan() *v1alpha1.TransactionPlan { + if m != nil { + return m.TransactionPlan + } + return nil +} + +func (m *AuthorizeAndBuildRequest) GetAuthorizationData() *v1alpha1.AuthorizationData { + if m != nil { + return m.AuthorizationData + } + return nil +} + +type AuthorizeAndBuildResponse struct { + // The transaction that was built. + Transaction *v1alpha1.Transaction `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"` +} + +func (m *AuthorizeAndBuildResponse) Reset() { *m = AuthorizeAndBuildResponse{} } +func (m *AuthorizeAndBuildResponse) String() string { return proto.CompactTextString(m) } +func (*AuthorizeAndBuildResponse) ProtoMessage() {} +func (*AuthorizeAndBuildResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{1} +} +func (m *AuthorizeAndBuildResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AuthorizeAndBuildResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AuthorizeAndBuildResponse.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 *AuthorizeAndBuildResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuthorizeAndBuildResponse.Merge(m, src) +} +func (m *AuthorizeAndBuildResponse) XXX_Size() int { + return m.Size() +} +func (m *AuthorizeAndBuildResponse) XXX_DiscardUnknown() { + xxx_messageInfo_AuthorizeAndBuildResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_AuthorizeAndBuildResponse proto.InternalMessageInfo + +func (m *AuthorizeAndBuildResponse) GetTransaction() *v1alpha1.Transaction { + if m != nil { + return m.Transaction + } + return nil +} + type BroadcastTransactionRequest struct { // The transaction to broadcast. Transaction *v1alpha1.Transaction `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"` @@ -43,7 +143,7 @@ func (m *BroadcastTransactionRequest) Reset() { *m = BroadcastTransactio func (m *BroadcastTransactionRequest) String() string { return proto.CompactTextString(m) } func (*BroadcastTransactionRequest) ProtoMessage() {} func (*BroadcastTransactionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{0} + return fileDescriptor_0aa947b204e6a7c2, []int{2} } func (m *BroadcastTransactionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -89,13 +189,16 @@ func (m *BroadcastTransactionRequest) GetAwaitDetection() bool { type BroadcastTransactionResponse struct { // The hash of the transaction that was broadcast. Id *v1alpha1.Id `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The height in which the transaction was detected as included in the chain, if any. + // Will not be included unless await_detection was true. + DetectionHeight uint64 `protobuf:"varint,2,opt,name=detection_height,json=detectionHeight,proto3" json:"detection_height,omitempty"` } func (m *BroadcastTransactionResponse) Reset() { *m = BroadcastTransactionResponse{} } func (m *BroadcastTransactionResponse) String() string { return proto.CompactTextString(m) } func (*BroadcastTransactionResponse) ProtoMessage() {} func (*BroadcastTransactionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{1} + return fileDescriptor_0aa947b204e6a7c2, []int{3} } func (m *BroadcastTransactionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -131,22 +234,27 @@ func (m *BroadcastTransactionResponse) GetId() *v1alpha1.Id { return nil } +func (m *BroadcastTransactionResponse) GetDetectionHeight() uint64 { + if m != nil { + return m.DetectionHeight + } + return 0 +} + type TransactionPlannerRequest struct { // The expiry height for the requested TransactionPlan ExpiryHeight uint64 `protobuf:"varint,1,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` // The fee for the requested TransactionPlan, if any. Fee *v1alpha11.Fee `protobuf:"bytes,2,opt,name=fee,proto3" json:"fee,omitempty"` // The memo for the requested TransactionPlan - Memo string `protobuf:"bytes,3,opt,name=memo,proto3" json:"memo,omitempty"` + Memo *v1alpha1.MemoPlaintext `protobuf:"bytes,3,opt,name=memo,proto3" json:"memo,omitempty"` // Types that are valid to be assigned to XAccountGroupId: // *TransactionPlannerRequest_AccountGroupId XAccountGroupId isTransactionPlannerRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *TransactionPlannerRequest_Token - XToken isTransactionPlannerRequest_XToken `protobuf_oneof:"_token"` // Request contents Outputs []*TransactionPlannerRequest_Output `protobuf:"bytes,20,rep,name=outputs,proto3" json:"outputs,omitempty"` Swaps []*TransactionPlannerRequest_Swap `protobuf:"bytes,30,rep,name=swaps,proto3" json:"swaps,omitempty"` + SwapClaims []*TransactionPlannerRequest_SwapClaim `protobuf:"bytes,31,rep,name=swap_claims,json=swapClaims,proto3" json:"swap_claims,omitempty"` Delegations []*TransactionPlannerRequest_Delegate `protobuf:"bytes,40,rep,name=delegations,proto3" json:"delegations,omitempty"` Undelegations []*TransactionPlannerRequest_Undelegate `protobuf:"bytes,50,rep,name=undelegations,proto3" json:"undelegations,omitempty"` IbcActions []*v1alpha12.IbcAction `protobuf:"bytes,60,rep,name=ibc_actions,json=ibcActions,proto3" json:"ibc_actions,omitempty"` @@ -156,7 +264,7 @@ func (m *TransactionPlannerRequest) Reset() { *m = TransactionPlannerReq func (m *TransactionPlannerRequest) String() string { return proto.CompactTextString(m) } func (*TransactionPlannerRequest) ProtoMessage() {} func (*TransactionPlannerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{2} + return fileDescriptor_0aa947b204e6a7c2, []int{4} } func (m *TransactionPlannerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -190,21 +298,12 @@ type isTransactionPlannerRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isTransactionPlannerRequest_XToken interface { - isTransactionPlannerRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type TransactionPlannerRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type TransactionPlannerRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*TransactionPlannerRequest_AccountGroupId) isTransactionPlannerRequest_XAccountGroupId() {} -func (*TransactionPlannerRequest_Token) isTransactionPlannerRequest_XToken() {} func (m *TransactionPlannerRequest) GetXAccountGroupId() isTransactionPlannerRequest_XAccountGroupId { if m != nil { @@ -212,12 +311,6 @@ func (m *TransactionPlannerRequest) GetXAccountGroupId() isTransactionPlannerReq } return nil } -func (m *TransactionPlannerRequest) GetXToken() isTransactionPlannerRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *TransactionPlannerRequest) GetExpiryHeight() uint64 { if m != nil { @@ -233,11 +326,11 @@ func (m *TransactionPlannerRequest) GetFee() *v1alpha11.Fee { return nil } -func (m *TransactionPlannerRequest) GetMemo() string { +func (m *TransactionPlannerRequest) GetMemo() *v1alpha1.MemoPlaintext { if m != nil { return m.Memo } - return "" + return nil } func (m *TransactionPlannerRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { @@ -247,13 +340,6 @@ func (m *TransactionPlannerRequest) GetAccountGroupId() *v1alpha11.AccountGroupI return nil } -func (m *TransactionPlannerRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*TransactionPlannerRequest_Token); ok { - return x.Token - } - return nil -} - func (m *TransactionPlannerRequest) GetOutputs() []*TransactionPlannerRequest_Output { if m != nil { return m.Outputs @@ -268,6 +354,13 @@ func (m *TransactionPlannerRequest) GetSwaps() []*TransactionPlannerRequest_Swap return nil } +func (m *TransactionPlannerRequest) GetSwapClaims() []*TransactionPlannerRequest_SwapClaim { + if m != nil { + return m.SwapClaims + } + return nil +} + func (m *TransactionPlannerRequest) GetDelegations() []*TransactionPlannerRequest_Delegate { if m != nil { return m.Delegations @@ -293,13 +386,14 @@ func (m *TransactionPlannerRequest) GetIbcActions() []*v1alpha12.IbcAction { func (*TransactionPlannerRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*TransactionPlannerRequest_AccountGroupId)(nil), - (*TransactionPlannerRequest_Token)(nil), } } // Request message subtypes type TransactionPlannerRequest_Output struct { - Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // The amount and denomination in which the Output is issued. + Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // The address to which Output will be sent. Address *v1alpha11.Address `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` } @@ -307,7 +401,7 @@ func (m *TransactionPlannerRequest_Output) Reset() { *m = TransactionPla func (m *TransactionPlannerRequest_Output) String() string { return proto.CompactTextString(m) } func (*TransactionPlannerRequest_Output) ProtoMessage() {} func (*TransactionPlannerRequest_Output) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{2, 0} + return fileDescriptor_0aa947b204e6a7c2, []int{4, 0} } func (m *TransactionPlannerRequest_Output) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -351,16 +445,19 @@ func (m *TransactionPlannerRequest_Output) GetAddress() *v1alpha11.Address { } type TransactionPlannerRequest_Swap struct { - Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // The amount and denomination to be traded in the Swap. + Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // The denomination to be received as a Output of the Swap. TargetAsset *v1alpha11.AssetId `protobuf:"bytes,2,opt,name=target_asset,json=targetAsset,proto3" json:"target_asset,omitempty"` - Fee *v1alpha11.Fee `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"` + // An optional fee to be paid for performing the Swap. + Fee *v1alpha11.Fee `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"` } func (m *TransactionPlannerRequest_Swap) Reset() { *m = TransactionPlannerRequest_Swap{} } func (m *TransactionPlannerRequest_Swap) String() string { return proto.CompactTextString(m) } func (*TransactionPlannerRequest_Swap) ProtoMessage() {} func (*TransactionPlannerRequest_Swap) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{2, 1} + return fileDescriptor_0aa947b204e6a7c2, []int{4, 1} } func (m *TransactionPlannerRequest_Swap) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -410,16 +507,63 @@ func (m *TransactionPlannerRequest_Swap) GetFee() *v1alpha11.Fee { return nil } +type TransactionPlannerRequest_SwapClaim struct { + // SwapCommitment to identify the Swap to be claimed. + // Use the commitment from the Swap message: + // penumbra.core.dex.v1alpha1.Swap.body.payload.commitment. + SwapCommitment *v1alpha11.StateCommitment `protobuf:"bytes,1,opt,name=swap_commitment,json=swapCommitment,proto3" json:"swap_commitment,omitempty"` +} + +func (m *TransactionPlannerRequest_SwapClaim) Reset() { *m = TransactionPlannerRequest_SwapClaim{} } +func (m *TransactionPlannerRequest_SwapClaim) String() string { return proto.CompactTextString(m) } +func (*TransactionPlannerRequest_SwapClaim) ProtoMessage() {} +func (*TransactionPlannerRequest_SwapClaim) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{4, 2} +} +func (m *TransactionPlannerRequest_SwapClaim) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TransactionPlannerRequest_SwapClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TransactionPlannerRequest_SwapClaim.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 *TransactionPlannerRequest_SwapClaim) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionPlannerRequest_SwapClaim.Merge(m, src) +} +func (m *TransactionPlannerRequest_SwapClaim) XXX_Size() int { + return m.Size() +} +func (m *TransactionPlannerRequest_SwapClaim) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionPlannerRequest_SwapClaim.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionPlannerRequest_SwapClaim proto.InternalMessageInfo + +func (m *TransactionPlannerRequest_SwapClaim) GetSwapCommitment() *v1alpha11.StateCommitment { + if m != nil { + return m.SwapCommitment + } + return nil +} + type TransactionPlannerRequest_Delegate struct { - Amount *v1alpha11.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - IdentityKey *v1alpha11.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + Amount *v1alpha11.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + RateData *v1alpha13.RateData `protobuf:"bytes,3,opt,name=rate_data,json=rateData,proto3" json:"rate_data,omitempty"` } func (m *TransactionPlannerRequest_Delegate) Reset() { *m = TransactionPlannerRequest_Delegate{} } func (m *TransactionPlannerRequest_Delegate) String() string { return proto.CompactTextString(m) } func (*TransactionPlannerRequest_Delegate) ProtoMessage() {} func (*TransactionPlannerRequest_Delegate) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{2, 2} + return fileDescriptor_0aa947b204e6a7c2, []int{4, 3} } func (m *TransactionPlannerRequest_Delegate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -455,22 +599,23 @@ func (m *TransactionPlannerRequest_Delegate) GetAmount() *v1alpha11.Amount { return nil } -func (m *TransactionPlannerRequest_Delegate) GetIdentityKey() *v1alpha11.IdentityKey { +func (m *TransactionPlannerRequest_Delegate) GetRateData() *v1alpha13.RateData { if m != nil { - return m.IdentityKey + return m.RateData } return nil } type TransactionPlannerRequest_Undelegate struct { - Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + RateData *v1alpha13.RateData `protobuf:"bytes,2,opt,name=rate_data,json=rateData,proto3" json:"rate_data,omitempty"` } func (m *TransactionPlannerRequest_Undelegate) Reset() { *m = TransactionPlannerRequest_Undelegate{} } func (m *TransactionPlannerRequest_Undelegate) String() string { return proto.CompactTextString(m) } func (*TransactionPlannerRequest_Undelegate) ProtoMessage() {} func (*TransactionPlannerRequest_Undelegate) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{2, 3} + return fileDescriptor_0aa947b204e6a7c2, []int{4, 4} } func (m *TransactionPlannerRequest_Undelegate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -506,6 +651,13 @@ func (m *TransactionPlannerRequest_Undelegate) GetValue() *v1alpha11.Value { return nil } +func (m *TransactionPlannerRequest_Undelegate) GetRateData() *v1alpha13.RateData { + if m != nil { + return m.RateData + } + return nil +} + type TransactionPlannerResponse struct { Plan *v1alpha1.TransactionPlan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` } @@ -514,7 +666,7 @@ func (m *TransactionPlannerResponse) Reset() { *m = TransactionPlannerRe func (m *TransactionPlannerResponse) String() string { return proto.CompactTextString(m) } func (*TransactionPlannerResponse) ProtoMessage() {} func (*TransactionPlannerResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{3} + return fileDescriptor_0aa947b204e6a7c2, []int{5} } func (m *TransactionPlannerResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -551,14 +703,15 @@ func (m *TransactionPlannerResponse) GetPlan() *v1alpha1.TransactionPlan { } type AddressByIndexRequest struct { - AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + DisplayConfirm bool `protobuf:"varint,2,opt,name=display_confirm,json=displayConfirm,proto3" json:"display_confirm,omitempty"` } func (m *AddressByIndexRequest) Reset() { *m = AddressByIndexRequest{} } func (m *AddressByIndexRequest) String() string { return proto.CompactTextString(m) } func (*AddressByIndexRequest) ProtoMessage() {} func (*AddressByIndexRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{4} + return fileDescriptor_0aa947b204e6a7c2, []int{6} } func (m *AddressByIndexRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -594,6 +747,13 @@ func (m *AddressByIndexRequest) GetAddressIndex() *v1alpha11.AddressIndex { return nil } +func (m *AddressByIndexRequest) GetDisplayConfirm() bool { + if m != nil { + return m.DisplayConfirm + } + return false +} + type AddressByIndexResponse struct { Address *v1alpha11.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` } @@ -602,7 +762,7 @@ func (m *AddressByIndexResponse) Reset() { *m = AddressByIndexResponse{} func (m *AddressByIndexResponse) String() string { return proto.CompactTextString(m) } func (*AddressByIndexResponse) ProtoMessage() {} func (*AddressByIndexResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{5} + return fileDescriptor_0aa947b204e6a7c2, []int{7} } func (m *AddressByIndexResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -646,7 +806,7 @@ func (m *IndexByAddressRequest) Reset() { *m = IndexByAddressRequest{} } func (m *IndexByAddressRequest) String() string { return proto.CompactTextString(m) } func (*IndexByAddressRequest) ProtoMessage() {} func (*IndexByAddressRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{6} + return fileDescriptor_0aa947b204e6a7c2, []int{8} } func (m *IndexByAddressRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -692,7 +852,7 @@ func (m *IndexByAddressResponse) Reset() { *m = IndexByAddressResponse{} func (m *IndexByAddressResponse) String() string { return proto.CompactTextString(m) } func (*IndexByAddressResponse) ProtoMessage() {} func (*IndexByAddressResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{7} + return fileDescriptor_0aa947b204e6a7c2, []int{9} } func (m *IndexByAddressResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -755,14 +915,15 @@ func (*IndexByAddressResponse) XXX_OneofWrappers() []interface{} { } type EphemeralAddressRequest struct { - AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + DisplayConfirm bool `protobuf:"varint,2,opt,name=display_confirm,json=displayConfirm,proto3" json:"display_confirm,omitempty"` } func (m *EphemeralAddressRequest) Reset() { *m = EphemeralAddressRequest{} } func (m *EphemeralAddressRequest) String() string { return proto.CompactTextString(m) } func (*EphemeralAddressRequest) ProtoMessage() {} func (*EphemeralAddressRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{8} + return fileDescriptor_0aa947b204e6a7c2, []int{10} } func (m *EphemeralAddressRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -798,6 +959,13 @@ func (m *EphemeralAddressRequest) GetAddressIndex() *v1alpha11.AddressIndex { return nil } +func (m *EphemeralAddressRequest) GetDisplayConfirm() bool { + if m != nil { + return m.DisplayConfirm + } + return false +} + type EphemeralAddressResponse struct { Address *v1alpha11.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` } @@ -806,7 +974,7 @@ func (m *EphemeralAddressResponse) Reset() { *m = EphemeralAddressRespon func (m *EphemeralAddressResponse) String() string { return proto.CompactTextString(m) } func (*EphemeralAddressResponse) ProtoMessage() {} func (*EphemeralAddressResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{9} + return fileDescriptor_0aa947b204e6a7c2, []int{11} } func (m *EphemeralAddressResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -842,22 +1010,25 @@ func (m *EphemeralAddressResponse) GetAddress() *v1alpha11.Address { return nil } -type BalanceByAddressRequest struct { - Address *v1alpha11.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +type BalancesRequest struct { + // If present, filter balances to only include the account specified by the `AddressIndex`. + AccountFilter *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=account_filter,json=accountFilter,proto3" json:"account_filter,omitempty"` + // If present, filter balances to only include the specified asset ID. + AssetIdFilter *v1alpha11.AssetId `protobuf:"bytes,2,opt,name=asset_id_filter,json=assetIdFilter,proto3" json:"asset_id_filter,omitempty"` } -func (m *BalanceByAddressRequest) Reset() { *m = BalanceByAddressRequest{} } -func (m *BalanceByAddressRequest) String() string { return proto.CompactTextString(m) } -func (*BalanceByAddressRequest) ProtoMessage() {} -func (*BalanceByAddressRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{10} +func (m *BalancesRequest) Reset() { *m = BalancesRequest{} } +func (m *BalancesRequest) String() string { return proto.CompactTextString(m) } +func (*BalancesRequest) ProtoMessage() {} +func (*BalancesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{12} } -func (m *BalanceByAddressRequest) XXX_Unmarshal(b []byte) error { +func (m *BalancesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *BalanceByAddressRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *BalancesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_BalanceByAddressRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_BalancesRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -867,42 +1038,49 @@ func (m *BalanceByAddressRequest) XXX_Marshal(b []byte, deterministic bool) ([]b return b[:n], nil } } -func (m *BalanceByAddressRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_BalanceByAddressRequest.Merge(m, src) +func (m *BalancesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_BalancesRequest.Merge(m, src) } -func (m *BalanceByAddressRequest) XXX_Size() int { +func (m *BalancesRequest) XXX_Size() int { return m.Size() } -func (m *BalanceByAddressRequest) XXX_DiscardUnknown() { - xxx_messageInfo_BalanceByAddressRequest.DiscardUnknown(m) +func (m *BalancesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_BalancesRequest.DiscardUnknown(m) } -var xxx_messageInfo_BalanceByAddressRequest proto.InternalMessageInfo +var xxx_messageInfo_BalancesRequest proto.InternalMessageInfo -func (m *BalanceByAddressRequest) GetAddress() *v1alpha11.Address { +func (m *BalancesRequest) GetAccountFilter() *v1alpha11.AddressIndex { if m != nil { - return m.Address + return m.AccountFilter + } + return nil +} + +func (m *BalancesRequest) GetAssetIdFilter() *v1alpha11.AssetId { + if m != nil { + return m.AssetIdFilter } return nil } -type BalanceByAddressResponse struct { - Asset *v1alpha11.AssetId `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"` - Amount *v1alpha11.Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +type BalancesResponse struct { + Account *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Balance *v1alpha11.Value `protobuf:"bytes,2,opt,name=balance,proto3" json:"balance,omitempty"` } -func (m *BalanceByAddressResponse) Reset() { *m = BalanceByAddressResponse{} } -func (m *BalanceByAddressResponse) String() string { return proto.CompactTextString(m) } -func (*BalanceByAddressResponse) ProtoMessage() {} -func (*BalanceByAddressResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{11} +func (m *BalancesResponse) Reset() { *m = BalancesResponse{} } +func (m *BalancesResponse) String() string { return proto.CompactTextString(m) } +func (*BalancesResponse) ProtoMessage() {} +func (*BalancesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{13} } -func (m *BalanceByAddressResponse) XXX_Unmarshal(b []byte) error { +func (m *BalancesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *BalanceByAddressResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *BalancesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_BalanceByAddressResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_BalancesResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -912,35 +1090,33 @@ func (m *BalanceByAddressResponse) XXX_Marshal(b []byte, deterministic bool) ([] return b[:n], nil } } -func (m *BalanceByAddressResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_BalanceByAddressResponse.Merge(m, src) +func (m *BalancesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_BalancesResponse.Merge(m, src) } -func (m *BalanceByAddressResponse) XXX_Size() int { +func (m *BalancesResponse) XXX_Size() int { return m.Size() } -func (m *BalanceByAddressResponse) XXX_DiscardUnknown() { - xxx_messageInfo_BalanceByAddressResponse.DiscardUnknown(m) +func (m *BalancesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_BalancesResponse.DiscardUnknown(m) } -var xxx_messageInfo_BalanceByAddressResponse proto.InternalMessageInfo +var xxx_messageInfo_BalancesResponse proto.InternalMessageInfo -func (m *BalanceByAddressResponse) GetAsset() *v1alpha11.AssetId { +func (m *BalancesResponse) GetAccount() *v1alpha11.AddressIndex { if m != nil { - return m.Asset + return m.Account } return nil } -func (m *BalanceByAddressResponse) GetAmount() *v1alpha11.Amount { +func (m *BalancesResponse) GetBalance() *v1alpha11.Value { if m != nil { - return m.Amount + return m.Balance } return nil } // Scaffolding for bearer-token authentication for the ViewService. -// The `account_group_id` and `token` fields are both optional, -// and numbered as 14 & 15 throughout the view service protocol. type ViewAuthToken struct { Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` } @@ -949,7 +1125,7 @@ func (m *ViewAuthToken) Reset() { *m = ViewAuthToken{} } func (m *ViewAuthToken) String() string { return proto.CompactTextString(m) } func (*ViewAuthToken) ProtoMessage() {} func (*ViewAuthToken) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{12} + return fileDescriptor_0aa947b204e6a7c2, []int{14} } func (m *ViewAuthToken) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -993,7 +1169,7 @@ func (m *ViewAuthRequest) Reset() { *m = ViewAuthRequest{} } func (m *ViewAuthRequest) String() string { return proto.CompactTextString(m) } func (*ViewAuthRequest) ProtoMessage() {} func (*ViewAuthRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{13} + return fileDescriptor_0aa947b204e6a7c2, []int{15} } func (m *ViewAuthRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1037,7 +1213,7 @@ func (m *ViewAuthResponse) Reset() { *m = ViewAuthResponse{} } func (m *ViewAuthResponse) String() string { return proto.CompactTextString(m) } func (*ViewAuthResponse) ProtoMessage() {} func (*ViewAuthResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{14} + return fileDescriptor_0aa947b204e6a7c2, []int{16} } func (m *ViewAuthResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1078,16 +1254,13 @@ type StatusRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *StatusRequest_AccountGroupId XAccountGroupId isStatusRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *StatusRequest_Token - XToken isStatusRequest_XToken `protobuf_oneof:"_token"` } func (m *StatusRequest) Reset() { *m = StatusRequest{} } func (m *StatusRequest) String() string { return proto.CompactTextString(m) } func (*StatusRequest) ProtoMessage() {} func (*StatusRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{15} + return fileDescriptor_0aa947b204e6a7c2, []int{17} } func (m *StatusRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1121,21 +1294,12 @@ type isStatusRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isStatusRequest_XToken interface { - isStatusRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type StatusRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type StatusRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*StatusRequest_AccountGroupId) isStatusRequest_XAccountGroupId() {} -func (*StatusRequest_Token) isStatusRequest_XToken() {} func (m *StatusRequest) GetXAccountGroupId() isStatusRequest_XAccountGroupId { if m != nil { @@ -1143,12 +1307,6 @@ func (m *StatusRequest) GetXAccountGroupId() isStatusRequest_XAccountGroupId { } return nil } -func (m *StatusRequest) GetXToken() isStatusRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *StatusRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { if x, ok := m.GetXAccountGroupId().(*StatusRequest_AccountGroupId); ok { @@ -1157,18 +1315,10 @@ func (m *StatusRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *StatusRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*StatusRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*StatusRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*StatusRequest_AccountGroupId)(nil), - (*StatusRequest_Token)(nil), } } @@ -1184,7 +1334,7 @@ func (m *StatusResponse) Reset() { *m = StatusResponse{} } func (m *StatusResponse) String() string { return proto.CompactTextString(m) } func (*StatusResponse) ProtoMessage() {} func (*StatusResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{16} + return fileDescriptor_0aa947b204e6a7c2, []int{18} } func (m *StatusResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1232,16 +1382,13 @@ type StatusStreamRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *StatusStreamRequest_AccountGroupId XAccountGroupId isStatusStreamRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *StatusStreamRequest_Token - XToken isStatusStreamRequest_XToken `protobuf_oneof:"_token"` } func (m *StatusStreamRequest) Reset() { *m = StatusStreamRequest{} } func (m *StatusStreamRequest) String() string { return proto.CompactTextString(m) } func (*StatusStreamRequest) ProtoMessage() {} func (*StatusStreamRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{17} + return fileDescriptor_0aa947b204e6a7c2, []int{19} } func (m *StatusStreamRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1275,21 +1422,12 @@ type isStatusStreamRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isStatusStreamRequest_XToken interface { - isStatusStreamRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type StatusStreamRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type StatusStreamRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*StatusStreamRequest_AccountGroupId) isStatusStreamRequest_XAccountGroupId() {} -func (*StatusStreamRequest_Token) isStatusStreamRequest_XToken() {} func (m *StatusStreamRequest) GetXAccountGroupId() isStatusStreamRequest_XAccountGroupId { if m != nil { @@ -1297,12 +1435,6 @@ func (m *StatusStreamRequest) GetXAccountGroupId() isStatusStreamRequest_XAccoun } return nil } -func (m *StatusStreamRequest) GetXToken() isStatusStreamRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *StatusStreamRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { if x, ok := m.GetXAccountGroupId().(*StatusStreamRequest_AccountGroupId); ok { @@ -1311,18 +1443,10 @@ func (m *StatusStreamRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *StatusStreamRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*StatusStreamRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*StatusStreamRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*StatusStreamRequest_AccountGroupId)(nil), - (*StatusStreamRequest_Token)(nil), } } @@ -1336,7 +1460,7 @@ func (m *StatusStreamResponse) Reset() { *m = StatusStreamResponse{} } func (m *StatusStreamResponse) String() string { return proto.CompactTextString(m) } func (*StatusStreamResponse) ProtoMessage() {} func (*StatusStreamResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{18} + return fileDescriptor_0aa947b204e6a7c2, []int{20} } func (m *StatusStreamResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1393,20 +1517,17 @@ type NotesRequest struct { // If set, stop returning notes once the total exceeds this amount. // // Ignored if `asset_id` is unset or if `include_spent` is set. - AmountToSpend uint64 `protobuf:"varint,5,opt,name=amount_to_spend,json=amountToSpend,proto3" json:"amount_to_spend,omitempty"` + AmountToSpend *v1alpha11.Amount `protobuf:"bytes,6,opt,name=amount_to_spend,json=amountToSpend,proto3" json:"amount_to_spend,omitempty"` // Types that are valid to be assigned to XAccountGroupId: // *NotesRequest_AccountGroupId XAccountGroupId isNotesRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *NotesRequest_Token - XToken isNotesRequest_XToken `protobuf_oneof:"_token"` } func (m *NotesRequest) Reset() { *m = NotesRequest{} } func (m *NotesRequest) String() string { return proto.CompactTextString(m) } func (*NotesRequest) ProtoMessage() {} func (*NotesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{19} + return fileDescriptor_0aa947b204e6a7c2, []int{21} } func (m *NotesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1440,21 +1561,12 @@ type isNotesRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isNotesRequest_XToken interface { - isNotesRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type NotesRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type NotesRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*NotesRequest_AccountGroupId) isNotesRequest_XAccountGroupId() {} -func (*NotesRequest_Token) isNotesRequest_XToken() {} func (m *NotesRequest) GetXAccountGroupId() isNotesRequest_XAccountGroupId { if m != nil { @@ -1462,12 +1574,6 @@ func (m *NotesRequest) GetXAccountGroupId() isNotesRequest_XAccountGroupId { } return nil } -func (m *NotesRequest) GetXToken() isNotesRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *NotesRequest) GetIncludeSpent() bool { if m != nil { @@ -1490,11 +1596,11 @@ func (m *NotesRequest) GetAddressIndex() *v1alpha11.AddressIndex { return nil } -func (m *NotesRequest) GetAmountToSpend() uint64 { +func (m *NotesRequest) GetAmountToSpend() *v1alpha11.Amount { if m != nil { return m.AmountToSpend } - return 0 + return nil } func (m *NotesRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { @@ -1504,18 +1610,10 @@ func (m *NotesRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *NotesRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*NotesRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*NotesRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*NotesRequest_AccountGroupId)(nil), - (*NotesRequest_Token)(nil), } } @@ -1528,16 +1626,13 @@ type NotesForVotingRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *NotesForVotingRequest_AccountGroupId XAccountGroupId isNotesForVotingRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *NotesForVotingRequest_Token - XToken isNotesForVotingRequest_XToken `protobuf_oneof:"_token"` } func (m *NotesForVotingRequest) Reset() { *m = NotesForVotingRequest{} } func (m *NotesForVotingRequest) String() string { return proto.CompactTextString(m) } func (*NotesForVotingRequest) ProtoMessage() {} func (*NotesForVotingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{20} + return fileDescriptor_0aa947b204e6a7c2, []int{22} } func (m *NotesForVotingRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1571,21 +1666,12 @@ type isNotesForVotingRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isNotesForVotingRequest_XToken interface { - isNotesForVotingRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type NotesForVotingRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type NotesForVotingRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*NotesForVotingRequest_AccountGroupId) isNotesForVotingRequest_XAccountGroupId() {} -func (*NotesForVotingRequest_Token) isNotesForVotingRequest_XToken() {} func (m *NotesForVotingRequest) GetXAccountGroupId() isNotesForVotingRequest_XAccountGroupId { if m != nil { @@ -1593,12 +1679,6 @@ func (m *NotesForVotingRequest) GetXAccountGroupId() isNotesForVotingRequest_XAc } return nil } -func (m *NotesForVotingRequest) GetXToken() isNotesForVotingRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *NotesForVotingRequest) GetVotableAtHeight() uint64 { if m != nil { @@ -1621,18 +1701,10 @@ func (m *NotesForVotingRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *NotesForVotingRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*NotesForVotingRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*NotesForVotingRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*NotesForVotingRequest_AccountGroupId)(nil), - (*NotesForVotingRequest_Token)(nil), } } @@ -1644,16 +1716,13 @@ type WitnessRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *WitnessRequest_AccountGroupId XAccountGroupId isWitnessRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *WitnessRequest_Token - XToken isWitnessRequest_XToken `protobuf_oneof:"_token"` } func (m *WitnessRequest) Reset() { *m = WitnessRequest{} } func (m *WitnessRequest) String() string { return proto.CompactTextString(m) } func (*WitnessRequest) ProtoMessage() {} func (*WitnessRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{21} + return fileDescriptor_0aa947b204e6a7c2, []int{23} } func (m *WitnessRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1687,21 +1756,12 @@ type isWitnessRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isWitnessRequest_XToken interface { - isWitnessRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type WitnessRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type WitnessRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*WitnessRequest_AccountGroupId) isWitnessRequest_XAccountGroupId() {} -func (*WitnessRequest_Token) isWitnessRequest_XToken() {} func (m *WitnessRequest) GetXAccountGroupId() isWitnessRequest_XAccountGroupId { if m != nil { @@ -1709,12 +1769,6 @@ func (m *WitnessRequest) GetXAccountGroupId() isWitnessRequest_XAccountGroupId { } return nil } -func (m *WitnessRequest) GetXToken() isWitnessRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *WitnessRequest) GetNoteCommitments() []*v1alpha11.StateCommitment { if m != nil { @@ -1737,18 +1791,10 @@ func (m *WitnessRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *WitnessRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*WitnessRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*WitnessRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*WitnessRequest_AccountGroupId)(nil), - (*WitnessRequest_Token)(nil), } } @@ -1760,7 +1806,7 @@ func (m *WitnessResponse) Reset() { *m = WitnessResponse{} } func (m *WitnessResponse) String() string { return proto.CompactTextString(m) } func (*WitnessResponse) ProtoMessage() {} func (*WitnessResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{22} + return fileDescriptor_0aa947b204e6a7c2, []int{24} } func (m *WitnessResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1805,7 +1851,7 @@ func (m *WitnessAndBuildRequest) Reset() { *m = WitnessAndBuildRequest{} func (m *WitnessAndBuildRequest) String() string { return proto.CompactTextString(m) } func (*WitnessAndBuildRequest) ProtoMessage() {} func (*WitnessAndBuildRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{23} + return fileDescriptor_0aa947b204e6a7c2, []int{25} } func (m *WitnessAndBuildRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1856,7 +1902,7 @@ func (m *WitnessAndBuildResponse) Reset() { *m = WitnessAndBuildResponse func (m *WitnessAndBuildResponse) String() string { return proto.CompactTextString(m) } func (*WitnessAndBuildResponse) ProtoMessage() {} func (*WitnessAndBuildResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{24} + return fileDescriptor_0aa947b204e6a7c2, []int{26} } func (m *WitnessAndBuildResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1915,7 +1961,7 @@ func (m *AssetsRequest) Reset() { *m = AssetsRequest{} } func (m *AssetsRequest) String() string { return proto.CompactTextString(m) } func (*AssetsRequest) ProtoMessage() {} func (*AssetsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{25} + return fileDescriptor_0aa947b204e6a7c2, []int{27} } func (m *AssetsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1995,14 +2041,14 @@ func (m *AssetsRequest) GetIncludeVotingReceiptTokens() bool { // Requests all assets known to the view service. type AssetsResponse struct { - Asset *v1alpha11.Asset `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"` + DenomMetadata *v1alpha11.DenomMetadata `protobuf:"bytes,2,opt,name=denom_metadata,json=denomMetadata,proto3" json:"denom_metadata,omitempty"` } func (m *AssetsResponse) Reset() { *m = AssetsResponse{} } func (m *AssetsResponse) String() string { return proto.CompactTextString(m) } func (*AssetsResponse) ProtoMessage() {} func (*AssetsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{26} + return fileDescriptor_0aa947b204e6a7c2, []int{28} } func (m *AssetsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2031,9 +2077,9 @@ func (m *AssetsResponse) XXX_DiscardUnknown() { var xxx_messageInfo_AssetsResponse proto.InternalMessageInfo -func (m *AssetsResponse) GetAsset() *v1alpha11.Asset { +func (m *AssetsResponse) GetDenomMetadata() *v1alpha11.DenomMetadata { if m != nil { - return m.Asset + return m.DenomMetadata } return nil } @@ -2046,7 +2092,7 @@ func (m *ChainParametersRequest) Reset() { *m = ChainParametersRequest{} func (m *ChainParametersRequest) String() string { return proto.CompactTextString(m) } func (*ChainParametersRequest) ProtoMessage() {} func (*ChainParametersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{27} + return fileDescriptor_0aa947b204e6a7c2, []int{29} } func (m *ChainParametersRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2076,14 +2122,14 @@ func (m *ChainParametersRequest) XXX_DiscardUnknown() { var xxx_messageInfo_ChainParametersRequest proto.InternalMessageInfo type ChainParametersResponse struct { - Parameters *v1alpha13.ChainParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` + Parameters *v1alpha14.ChainParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` } func (m *ChainParametersResponse) Reset() { *m = ChainParametersResponse{} } func (m *ChainParametersResponse) String() string { return proto.CompactTextString(m) } func (*ChainParametersResponse) ProtoMessage() {} func (*ChainParametersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{28} + return fileDescriptor_0aa947b204e6a7c2, []int{30} } func (m *ChainParametersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2112,7 +2158,7 @@ func (m *ChainParametersResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ChainParametersResponse proto.InternalMessageInfo -func (m *ChainParametersResponse) GetParameters() *v1alpha13.ChainParameters { +func (m *ChainParametersResponse) GetParameters() *v1alpha14.ChainParameters { if m != nil { return m.Parameters } @@ -2127,7 +2173,7 @@ func (m *FMDParametersRequest) Reset() { *m = FMDParametersRequest{} } func (m *FMDParametersRequest) String() string { return proto.CompactTextString(m) } func (*FMDParametersRequest) ProtoMessage() {} func (*FMDParametersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{29} + return fileDescriptor_0aa947b204e6a7c2, []int{31} } func (m *FMDParametersRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2157,14 +2203,14 @@ func (m *FMDParametersRequest) XXX_DiscardUnknown() { var xxx_messageInfo_FMDParametersRequest proto.InternalMessageInfo type FMDParametersResponse struct { - Parameters *v1alpha13.FmdParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` + Parameters *v1alpha14.FmdParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` } func (m *FMDParametersResponse) Reset() { *m = FMDParametersResponse{} } func (m *FMDParametersResponse) String() string { return proto.CompactTextString(m) } func (*FMDParametersResponse) ProtoMessage() {} func (*FMDParametersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{30} + return fileDescriptor_0aa947b204e6a7c2, []int{32} } func (m *FMDParametersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2193,7 +2239,7 @@ func (m *FMDParametersResponse) XXX_DiscardUnknown() { var xxx_messageInfo_FMDParametersResponse proto.InternalMessageInfo -func (m *FMDParametersResponse) GetParameters() *v1alpha13.FmdParameters { +func (m *FMDParametersResponse) GetParameters() *v1alpha14.FmdParameters { if m != nil { return m.Parameters } @@ -2207,16 +2253,13 @@ type NoteByCommitmentRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *NoteByCommitmentRequest_AccountGroupId XAccountGroupId isNoteByCommitmentRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *NoteByCommitmentRequest_Token - XToken isNoteByCommitmentRequest_XToken `protobuf_oneof:"_token"` } func (m *NoteByCommitmentRequest) Reset() { *m = NoteByCommitmentRequest{} } func (m *NoteByCommitmentRequest) String() string { return proto.CompactTextString(m) } func (*NoteByCommitmentRequest) ProtoMessage() {} func (*NoteByCommitmentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{31} + return fileDescriptor_0aa947b204e6a7c2, []int{33} } func (m *NoteByCommitmentRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2250,21 +2293,12 @@ type isNoteByCommitmentRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isNoteByCommitmentRequest_XToken interface { - isNoteByCommitmentRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type NoteByCommitmentRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type NoteByCommitmentRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*NoteByCommitmentRequest_AccountGroupId) isNoteByCommitmentRequest_XAccountGroupId() {} -func (*NoteByCommitmentRequest_Token) isNoteByCommitmentRequest_XToken() {} func (m *NoteByCommitmentRequest) GetXAccountGroupId() isNoteByCommitmentRequest_XAccountGroupId { if m != nil { @@ -2272,12 +2306,6 @@ func (m *NoteByCommitmentRequest) GetXAccountGroupId() isNoteByCommitmentRequest } return nil } -func (m *NoteByCommitmentRequest) GetXToken() isNoteByCommitmentRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *NoteByCommitmentRequest) GetNoteCommitment() *v1alpha11.StateCommitment { if m != nil { @@ -2300,18 +2328,10 @@ func (m *NoteByCommitmentRequest) GetAccountGroupId() *v1alpha11.AccountGroupId return nil } -func (m *NoteByCommitmentRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*NoteByCommitmentRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*NoteByCommitmentRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*NoteByCommitmentRequest_AccountGroupId)(nil), - (*NoteByCommitmentRequest_Token)(nil), } } @@ -2323,7 +2343,7 @@ func (m *NoteByCommitmentResponse) Reset() { *m = NoteByCommitmentRespon func (m *NoteByCommitmentResponse) String() string { return proto.CompactTextString(m) } func (*NoteByCommitmentResponse) ProtoMessage() {} func (*NoteByCommitmentResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{32} + return fileDescriptor_0aa947b204e6a7c2, []int{34} } func (m *NoteByCommitmentResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2366,16 +2386,13 @@ type SwapByCommitmentRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *SwapByCommitmentRequest_AccountGroupId XAccountGroupId isSwapByCommitmentRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *SwapByCommitmentRequest_Token - XToken isSwapByCommitmentRequest_XToken `protobuf_oneof:"_token"` } func (m *SwapByCommitmentRequest) Reset() { *m = SwapByCommitmentRequest{} } func (m *SwapByCommitmentRequest) String() string { return proto.CompactTextString(m) } func (*SwapByCommitmentRequest) ProtoMessage() {} func (*SwapByCommitmentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{33} + return fileDescriptor_0aa947b204e6a7c2, []int{35} } func (m *SwapByCommitmentRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2409,21 +2426,12 @@ type isSwapByCommitmentRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isSwapByCommitmentRequest_XToken interface { - isSwapByCommitmentRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type SwapByCommitmentRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type SwapByCommitmentRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*SwapByCommitmentRequest_AccountGroupId) isSwapByCommitmentRequest_XAccountGroupId() {} -func (*SwapByCommitmentRequest_Token) isSwapByCommitmentRequest_XToken() {} func (m *SwapByCommitmentRequest) GetXAccountGroupId() isSwapByCommitmentRequest_XAccountGroupId { if m != nil { @@ -2431,12 +2439,6 @@ func (m *SwapByCommitmentRequest) GetXAccountGroupId() isSwapByCommitmentRequest } return nil } -func (m *SwapByCommitmentRequest) GetXToken() isSwapByCommitmentRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *SwapByCommitmentRequest) GetSwapCommitment() *v1alpha11.StateCommitment { if m != nil { @@ -2459,18 +2461,10 @@ func (m *SwapByCommitmentRequest) GetAccountGroupId() *v1alpha11.AccountGroupId return nil } -func (m *SwapByCommitmentRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*SwapByCommitmentRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*SwapByCommitmentRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*SwapByCommitmentRequest_AccountGroupId)(nil), - (*SwapByCommitmentRequest_Token)(nil), } } @@ -2482,7 +2476,7 @@ func (m *SwapByCommitmentResponse) Reset() { *m = SwapByCommitmentRespon func (m *SwapByCommitmentResponse) String() string { return proto.CompactTextString(m) } func (*SwapByCommitmentResponse) ProtoMessage() {} func (*SwapByCommitmentResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{34} + return fileDescriptor_0aa947b204e6a7c2, []int{36} } func (m *SwapByCommitmentResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2524,16 +2518,13 @@ type NullifierStatusRequest struct { // Types that are valid to be assigned to XAccountGroupId: // *NullifierStatusRequest_AccountGroupId XAccountGroupId isNullifierStatusRequest_XAccountGroupId `protobuf_oneof:"_account_group_id"` - // Types that are valid to be assigned to XToken: - // *NullifierStatusRequest_Token - XToken isNullifierStatusRequest_XToken `protobuf_oneof:"_token"` } func (m *NullifierStatusRequest) Reset() { *m = NullifierStatusRequest{} } func (m *NullifierStatusRequest) String() string { return proto.CompactTextString(m) } func (*NullifierStatusRequest) ProtoMessage() {} func (*NullifierStatusRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{35} + return fileDescriptor_0aa947b204e6a7c2, []int{37} } func (m *NullifierStatusRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2567,21 +2558,12 @@ type isNullifierStatusRequest_XAccountGroupId interface { MarshalTo([]byte) (int, error) Size() int } -type isNullifierStatusRequest_XToken interface { - isNullifierStatusRequest_XToken() - MarshalTo([]byte) (int, error) - Size() int -} type NullifierStatusRequest_AccountGroupId struct { AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3,oneof" json:"account_group_id,omitempty"` } -type NullifierStatusRequest_Token struct { - Token *ViewAuthToken `protobuf:"bytes,15,opt,name=token,proto3,oneof" json:"token,omitempty"` -} func (*NullifierStatusRequest_AccountGroupId) isNullifierStatusRequest_XAccountGroupId() {} -func (*NullifierStatusRequest_Token) isNullifierStatusRequest_XToken() {} func (m *NullifierStatusRequest) GetXAccountGroupId() isNullifierStatusRequest_XAccountGroupId { if m != nil { @@ -2589,12 +2571,6 @@ func (m *NullifierStatusRequest) GetXAccountGroupId() isNullifierStatusRequest_X } return nil } -func (m *NullifierStatusRequest) GetXToken() isNullifierStatusRequest_XToken { - if m != nil { - return m.XToken - } - return nil -} func (m *NullifierStatusRequest) GetNullifier() *v1alpha11.Nullifier { if m != nil { @@ -2617,18 +2593,10 @@ func (m *NullifierStatusRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { return nil } -func (m *NullifierStatusRequest) GetToken() *ViewAuthToken { - if x, ok := m.GetXToken().(*NullifierStatusRequest_Token); ok { - return x.Token - } - return nil -} - // XXX_OneofWrappers is for the internal use of the proto package. func (*NullifierStatusRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*NullifierStatusRequest_AccountGroupId)(nil), - (*NullifierStatusRequest_Token)(nil), } } @@ -2640,7 +2608,7 @@ func (m *NullifierStatusResponse) Reset() { *m = NullifierStatusResponse func (m *NullifierStatusResponse) String() string { return proto.CompactTextString(m) } func (*NullifierStatusResponse) ProtoMessage() {} func (*NullifierStatusResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{36} + return fileDescriptor_0aa947b204e6a7c2, []int{38} } func (m *NullifierStatusResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2676,218 +2644,23 @@ func (m *NullifierStatusResponse) GetSpent() bool { return false } -type TransactionHashesRequest struct { - // Types that are valid to be assigned to XStartHeight: - // *TransactionHashesRequest_StartHeight - XStartHeight isTransactionHashesRequest_XStartHeight `protobuf_oneof:"_start_height"` - // Types that are valid to be assigned to XEndHeight: - // *TransactionHashesRequest_EndHeight - XEndHeight isTransactionHashesRequest_XEndHeight `protobuf_oneof:"_end_height"` -} - -func (m *TransactionHashesRequest) Reset() { *m = TransactionHashesRequest{} } -func (m *TransactionHashesRequest) String() string { return proto.CompactTextString(m) } -func (*TransactionHashesRequest) ProtoMessage() {} -func (*TransactionHashesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{37} -} -func (m *TransactionHashesRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TransactionHashesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_TransactionHashesRequest.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 *TransactionHashesRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionHashesRequest.Merge(m, src) -} -func (m *TransactionHashesRequest) XXX_Size() int { - return m.Size() -} -func (m *TransactionHashesRequest) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionHashesRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_TransactionHashesRequest proto.InternalMessageInfo - -type isTransactionHashesRequest_XStartHeight interface { - isTransactionHashesRequest_XStartHeight() - MarshalTo([]byte) (int, error) - Size() int -} -type isTransactionHashesRequest_XEndHeight interface { - isTransactionHashesRequest_XEndHeight() - MarshalTo([]byte) (int, error) - Size() int -} - -type TransactionHashesRequest_StartHeight struct { - StartHeight uint64 `protobuf:"varint,1,opt,name=start_height,json=startHeight,proto3,oneof" json:"start_height,omitempty"` -} -type TransactionHashesRequest_EndHeight struct { - EndHeight uint64 `protobuf:"varint,2,opt,name=end_height,json=endHeight,proto3,oneof" json:"end_height,omitempty"` -} - -func (*TransactionHashesRequest_StartHeight) isTransactionHashesRequest_XStartHeight() {} -func (*TransactionHashesRequest_EndHeight) isTransactionHashesRequest_XEndHeight() {} - -func (m *TransactionHashesRequest) GetXStartHeight() isTransactionHashesRequest_XStartHeight { - if m != nil { - return m.XStartHeight - } - return nil -} -func (m *TransactionHashesRequest) GetXEndHeight() isTransactionHashesRequest_XEndHeight { - if m != nil { - return m.XEndHeight - } - return nil -} - -func (m *TransactionHashesRequest) GetStartHeight() uint64 { - if x, ok := m.GetXStartHeight().(*TransactionHashesRequest_StartHeight); ok { - return x.StartHeight - } - return 0 -} - -func (m *TransactionHashesRequest) GetEndHeight() uint64 { - if x, ok := m.GetXEndHeight().(*TransactionHashesRequest_EndHeight); ok { - return x.EndHeight - } - return 0 -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*TransactionHashesRequest) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*TransactionHashesRequest_StartHeight)(nil), - (*TransactionHashesRequest_EndHeight)(nil), - } -} - -type TransactionHashesResponse struct { - BlockHeight uint64 `protobuf:"varint,1,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` - TxHash []byte `protobuf:"bytes,2,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` -} - -func (m *TransactionHashesResponse) Reset() { *m = TransactionHashesResponse{} } -func (m *TransactionHashesResponse) String() string { return proto.CompactTextString(m) } -func (*TransactionHashesResponse) ProtoMessage() {} -func (*TransactionHashesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{38} -} -func (m *TransactionHashesResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TransactionHashesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_TransactionHashesResponse.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 *TransactionHashesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionHashesResponse.Merge(m, src) -} -func (m *TransactionHashesResponse) XXX_Size() int { - return m.Size() -} -func (m *TransactionHashesResponse) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionHashesResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_TransactionHashesResponse proto.InternalMessageInfo - -func (m *TransactionHashesResponse) GetBlockHeight() uint64 { - if m != nil { - return m.BlockHeight - } - return 0 -} - -func (m *TransactionHashesResponse) GetTxHash() []byte { - if m != nil { - return m.TxHash - } - return nil -} - -type TransactionByHashRequest struct { +type TransactionInfoByHashRequest struct { // The transaction hash to query for. - TxHash []byte `protobuf:"bytes,1,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + Id *v1alpha1.Id `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } -func (m *TransactionByHashRequest) Reset() { *m = TransactionByHashRequest{} } -func (m *TransactionByHashRequest) String() string { return proto.CompactTextString(m) } -func (*TransactionByHashRequest) ProtoMessage() {} -func (*TransactionByHashRequest) Descriptor() ([]byte, []int) { +func (m *TransactionInfoByHashRequest) Reset() { *m = TransactionInfoByHashRequest{} } +func (m *TransactionInfoByHashRequest) String() string { return proto.CompactTextString(m) } +func (*TransactionInfoByHashRequest) ProtoMessage() {} +func (*TransactionInfoByHashRequest) Descriptor() ([]byte, []int) { return fileDescriptor_0aa947b204e6a7c2, []int{39} } -func (m *TransactionByHashRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TransactionByHashRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_TransactionByHashRequest.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 *TransactionByHashRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionByHashRequest.Merge(m, src) -} -func (m *TransactionByHashRequest) XXX_Size() int { - return m.Size() -} -func (m *TransactionByHashRequest) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionByHashRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_TransactionByHashRequest proto.InternalMessageInfo - -func (m *TransactionByHashRequest) GetTxHash() []byte { - if m != nil { - return m.TxHash - } - return nil -} - -// A full transaction response -type TransactionByHashResponse struct { - Tx *v1alpha1.Transaction `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` -} - -func (m *TransactionByHashResponse) Reset() { *m = TransactionByHashResponse{} } -func (m *TransactionByHashResponse) String() string { return proto.CompactTextString(m) } -func (*TransactionByHashResponse) ProtoMessage() {} -func (*TransactionByHashResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{40} -} -func (m *TransactionByHashResponse) XXX_Unmarshal(b []byte) error { +func (m *TransactionInfoByHashRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionByHashResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TransactionInfoByHashRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionByHashResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_TransactionInfoByHashRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2897,46 +2670,46 @@ func (m *TransactionByHashResponse) XXX_Marshal(b []byte, deterministic bool) ([ return b[:n], nil } } -func (m *TransactionByHashResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionByHashResponse.Merge(m, src) +func (m *TransactionInfoByHashRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionInfoByHashRequest.Merge(m, src) } -func (m *TransactionByHashResponse) XXX_Size() int { +func (m *TransactionInfoByHashRequest) XXX_Size() int { return m.Size() } -func (m *TransactionByHashResponse) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionByHashResponse.DiscardUnknown(m) +func (m *TransactionInfoByHashRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionInfoByHashRequest.DiscardUnknown(m) } -var xxx_messageInfo_TransactionByHashResponse proto.InternalMessageInfo +var xxx_messageInfo_TransactionInfoByHashRequest proto.InternalMessageInfo -func (m *TransactionByHashResponse) GetTx() *v1alpha1.Transaction { +func (m *TransactionInfoByHashRequest) GetId() *v1alpha1.Id { if m != nil { - return m.Tx + return m.Id } return nil } -type TransactionsRequest struct { +type TransactionInfoRequest struct { // Types that are valid to be assigned to XStartHeight: - // *TransactionsRequest_StartHeight - XStartHeight isTransactionsRequest_XStartHeight `protobuf_oneof:"_start_height"` + // *TransactionInfoRequest_StartHeight + XStartHeight isTransactionInfoRequest_XStartHeight `protobuf_oneof:"_start_height"` // Types that are valid to be assigned to XEndHeight: - // *TransactionsRequest_EndHeight - XEndHeight isTransactionsRequest_XEndHeight `protobuf_oneof:"_end_height"` + // *TransactionInfoRequest_EndHeight + XEndHeight isTransactionInfoRequest_XEndHeight `protobuf_oneof:"_end_height"` } -func (m *TransactionsRequest) Reset() { *m = TransactionsRequest{} } -func (m *TransactionsRequest) String() string { return proto.CompactTextString(m) } -func (*TransactionsRequest) ProtoMessage() {} -func (*TransactionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{41} +func (m *TransactionInfoRequest) Reset() { *m = TransactionInfoRequest{} } +func (m *TransactionInfoRequest) String() string { return proto.CompactTextString(m) } +func (*TransactionInfoRequest) ProtoMessage() {} +func (*TransactionInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{40} } -func (m *TransactionsRequest) XXX_Unmarshal(b []byte) error { +func (m *TransactionInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TransactionInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionsRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_TransactionInfoRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2946,93 +2719,100 @@ func (m *TransactionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, return b[:n], nil } } -func (m *TransactionsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionsRequest.Merge(m, src) +func (m *TransactionInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionInfoRequest.Merge(m, src) } -func (m *TransactionsRequest) XXX_Size() int { +func (m *TransactionInfoRequest) XXX_Size() int { return m.Size() } -func (m *TransactionsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionsRequest.DiscardUnknown(m) +func (m *TransactionInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionInfoRequest.DiscardUnknown(m) } -var xxx_messageInfo_TransactionsRequest proto.InternalMessageInfo +var xxx_messageInfo_TransactionInfoRequest proto.InternalMessageInfo -type isTransactionsRequest_XStartHeight interface { - isTransactionsRequest_XStartHeight() +type isTransactionInfoRequest_XStartHeight interface { + isTransactionInfoRequest_XStartHeight() MarshalTo([]byte) (int, error) Size() int } -type isTransactionsRequest_XEndHeight interface { - isTransactionsRequest_XEndHeight() +type isTransactionInfoRequest_XEndHeight interface { + isTransactionInfoRequest_XEndHeight() MarshalTo([]byte) (int, error) Size() int } -type TransactionsRequest_StartHeight struct { +type TransactionInfoRequest_StartHeight struct { StartHeight uint64 `protobuf:"varint,1,opt,name=start_height,json=startHeight,proto3,oneof" json:"start_height,omitempty"` } -type TransactionsRequest_EndHeight struct { +type TransactionInfoRequest_EndHeight struct { EndHeight uint64 `protobuf:"varint,2,opt,name=end_height,json=endHeight,proto3,oneof" json:"end_height,omitempty"` } -func (*TransactionsRequest_StartHeight) isTransactionsRequest_XStartHeight() {} -func (*TransactionsRequest_EndHeight) isTransactionsRequest_XEndHeight() {} +func (*TransactionInfoRequest_StartHeight) isTransactionInfoRequest_XStartHeight() {} +func (*TransactionInfoRequest_EndHeight) isTransactionInfoRequest_XEndHeight() {} -func (m *TransactionsRequest) GetXStartHeight() isTransactionsRequest_XStartHeight { +func (m *TransactionInfoRequest) GetXStartHeight() isTransactionInfoRequest_XStartHeight { if m != nil { return m.XStartHeight } return nil } -func (m *TransactionsRequest) GetXEndHeight() isTransactionsRequest_XEndHeight { +func (m *TransactionInfoRequest) GetXEndHeight() isTransactionInfoRequest_XEndHeight { if m != nil { return m.XEndHeight } return nil } -func (m *TransactionsRequest) GetStartHeight() uint64 { - if x, ok := m.GetXStartHeight().(*TransactionsRequest_StartHeight); ok { +func (m *TransactionInfoRequest) GetStartHeight() uint64 { + if x, ok := m.GetXStartHeight().(*TransactionInfoRequest_StartHeight); ok { return x.StartHeight } return 0 } -func (m *TransactionsRequest) GetEndHeight() uint64 { - if x, ok := m.GetXEndHeight().(*TransactionsRequest_EndHeight); ok { +func (m *TransactionInfoRequest) GetEndHeight() uint64 { + if x, ok := m.GetXEndHeight().(*TransactionInfoRequest_EndHeight); ok { return x.EndHeight } return 0 } // XXX_OneofWrappers is for the internal use of the proto package. -func (*TransactionsRequest) XXX_OneofWrappers() []interface{} { +func (*TransactionInfoRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ - (*TransactionsRequest_StartHeight)(nil), - (*TransactionsRequest_EndHeight)(nil), + (*TransactionInfoRequest_StartHeight)(nil), + (*TransactionInfoRequest_EndHeight)(nil), } } -// A streaming full transaction response -type TransactionsResponse struct { - BlockHeight uint64 `protobuf:"varint,1,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` - TxHash []byte `protobuf:"bytes,2,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` - Tx *v1alpha1.Transaction `protobuf:"bytes,3,opt,name=tx,proto3" json:"tx,omitempty"` +type TransactionInfo struct { + // Types that are valid to be assigned to XHeight: + // *TransactionInfo_Height + XHeight isTransactionInfo_XHeight `protobuf_oneof:"_height"` + // The hash of the transaction. + Id *v1alpha1.Id `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // The transaction data itself. + Transaction *v1alpha1.Transaction `protobuf:"bytes,3,opt,name=transaction,proto3" json:"transaction,omitempty"` + // The transaction perspective, as seen by this view server. + Perspective *v1alpha1.TransactionPerspective `protobuf:"bytes,4,opt,name=perspective,proto3" json:"perspective,omitempty"` + // A precomputed transaction view of `transaction` from `perspective`, included for convenience of clients that don't have support for viewing transactions on their own. + View *v1alpha1.TransactionView `protobuf:"bytes,5,opt,name=view,proto3" json:"view,omitempty"` } -func (m *TransactionsResponse) Reset() { *m = TransactionsResponse{} } -func (m *TransactionsResponse) String() string { return proto.CompactTextString(m) } -func (*TransactionsResponse) ProtoMessage() {} -func (*TransactionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{42} +func (m *TransactionInfo) Reset() { *m = TransactionInfo{} } +func (m *TransactionInfo) String() string { return proto.CompactTextString(m) } +func (*TransactionInfo) ProtoMessage() {} +func (*TransactionInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{41} } -func (m *TransactionsResponse) XXX_Unmarshal(b []byte) error { +func (m *TransactionInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TransactionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionsResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_TransactionInfo.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -3042,55 +2822,95 @@ func (m *TransactionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte return b[:n], nil } } -func (m *TransactionsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionsResponse.Merge(m, src) +func (m *TransactionInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionInfo.Merge(m, src) } -func (m *TransactionsResponse) XXX_Size() int { +func (m *TransactionInfo) XXX_Size() int { return m.Size() } -func (m *TransactionsResponse) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionsResponse.DiscardUnknown(m) +func (m *TransactionInfo) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionInfo proto.InternalMessageInfo + +type isTransactionInfo_XHeight interface { + isTransactionInfo_XHeight() + MarshalTo([]byte) (int, error) + Size() int +} + +type TransactionInfo_Height struct { + Height uint64 `protobuf:"varint,1,opt,name=height,proto3,oneof" json:"height,omitempty"` } -var xxx_messageInfo_TransactionsResponse proto.InternalMessageInfo +func (*TransactionInfo_Height) isTransactionInfo_XHeight() {} -func (m *TransactionsResponse) GetBlockHeight() uint64 { +func (m *TransactionInfo) GetXHeight() isTransactionInfo_XHeight { if m != nil { - return m.BlockHeight + return m.XHeight + } + return nil +} + +func (m *TransactionInfo) GetHeight() uint64 { + if x, ok := m.GetXHeight().(*TransactionInfo_Height); ok { + return x.Height } return 0 } -func (m *TransactionsResponse) GetTxHash() []byte { +func (m *TransactionInfo) GetId() *v1alpha1.Id { + if m != nil { + return m.Id + } + return nil +} + +func (m *TransactionInfo) GetTransaction() *v1alpha1.Transaction { if m != nil { - return m.TxHash + return m.Transaction } return nil } -func (m *TransactionsResponse) GetTx() *v1alpha1.Transaction { +func (m *TransactionInfo) GetPerspective() *v1alpha1.TransactionPerspective { if m != nil { - return m.Tx + return m.Perspective } return nil } -type TransactionPerspectiveRequest struct { - TxHash []byte `protobuf:"bytes,1,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` +func (m *TransactionInfo) GetView() *v1alpha1.TransactionView { + if m != nil { + return m.View + } + return nil } -func (m *TransactionPerspectiveRequest) Reset() { *m = TransactionPerspectiveRequest{} } -func (m *TransactionPerspectiveRequest) String() string { return proto.CompactTextString(m) } -func (*TransactionPerspectiveRequest) ProtoMessage() {} -func (*TransactionPerspectiveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{43} +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TransactionInfo) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TransactionInfo_Height)(nil), + } +} + +type TransactionInfoResponse struct { + TxInfo *TransactionInfo `protobuf:"bytes,1,opt,name=tx_info,json=txInfo,proto3" json:"tx_info,omitempty"` } -func (m *TransactionPerspectiveRequest) XXX_Unmarshal(b []byte) error { + +func (m *TransactionInfoResponse) Reset() { *m = TransactionInfoResponse{} } +func (m *TransactionInfoResponse) String() string { return proto.CompactTextString(m) } +func (*TransactionInfoResponse) ProtoMessage() {} +func (*TransactionInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{42} +} +func (m *TransactionInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionPerspectiveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TransactionInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionPerspectiveRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_TransactionInfoResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -3100,43 +2920,41 @@ func (m *TransactionPerspectiveRequest) XXX_Marshal(b []byte, deterministic bool return b[:n], nil } } -func (m *TransactionPerspectiveRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionPerspectiveRequest.Merge(m, src) +func (m *TransactionInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionInfoResponse.Merge(m, src) } -func (m *TransactionPerspectiveRequest) XXX_Size() int { +func (m *TransactionInfoResponse) XXX_Size() int { return m.Size() } -func (m *TransactionPerspectiveRequest) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionPerspectiveRequest.DiscardUnknown(m) +func (m *TransactionInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionInfoResponse.DiscardUnknown(m) } -var xxx_messageInfo_TransactionPerspectiveRequest proto.InternalMessageInfo +var xxx_messageInfo_TransactionInfoResponse proto.InternalMessageInfo -func (m *TransactionPerspectiveRequest) GetTxHash() []byte { +func (m *TransactionInfoResponse) GetTxInfo() *TransactionInfo { if m != nil { - return m.TxHash + return m.TxInfo } return nil } -type TransactionPerspectiveResponse struct { - Txp *v1alpha1.TransactionPerspective `protobuf:"bytes,1,opt,name=txp,proto3" json:"txp,omitempty"` - Tx *v1alpha1.Transaction `protobuf:"bytes,2,opt,name=tx,proto3" json:"tx,omitempty"` - Txv *v1alpha1.TransactionView `protobuf:"bytes,3,opt,name=txv,proto3" json:"txv,omitempty"` +type TransactionInfoByHashResponse struct { + TxInfo *TransactionInfo `protobuf:"bytes,1,opt,name=tx_info,json=txInfo,proto3" json:"tx_info,omitempty"` } -func (m *TransactionPerspectiveResponse) Reset() { *m = TransactionPerspectiveResponse{} } -func (m *TransactionPerspectiveResponse) String() string { return proto.CompactTextString(m) } -func (*TransactionPerspectiveResponse) ProtoMessage() {} -func (*TransactionPerspectiveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{44} +func (m *TransactionInfoByHashResponse) Reset() { *m = TransactionInfoByHashResponse{} } +func (m *TransactionInfoByHashResponse) String() string { return proto.CompactTextString(m) } +func (*TransactionInfoByHashResponse) ProtoMessage() {} +func (*TransactionInfoByHashResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{43} } -func (m *TransactionPerspectiveResponse) XXX_Unmarshal(b []byte) error { +func (m *TransactionInfoByHashResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *TransactionPerspectiveResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *TransactionInfoByHashResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_TransactionPerspectiveResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_TransactionInfoByHashResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -3146,35 +2964,21 @@ func (m *TransactionPerspectiveResponse) XXX_Marshal(b []byte, deterministic boo return b[:n], nil } } -func (m *TransactionPerspectiveResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransactionPerspectiveResponse.Merge(m, src) +func (m *TransactionInfoByHashResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionInfoByHashResponse.Merge(m, src) } -func (m *TransactionPerspectiveResponse) XXX_Size() int { +func (m *TransactionInfoByHashResponse) XXX_Size() int { return m.Size() } -func (m *TransactionPerspectiveResponse) XXX_DiscardUnknown() { - xxx_messageInfo_TransactionPerspectiveResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_TransactionPerspectiveResponse proto.InternalMessageInfo - -func (m *TransactionPerspectiveResponse) GetTxp() *v1alpha1.TransactionPerspective { - if m != nil { - return m.Txp - } - return nil +func (m *TransactionInfoByHashResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionInfoByHashResponse.DiscardUnknown(m) } -func (m *TransactionPerspectiveResponse) GetTx() *v1alpha1.Transaction { - if m != nil { - return m.Tx - } - return nil -} +var xxx_messageInfo_TransactionInfoByHashResponse proto.InternalMessageInfo -func (m *TransactionPerspectiveResponse) GetTxv() *v1alpha1.TransactionView { +func (m *TransactionInfoByHashResponse) GetTxInfo() *TransactionInfo { if m != nil { - return m.Txv + return m.TxInfo } return nil } @@ -3187,7 +2991,7 @@ func (m *NotesResponse) Reset() { *m = NotesResponse{} } func (m *NotesResponse) String() string { return proto.CompactTextString(m) } func (*NotesResponse) ProtoMessage() {} func (*NotesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{45} + return fileDescriptor_0aa947b204e6a7c2, []int{44} } func (m *NotesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3232,7 +3036,7 @@ func (m *NotesForVotingResponse) Reset() { *m = NotesForVotingResponse{} func (m *NotesForVotingResponse) String() string { return proto.CompactTextString(m) } func (*NotesForVotingResponse) ProtoMessage() {} func (*NotesForVotingResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{46} + return fileDescriptor_0aa947b204e6a7c2, []int{45} } func (m *NotesForVotingResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3293,14 +3097,14 @@ type SpendableNoteRecord struct { // The note position. Position uint64 `protobuf:"varint,7,opt,name=position,proto3" json:"position,omitempty"` // The source of the note (a tx hash or otherwise) - Source *v1alpha13.NoteSource `protobuf:"bytes,8,opt,name=source,proto3" json:"source,omitempty"` + Source *v1alpha14.NoteSource `protobuf:"bytes,8,opt,name=source,proto3" json:"source,omitempty"` } func (m *SpendableNoteRecord) Reset() { *m = SpendableNoteRecord{} } func (m *SpendableNoteRecord) String() string { return proto.CompactTextString(m) } func (*SpendableNoteRecord) ProtoMessage() {} func (*SpendableNoteRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{47} + return fileDescriptor_0aa947b204e6a7c2, []int{46} } func (m *SpendableNoteRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3397,7 +3201,7 @@ func (m *SpendableNoteRecord) GetPosition() uint64 { return 0 } -func (m *SpendableNoteRecord) GetSource() *v1alpha13.NoteSource { +func (m *SpendableNoteRecord) GetSource() *v1alpha14.NoteSource { if m != nil { return m.Source } @@ -3413,21 +3217,21 @@ func (*SpendableNoteRecord) XXX_OneofWrappers() []interface{} { type SwapRecord struct { SwapCommitment *v1alpha11.StateCommitment `protobuf:"bytes,1,opt,name=swap_commitment,json=swapCommitment,proto3" json:"swap_commitment,omitempty"` - Swap *v1alpha14.SwapPlaintext `protobuf:"bytes,2,opt,name=swap,proto3" json:"swap,omitempty"` + Swap *v1alpha15.SwapPlaintext `protobuf:"bytes,2,opt,name=swap,proto3" json:"swap,omitempty"` Position uint64 `protobuf:"varint,3,opt,name=position,proto3" json:"position,omitempty"` Nullifier *v1alpha11.Nullifier `protobuf:"bytes,4,opt,name=nullifier,proto3" json:"nullifier,omitempty"` - OutputData *v1alpha14.BatchSwapOutputData `protobuf:"bytes,5,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` + OutputData *v1alpha15.BatchSwapOutputData `protobuf:"bytes,5,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` // Types that are valid to be assigned to XHeightClaimed: // *SwapRecord_HeightClaimed XHeightClaimed isSwapRecord_XHeightClaimed `protobuf_oneof:"_height_claimed"` - Source *v1alpha13.NoteSource `protobuf:"bytes,7,opt,name=source,proto3" json:"source,omitempty"` + Source *v1alpha14.NoteSource `protobuf:"bytes,7,opt,name=source,proto3" json:"source,omitempty"` } func (m *SwapRecord) Reset() { *m = SwapRecord{} } func (m *SwapRecord) String() string { return proto.CompactTextString(m) } func (*SwapRecord) ProtoMessage() {} func (*SwapRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_0aa947b204e6a7c2, []int{48} + return fileDescriptor_0aa947b204e6a7c2, []int{47} } func (m *SwapRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3482,7 +3286,7 @@ func (m *SwapRecord) GetSwapCommitment() *v1alpha11.StateCommitment { return nil } -func (m *SwapRecord) GetSwap() *v1alpha14.SwapPlaintext { +func (m *SwapRecord) GetSwap() *v1alpha15.SwapPlaintext { if m != nil { return m.Swap } @@ -3503,7 +3307,7 @@ func (m *SwapRecord) GetNullifier() *v1alpha11.Nullifier { return nil } -func (m *SwapRecord) GetOutputData() *v1alpha14.BatchSwapOutputData { +func (m *SwapRecord) GetOutputData() *v1alpha15.BatchSwapOutputData { if m != nil { return m.OutputData } @@ -3517,7 +3321,7 @@ func (m *SwapRecord) GetHeightClaimed() uint64 { return 0 } -func (m *SwapRecord) GetSource() *v1alpha13.NoteSource { +func (m *SwapRecord) GetSource() *v1alpha14.NoteSource { if m != nil { return m.Source } @@ -3531,29 +3335,174 @@ func (*SwapRecord) XXX_OneofWrappers() []interface{} { } } -func init() { - proto.RegisterType((*BroadcastTransactionRequest)(nil), "penumbra.view.v1alpha1.BroadcastTransactionRequest") - proto.RegisterType((*BroadcastTransactionResponse)(nil), "penumbra.view.v1alpha1.BroadcastTransactionResponse") - proto.RegisterType((*TransactionPlannerRequest)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest") - proto.RegisterType((*TransactionPlannerRequest_Output)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Output") - proto.RegisterType((*TransactionPlannerRequest_Swap)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Swap") - proto.RegisterType((*TransactionPlannerRequest_Delegate)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Delegate") - proto.RegisterType((*TransactionPlannerRequest_Undelegate)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Undelegate") - proto.RegisterType((*TransactionPlannerResponse)(nil), "penumbra.view.v1alpha1.TransactionPlannerResponse") - proto.RegisterType((*AddressByIndexRequest)(nil), "penumbra.view.v1alpha1.AddressByIndexRequest") - proto.RegisterType((*AddressByIndexResponse)(nil), "penumbra.view.v1alpha1.AddressByIndexResponse") - proto.RegisterType((*IndexByAddressRequest)(nil), "penumbra.view.v1alpha1.IndexByAddressRequest") - proto.RegisterType((*IndexByAddressResponse)(nil), "penumbra.view.v1alpha1.IndexByAddressResponse") - proto.RegisterType((*EphemeralAddressRequest)(nil), "penumbra.view.v1alpha1.EphemeralAddressRequest") - proto.RegisterType((*EphemeralAddressResponse)(nil), "penumbra.view.v1alpha1.EphemeralAddressResponse") - proto.RegisterType((*BalanceByAddressRequest)(nil), "penumbra.view.v1alpha1.BalanceByAddressRequest") - proto.RegisterType((*BalanceByAddressResponse)(nil), "penumbra.view.v1alpha1.BalanceByAddressResponse") - proto.RegisterType((*ViewAuthToken)(nil), "penumbra.view.v1alpha1.ViewAuthToken") - proto.RegisterType((*ViewAuthRequest)(nil), "penumbra.view.v1alpha1.ViewAuthRequest") - proto.RegisterType((*ViewAuthResponse)(nil), "penumbra.view.v1alpha1.ViewAuthResponse") - proto.RegisterType((*StatusRequest)(nil), "penumbra.view.v1alpha1.StatusRequest") - proto.RegisterType((*StatusResponse)(nil), "penumbra.view.v1alpha1.StatusResponse") - proto.RegisterType((*StatusStreamRequest)(nil), "penumbra.view.v1alpha1.StatusStreamRequest") +type OwnedPositionIdsRequest struct { + // Types that are valid to be assigned to XPositionState: + // *OwnedPositionIdsRequest_PositionState + XPositionState isOwnedPositionIdsRequest_XPositionState `protobuf_oneof:"_position_state"` + // Types that are valid to be assigned to XTradingPair: + // *OwnedPositionIdsRequest_TradingPair + XTradingPair isOwnedPositionIdsRequest_XTradingPair `protobuf_oneof:"_trading_pair"` +} + +func (m *OwnedPositionIdsRequest) Reset() { *m = OwnedPositionIdsRequest{} } +func (m *OwnedPositionIdsRequest) String() string { return proto.CompactTextString(m) } +func (*OwnedPositionIdsRequest) ProtoMessage() {} +func (*OwnedPositionIdsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{48} +} +func (m *OwnedPositionIdsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OwnedPositionIdsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OwnedPositionIdsRequest.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 *OwnedPositionIdsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_OwnedPositionIdsRequest.Merge(m, src) +} +func (m *OwnedPositionIdsRequest) XXX_Size() int { + return m.Size() +} +func (m *OwnedPositionIdsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_OwnedPositionIdsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_OwnedPositionIdsRequest proto.InternalMessageInfo + +type isOwnedPositionIdsRequest_XPositionState interface { + isOwnedPositionIdsRequest_XPositionState() + MarshalTo([]byte) (int, error) + Size() int +} +type isOwnedPositionIdsRequest_XTradingPair interface { + isOwnedPositionIdsRequest_XTradingPair() + MarshalTo([]byte) (int, error) + Size() int +} + +type OwnedPositionIdsRequest_PositionState struct { + PositionState *v1alpha15.PositionState `protobuf:"bytes,1,opt,name=position_state,json=positionState,proto3,oneof" json:"position_state,omitempty"` +} +type OwnedPositionIdsRequest_TradingPair struct { + TradingPair *v1alpha15.TradingPair `protobuf:"bytes,2,opt,name=trading_pair,json=tradingPair,proto3,oneof" json:"trading_pair,omitempty"` +} + +func (*OwnedPositionIdsRequest_PositionState) isOwnedPositionIdsRequest_XPositionState() {} +func (*OwnedPositionIdsRequest_TradingPair) isOwnedPositionIdsRequest_XTradingPair() {} + +func (m *OwnedPositionIdsRequest) GetXPositionState() isOwnedPositionIdsRequest_XPositionState { + if m != nil { + return m.XPositionState + } + return nil +} +func (m *OwnedPositionIdsRequest) GetXTradingPair() isOwnedPositionIdsRequest_XTradingPair { + if m != nil { + return m.XTradingPair + } + return nil +} + +func (m *OwnedPositionIdsRequest) GetPositionState() *v1alpha15.PositionState { + if x, ok := m.GetXPositionState().(*OwnedPositionIdsRequest_PositionState); ok { + return x.PositionState + } + return nil +} + +func (m *OwnedPositionIdsRequest) GetTradingPair() *v1alpha15.TradingPair { + if x, ok := m.GetXTradingPair().(*OwnedPositionIdsRequest_TradingPair); ok { + return x.TradingPair + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*OwnedPositionIdsRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*OwnedPositionIdsRequest_PositionState)(nil), + (*OwnedPositionIdsRequest_TradingPair)(nil), + } +} + +type OwnedPositionIdsResponse struct { + PositionId *v1alpha15.PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` +} + +func (m *OwnedPositionIdsResponse) Reset() { *m = OwnedPositionIdsResponse{} } +func (m *OwnedPositionIdsResponse) String() string { return proto.CompactTextString(m) } +func (*OwnedPositionIdsResponse) ProtoMessage() {} +func (*OwnedPositionIdsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0aa947b204e6a7c2, []int{49} +} +func (m *OwnedPositionIdsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OwnedPositionIdsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OwnedPositionIdsResponse.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 *OwnedPositionIdsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_OwnedPositionIdsResponse.Merge(m, src) +} +func (m *OwnedPositionIdsResponse) XXX_Size() int { + return m.Size() +} +func (m *OwnedPositionIdsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_OwnedPositionIdsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_OwnedPositionIdsResponse proto.InternalMessageInfo + +func (m *OwnedPositionIdsResponse) GetPositionId() *v1alpha15.PositionId { + if m != nil { + return m.PositionId + } + return nil +} + +func init() { + proto.RegisterType((*AuthorizeAndBuildRequest)(nil), "penumbra.view.v1alpha1.AuthorizeAndBuildRequest") + proto.RegisterType((*AuthorizeAndBuildResponse)(nil), "penumbra.view.v1alpha1.AuthorizeAndBuildResponse") + proto.RegisterType((*BroadcastTransactionRequest)(nil), "penumbra.view.v1alpha1.BroadcastTransactionRequest") + proto.RegisterType((*BroadcastTransactionResponse)(nil), "penumbra.view.v1alpha1.BroadcastTransactionResponse") + proto.RegisterType((*TransactionPlannerRequest)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest") + proto.RegisterType((*TransactionPlannerRequest_Output)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Output") + proto.RegisterType((*TransactionPlannerRequest_Swap)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Swap") + proto.RegisterType((*TransactionPlannerRequest_SwapClaim)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.SwapClaim") + proto.RegisterType((*TransactionPlannerRequest_Delegate)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Delegate") + proto.RegisterType((*TransactionPlannerRequest_Undelegate)(nil), "penumbra.view.v1alpha1.TransactionPlannerRequest.Undelegate") + proto.RegisterType((*TransactionPlannerResponse)(nil), "penumbra.view.v1alpha1.TransactionPlannerResponse") + proto.RegisterType((*AddressByIndexRequest)(nil), "penumbra.view.v1alpha1.AddressByIndexRequest") + proto.RegisterType((*AddressByIndexResponse)(nil), "penumbra.view.v1alpha1.AddressByIndexResponse") + proto.RegisterType((*IndexByAddressRequest)(nil), "penumbra.view.v1alpha1.IndexByAddressRequest") + proto.RegisterType((*IndexByAddressResponse)(nil), "penumbra.view.v1alpha1.IndexByAddressResponse") + proto.RegisterType((*EphemeralAddressRequest)(nil), "penumbra.view.v1alpha1.EphemeralAddressRequest") + proto.RegisterType((*EphemeralAddressResponse)(nil), "penumbra.view.v1alpha1.EphemeralAddressResponse") + proto.RegisterType((*BalancesRequest)(nil), "penumbra.view.v1alpha1.BalancesRequest") + proto.RegisterType((*BalancesResponse)(nil), "penumbra.view.v1alpha1.BalancesResponse") + proto.RegisterType((*ViewAuthToken)(nil), "penumbra.view.v1alpha1.ViewAuthToken") + proto.RegisterType((*ViewAuthRequest)(nil), "penumbra.view.v1alpha1.ViewAuthRequest") + proto.RegisterType((*ViewAuthResponse)(nil), "penumbra.view.v1alpha1.ViewAuthResponse") + proto.RegisterType((*StatusRequest)(nil), "penumbra.view.v1alpha1.StatusRequest") + proto.RegisterType((*StatusResponse)(nil), "penumbra.view.v1alpha1.StatusResponse") + proto.RegisterType((*StatusStreamRequest)(nil), "penumbra.view.v1alpha1.StatusStreamRequest") proto.RegisterType((*StatusStreamResponse)(nil), "penumbra.view.v1alpha1.StatusStreamResponse") proto.RegisterType((*NotesRequest)(nil), "penumbra.view.v1alpha1.NotesRequest") proto.RegisterType((*NotesForVotingRequest)(nil), "penumbra.view.v1alpha1.NotesForVotingRequest") @@ -3573,197 +3522,211 @@ func init() { proto.RegisterType((*SwapByCommitmentResponse)(nil), "penumbra.view.v1alpha1.SwapByCommitmentResponse") proto.RegisterType((*NullifierStatusRequest)(nil), "penumbra.view.v1alpha1.NullifierStatusRequest") proto.RegisterType((*NullifierStatusResponse)(nil), "penumbra.view.v1alpha1.NullifierStatusResponse") - proto.RegisterType((*TransactionHashesRequest)(nil), "penumbra.view.v1alpha1.TransactionHashesRequest") - proto.RegisterType((*TransactionHashesResponse)(nil), "penumbra.view.v1alpha1.TransactionHashesResponse") - proto.RegisterType((*TransactionByHashRequest)(nil), "penumbra.view.v1alpha1.TransactionByHashRequest") - proto.RegisterType((*TransactionByHashResponse)(nil), "penumbra.view.v1alpha1.TransactionByHashResponse") - proto.RegisterType((*TransactionsRequest)(nil), "penumbra.view.v1alpha1.TransactionsRequest") - proto.RegisterType((*TransactionsResponse)(nil), "penumbra.view.v1alpha1.TransactionsResponse") - proto.RegisterType((*TransactionPerspectiveRequest)(nil), "penumbra.view.v1alpha1.TransactionPerspectiveRequest") - proto.RegisterType((*TransactionPerspectiveResponse)(nil), "penumbra.view.v1alpha1.TransactionPerspectiveResponse") + proto.RegisterType((*TransactionInfoByHashRequest)(nil), "penumbra.view.v1alpha1.TransactionInfoByHashRequest") + proto.RegisterType((*TransactionInfoRequest)(nil), "penumbra.view.v1alpha1.TransactionInfoRequest") + proto.RegisterType((*TransactionInfo)(nil), "penumbra.view.v1alpha1.TransactionInfo") + proto.RegisterType((*TransactionInfoResponse)(nil), "penumbra.view.v1alpha1.TransactionInfoResponse") + proto.RegisterType((*TransactionInfoByHashResponse)(nil), "penumbra.view.v1alpha1.TransactionInfoByHashResponse") proto.RegisterType((*NotesResponse)(nil), "penumbra.view.v1alpha1.NotesResponse") proto.RegisterType((*NotesForVotingResponse)(nil), "penumbra.view.v1alpha1.NotesForVotingResponse") proto.RegisterType((*SpendableNoteRecord)(nil), "penumbra.view.v1alpha1.SpendableNoteRecord") proto.RegisterType((*SwapRecord)(nil), "penumbra.view.v1alpha1.SwapRecord") + proto.RegisterType((*OwnedPositionIdsRequest)(nil), "penumbra.view.v1alpha1.OwnedPositionIdsRequest") + proto.RegisterType((*OwnedPositionIdsResponse)(nil), "penumbra.view.v1alpha1.OwnedPositionIdsResponse") } func init() { proto.RegisterFile("penumbra/view/v1alpha1/view.proto", fileDescriptor_0aa947b204e6a7c2) } var fileDescriptor_0aa947b204e6a7c2 = []byte{ - // 2768 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xcf, 0x73, 0xe4, 0xc4, - 0xf5, 0x5f, 0xcd, 0xf8, 0xd7, 0xbe, 0x19, 0xcf, 0x78, 0x65, 0xaf, 0x3d, 0xcc, 0x17, 0xcc, 0x22, - 0x76, 0x17, 0x7f, 0x97, 0x30, 0xde, 0xf5, 0x02, 0x21, 0x06, 0x0a, 0x3c, 0x18, 0x63, 0x17, 0xbb, - 0xe0, 0xc8, 0xac, 0x37, 0x10, 0x13, 0x55, 0x5b, 0x6a, 0x7b, 0x14, 0x6b, 0x24, 0x21, 0xf5, 0xf8, - 0x07, 0x39, 0x71, 0x21, 0x14, 0xa7, 0x54, 0xe5, 0x90, 0xe4, 0x9a, 0x5b, 0x52, 0xa9, 0xca, 0x29, - 0x7f, 0x41, 0x2e, 0x54, 0x0e, 0x29, 0x0e, 0xa4, 0x2a, 0x95, 0x54, 0xa5, 0x52, 0xcb, 0x2d, 0x7f, - 0x40, 0xae, 0x49, 0xf5, 0x2f, 0x8d, 0xa4, 0x91, 0x98, 0x19, 0xdb, 0x54, 0xb2, 0xe1, 0x36, 0xea, - 0x7e, 0xef, 0xf3, 0x5e, 0xbf, 0xd7, 0xfd, 0xfa, 0xbd, 0x37, 0x0d, 0x4f, 0xf8, 0xd8, 0xed, 0xb4, - 0x77, 0x03, 0xb4, 0x78, 0x68, 0xe3, 0xa3, 0xc5, 0xc3, 0x5b, 0xc8, 0xf1, 0x5b, 0xe8, 0x16, 0xfb, - 0x6a, 0xf8, 0x81, 0x47, 0x3c, 0x75, 0x56, 0x92, 0x34, 0xd8, 0xa0, 0x24, 0xa9, 0x2f, 0x44, 0xac, - 0xa6, 0x17, 0xe0, 0x45, 0xb3, 0x85, 0x6c, 0xb7, 0x0b, 0xc0, 0x3e, 0x39, 0x42, 0xfd, 0x46, 0x8a, - 0x32, 0x38, 0xf1, 0x89, 0x17, 0x23, 0x65, 0xdf, 0x82, 0xf6, 0x6a, 0x92, 0xd6, 0xc2, 0xc7, 0x5d, - 0x42, 0x0b, 0x1f, 0x0b, 0xaa, 0x67, 0x93, 0x54, 0x24, 0x40, 0x6e, 0x88, 0x4c, 0x62, 0x7b, 0x31, - 0x0d, 0x62, 0x83, 0xd9, 0xd8, 0xf6, 0xae, 0xd9, 0xa5, 0xb6, 0x77, 0x4d, 0x4e, 0xa5, 0xfd, 0x42, - 0x81, 0xff, 0x6b, 0x06, 0x1e, 0xb2, 0x4c, 0x14, 0x92, 0x77, 0xba, 0x20, 0x3a, 0xfe, 0xa0, 0x83, - 0x43, 0xa2, 0x7e, 0x17, 0x4a, 0x31, 0xe8, 0x9a, 0x72, 0x45, 0x59, 0x28, 0x2d, 0x2d, 0x36, 0x22, - 0x2b, 0x51, 0xec, 0x46, 0x5c, 0xb8, 0x94, 0xd1, 0x88, 0x83, 0xc5, 0x31, 0xd4, 0xa7, 0xa0, 0x8a, - 0x8e, 0x90, 0x4d, 0x0c, 0x0b, 0x13, 0xcc, 0x61, 0x0b, 0x57, 0x94, 0x85, 0x09, 0xbd, 0xc2, 0x86, - 0x57, 0xe5, 0xa8, 0xb6, 0x0d, 0x8f, 0x66, 0xab, 0x16, 0xfa, 0x9e, 0x1b, 0x62, 0xf5, 0x79, 0x28, - 0xd8, 0x96, 0x50, 0xe9, 0xfa, 0x20, 0x2a, 0x6d, 0x58, 0x7a, 0xc1, 0xb6, 0xb4, 0x5f, 0x01, 0x3c, - 0x12, 0xc3, 0xdb, 0x74, 0x90, 0xeb, 0xe2, 0x40, 0xae, 0xf8, 0x49, 0x98, 0xc4, 0xc7, 0xbe, 0x1d, - 0x9c, 0x18, 0x2d, 0x6c, 0xef, 0xb7, 0x08, 0x13, 0x30, 0xa2, 0x97, 0xf9, 0xe0, 0x3a, 0x1b, 0x53, - 0x9f, 0x85, 0xe2, 0x1e, 0xc6, 0x4c, 0xef, 0xd2, 0x92, 0x96, 0x92, 0x2d, 0x5c, 0x1c, 0x89, 0x5d, - 0xc3, 0x58, 0xa7, 0xe4, 0xaa, 0x0a, 0x23, 0x6d, 0xdc, 0xf6, 0x6a, 0xc5, 0x2b, 0xca, 0xc2, 0x45, - 0x9d, 0xfd, 0x56, 0x77, 0x60, 0x0a, 0x99, 0xa6, 0xd7, 0x71, 0x89, 0xb1, 0x1f, 0x78, 0x1d, 0xdf, - 0xb0, 0xad, 0x5a, 0x85, 0xc1, 0x3e, 0xd3, 0x07, 0x76, 0x85, 0xb3, 0xbd, 0x41, 0xb9, 0x36, 0xac, - 0xf5, 0x0b, 0x7a, 0x05, 0x25, 0x46, 0x3e, 0x51, 0x14, 0xf5, 0x55, 0x18, 0x25, 0xde, 0x01, 0x76, - 0x6b, 0x55, 0x06, 0x79, 0xad, 0x91, 0xbd, 0xbd, 0x1b, 0xdb, 0x36, 0x3e, 0x5a, 0xe9, 0x90, 0xd6, - 0x3b, 0x94, 0x78, 0x5d, 0xd1, 0x39, 0x17, 0x45, 0xd0, 0x61, 0xdc, 0xeb, 0x10, 0xbf, 0x43, 0xc2, - 0xda, 0xcc, 0x95, 0xe2, 0x42, 0x69, 0xe9, 0x85, 0x3c, 0x8c, 0x5c, 0x93, 0x36, 0xde, 0x66, 0x00, - 0xba, 0x04, 0x52, 0xef, 0xc0, 0x68, 0x78, 0x84, 0xfc, 0xb0, 0x36, 0xcf, 0x10, 0x9f, 0x1f, 0x1e, - 0x71, 0xeb, 0x08, 0xf9, 0x3a, 0x07, 0x51, 0x77, 0xa0, 0x64, 0x61, 0x07, 0xef, 0x23, 0x4a, 0x17, - 0xd6, 0x16, 0x18, 0xe6, 0xf2, 0xf0, 0x98, 0xab, 0x1c, 0x04, 0xeb, 0x71, 0x38, 0x75, 0x17, 0x26, - 0x3b, 0x6e, 0x1c, 0x7f, 0x89, 0xe1, 0xbf, 0x34, 0x3c, 0xfe, 0x3d, 0x09, 0x83, 0xf5, 0x24, 0xa4, - 0xba, 0x06, 0x25, 0x7b, 0xd7, 0x34, 0x38, 0x57, 0x58, 0x7b, 0x89, 0x49, 0xb8, 0x96, 0x72, 0x3f, - 0x3d, 0xb3, 0xdd, 0x9d, 0xbc, 0x6b, 0xae, 0xf0, 0xc3, 0x00, 0xb6, 0xfc, 0x19, 0xd6, 0x3f, 0x56, - 0x60, 0x8c, 0xdb, 0x5a, 0x5d, 0x86, 0xd1, 0x43, 0xe4, 0x74, 0xb0, 0x38, 0x1e, 0x57, 0xfb, 0xec, - 0xa5, 0x6d, 0x4a, 0xab, 0x73, 0x16, 0xf5, 0x55, 0x18, 0x47, 0x96, 0x15, 0xe0, 0x30, 0x14, 0x1b, - 0xfc, 0x7a, 0xbf, 0x9d, 0xc8, 0xa9, 0x75, 0xc9, 0x56, 0xff, 0xbd, 0x02, 0x23, 0xd4, 0x45, 0x67, - 0x52, 0x63, 0x03, 0xca, 0x04, 0x05, 0xfb, 0x98, 0x18, 0x28, 0x0c, 0x31, 0x19, 0x54, 0x17, 0x4a, - 0xbb, 0x61, 0xe9, 0x25, 0xce, 0xcb, 0x3e, 0xe5, 0x71, 0x2d, 0x0e, 0x75, 0x5c, 0xeb, 0x3f, 0x57, - 0x60, 0x42, 0x6e, 0x0a, 0xf5, 0x65, 0x18, 0x43, 0x6d, 0x7a, 0xba, 0xc4, 0x52, 0xae, 0xf5, 0xd3, - 0x83, 0x11, 0xeb, 0x82, 0x49, 0xbd, 0x0b, 0x65, 0xdb, 0xc2, 0x2e, 0xb1, 0xc9, 0x89, 0x71, 0x80, - 0x4f, 0xc4, 0x62, 0x6e, 0xf4, 0x01, 0xd9, 0x10, 0x2c, 0x6f, 0xe2, 0x13, 0xbd, 0x64, 0x77, 0x3f, - 0xea, 0xeb, 0x00, 0xdd, 0xed, 0x74, 0x16, 0x2b, 0x37, 0xa7, 0xe1, 0x92, 0x91, 0x0e, 0x40, 0xcd, - 0x09, 0x18, 0x33, 0x58, 0x04, 0xd0, 0x30, 0xd4, 0xb3, 0x76, 0xb4, 0x88, 0xc0, 0x6f, 0xc0, 0x88, - 0xef, 0x20, 0x79, 0x2d, 0xdc, 0x1e, 0xf2, 0x5a, 0xa0, 0x68, 0x3a, 0x03, 0xd0, 0x6c, 0xb8, 0x2c, - 0x36, 0x51, 0xf3, 0x64, 0xc3, 0xb5, 0xf0, 0xb1, 0x8c, 0xc6, 0x9b, 0x30, 0x29, 0x36, 0x95, 0x61, - 0xd3, 0x71, 0x21, 0xea, 0xe9, 0xc1, 0x76, 0x24, 0x87, 0x2a, 0xa3, 0xd8, 0x97, 0xf6, 0x1e, 0xcc, - 0xa6, 0x45, 0x89, 0xd5, 0xc4, 0xf6, 0xbd, 0x72, 0xaa, 0x7d, 0xaf, 0xbd, 0x0b, 0x97, 0x19, 0x64, - 0xf3, 0x44, 0x4e, 0x89, 0x65, 0x9c, 0x1d, 0xfa, 0x23, 0x05, 0x66, 0xd3, 0xd8, 0x42, 0xef, 0x7b, - 0x67, 0xb7, 0xd1, 0xfa, 0x85, 0xa4, 0x95, 0x3e, 0x51, 0x94, 0xe6, 0x14, 0x54, 0x8c, 0x04, 0xae, - 0x76, 0x00, 0x73, 0xaf, 0xfb, 0x2d, 0xdc, 0xc6, 0x01, 0x72, 0x52, 0x0b, 0x3c, 0x7f, 0x3f, 0xed, - 0x40, 0xad, 0x57, 0xd8, 0xb9, 0x79, 0xea, 0xfb, 0x30, 0xd7, 0x44, 0x0e, 0x72, 0x4d, 0xfc, 0x35, - 0xf8, 0xea, 0x67, 0x0a, 0xd4, 0x7a, 0xd1, 0x85, 0xee, 0x2f, 0xc1, 0x28, 0x8f, 0x67, 0xca, 0x50, - 0xf1, 0x8c, 0x33, 0xc5, 0xc2, 0x50, 0xe1, 0x14, 0x61, 0x48, 0xbb, 0x06, 0x93, 0x89, 0xab, 0x5e, - 0x9d, 0x81, 0x51, 0x9b, 0x1e, 0x69, 0xa6, 0x4d, 0x59, 0xe7, 0x1f, 0x9a, 0x0e, 0x55, 0x49, 0x26, - 0xad, 0xf2, 0x0a, 0x14, 0xf7, 0x0e, 0x0f, 0x84, 0xd2, 0xfd, 0x52, 0x93, 0xb5, 0x8e, 0xe3, 0x50, - 0x00, 0xdb, 0xdd, 0xa7, 0xa1, 0x8b, 0x72, 0x6a, 0x6f, 0xc3, 0x54, 0x17, 0x53, 0xd8, 0xe2, 0x45, - 0x99, 0x9e, 0x28, 0x43, 0xa4, 0x27, 0x22, 0x39, 0xd1, 0xfe, 0xa8, 0xc0, 0xe4, 0x16, 0x41, 0xa4, - 0x13, 0x79, 0xee, 0xbf, 0x3c, 0x97, 0xea, 0x17, 0x6b, 0x75, 0xa8, 0xc8, 0xf5, 0x08, 0xfb, 0x3c, - 0x0e, 0xa5, 0xf0, 0xc4, 0x35, 0x93, 0x99, 0x28, 0xd0, 0x21, 0x91, 0x87, 0x3e, 0x0e, 0x25, 0x13, - 0x11, 0xb3, 0x65, 0xbb, 0xfb, 0x46, 0xc7, 0x17, 0x79, 0x34, 0xc8, 0xa1, 0x7b, 0xbe, 0xf6, 0x85, - 0x02, 0xd3, 0x1c, 0x74, 0x8b, 0x04, 0x18, 0xb5, 0xff, 0x47, 0x4c, 0x15, 0xc0, 0x4c, 0x72, 0x55, - 0xc2, 0x60, 0xdf, 0x81, 0x47, 0x1c, 0x44, 0x70, 0x48, 0x8c, 0x03, 0xd7, 0x3b, 0x72, 0x8d, 0x5d, - 0xc7, 0x33, 0x0f, 0x92, 0xe6, 0x9b, 0xe5, 0x04, 0x6f, 0xd2, 0xf9, 0x26, 0x9d, 0xee, 0x9a, 0x32, - 0x6e, 0xeb, 0x42, 0xda, 0xd6, 0xda, 0x6f, 0x8b, 0x50, 0x7e, 0xcb, 0x23, 0x38, 0x8c, 0x55, 0x0a, - 0xb6, 0x6b, 0x3a, 0x1d, 0x0b, 0x1b, 0xa1, 0x8f, 0xc5, 0x91, 0x9c, 0xd0, 0xcb, 0x62, 0x70, 0x8b, - 0x8e, 0xa9, 0x2b, 0x30, 0xc1, 0x4e, 0x2e, 0x35, 0x70, 0x71, 0xa8, 0x13, 0x3f, 0x8e, 0xf8, 0x8f, - 0xde, 0xd8, 0x3a, 0x72, 0xc6, 0xd8, 0xaa, 0x5e, 0x87, 0x2a, 0x0f, 0x08, 0x06, 0xf1, 0x98, 0xee, - 0x56, 0x6d, 0x94, 0xad, 0x77, 0x92, 0x0f, 0xbf, 0xe3, 0x51, 0xe5, 0xad, 0x87, 0x7d, 0x97, 0x7c, - 0x51, 0x80, 0xcb, 0xcc, 0x63, 0x6b, 0x5e, 0xb0, 0xed, 0x11, 0xdb, 0xdd, 0x97, 0xae, 0xbb, 0x01, - 0x97, 0x0e, 0x3d, 0x82, 0x76, 0x1d, 0x6c, 0x20, 0x92, 0xdc, 0x1f, 0x55, 0x31, 0xb1, 0x42, 0xc4, - 0xc6, 0xe8, 0x31, 0x7f, 0xf1, 0xac, 0xe6, 0x7f, 0xc8, 0xcd, 0xfa, 0x69, 0x11, 0x2a, 0xf7, 0x6d, - 0xe2, 0xc6, 0xee, 0xcc, 0x77, 0x61, 0xca, 0xf5, 0x08, 0x36, 0x4c, 0xaf, 0xdd, 0xb6, 0x49, 0x1b, - 0xbb, 0x84, 0xd6, 0x0e, 0xb4, 0x8c, 0x69, 0xf4, 0x59, 0x11, 0x3d, 0xc6, 0xf8, 0xb5, 0x88, 0x4d, - 0xaf, 0x52, 0x9c, 0xee, 0x77, 0xa8, 0xfe, 0x00, 0xa6, 0x62, 0x89, 0xa4, 0xc1, 0xf2, 0xcd, 0xe2, - 0xe9, 0xf3, 0xcd, 0x2a, 0x49, 0x0e, 0x3c, 0xec, 0xce, 0xc0, 0x50, 0x8d, 0x7c, 0x21, 0x82, 0xa0, - 0x0e, 0xe5, 0x23, 0x3e, 0x64, 0x58, 0x88, 0xa0, 0x61, 0x9a, 0x36, 0x02, 0x6a, 0x15, 0x11, 0xa4, - 0x97, 0x8e, 0xba, 0x1f, 0xda, 0xdf, 0x14, 0x98, 0x15, 0x93, 0x2b, 0xae, 0xd5, 0xec, 0xd8, 0x8e, - 0x25, 0x7d, 0x9f, 0xe5, 0x20, 0xe5, 0x1c, 0x1d, 0x64, 0x81, 0x8a, 0x3a, 0xa4, 0xe5, 0x05, 0xf6, - 0x87, 0xac, 0x5e, 0xe6, 0x8b, 0xe2, 0xe9, 0xcf, 0x73, 0x83, 0x48, 0x58, 0x89, 0x73, 0xb3, 0xa5, - 0x5d, 0x42, 0xe9, 0x21, 0xcd, 0x81, 0xb9, 0x9e, 0xf5, 0x09, 0x7b, 0x9e, 0x7f, 0x0f, 0x4c, 0xfb, - 0x4d, 0x11, 0x26, 0x59, 0x9c, 0x8f, 0x4e, 0x50, 0x1d, 0x26, 0xf6, 0x6c, 0x87, 0xe0, 0x00, 0xf3, - 0x96, 0xd6, 0x84, 0x1e, 0x7d, 0xab, 0x3f, 0x84, 0xf9, 0xd8, 0x45, 0x63, 0xda, 0x7b, 0xb6, 0x69, - 0x58, 0xd8, 0xf5, 0xda, 0xb6, 0x2b, 0x9a, 0x12, 0xfc, 0xac, 0xf5, 0x2b, 0xfc, 0x56, 0x29, 0x8f, - 0xfe, 0x68, 0xf7, 0x7e, 0x62, 0x50, 0xab, 0x71, 0x24, 0x75, 0x19, 0x1e, 0x91, 0xb2, 0xba, 0x2d, - 0x0a, 0xbe, 0xd7, 0x42, 0x76, 0xee, 0x26, 0xf4, 0x39, 0x41, 0xb0, 0x1a, 0xcd, 0xb3, 0x5d, 0x1b, - 0xaa, 0x2f, 0x40, 0x4d, 0xf2, 0x76, 0xdc, 0x5d, 0xcf, 0xb5, 0x68, 0x5a, 0x22, 0x58, 0x47, 0x18, - 0xeb, 0xac, 0x98, 0xbf, 0x27, 0xa7, 0x05, 0xe7, 0x75, 0xa8, 0x4a, 0x4e, 0xc7, 0x37, 0xdc, 0x3d, - 0x12, 0xb2, 0x0b, 0x69, 0x42, 0x97, 0x37, 0xec, 0x1d, 0xff, 0xad, 0x3d, 0x12, 0xaa, 0x4b, 0x70, - 0x59, 0xd2, 0xf9, 0x81, 0xe7, 0x7b, 0x21, 0x72, 0x38, 0xf5, 0x18, 0xa3, 0x9e, 0x16, 0x93, 0x9b, - 0x62, 0x8e, 0xf1, 0xac, 0xc0, 0x63, 0x92, 0xe7, 0x90, 0x5d, 0x02, 0x46, 0x80, 0x4d, 0x6c, 0xfb, - 0x44, 0xaa, 0x36, 0xce, 0x78, 0xeb, 0x82, 0x48, 0x5e, 0x14, 0x8c, 0x84, 0xab, 0xa7, 0xdd, 0x81, - 0x8a, 0xf4, 0x96, 0xd8, 0x13, 0xcb, 0xc9, 0x2c, 0xfe, 0xea, 0x20, 0x77, 0xba, 0xc8, 0xe1, 0xb5, - 0x1a, 0xcc, 0xbe, 0xd6, 0x42, 0xb6, 0xbb, 0x89, 0x02, 0xd4, 0xc6, 0x04, 0x07, 0x72, 0x13, 0x68, - 0x2d, 0x98, 0xeb, 0x99, 0x11, 0x02, 0xef, 0x02, 0xf8, 0xd1, 0x68, 0x5e, 0x1a, 0xce, 0xda, 0xd0, - 0x91, 0xd0, 0x34, 0x54, 0x0c, 0x40, 0x9b, 0x85, 0x99, 0xb5, 0xbb, 0xab, 0xbd, 0x1a, 0x58, 0x70, - 0x39, 0x35, 0x2e, 0xe4, 0xbf, 0x99, 0x21, 0xff, 0xe9, 0xaf, 0x96, 0xbf, 0xd6, 0xb6, 0x72, 0xa4, - 0xff, 0xa5, 0x00, 0x73, 0xf4, 0x62, 0x6e, 0x9e, 0xc4, 0x22, 0xbf, 0x38, 0x08, 0xf7, 0xa1, 0x9a, - 0xba, 0x4a, 0xc4, 0x59, 0x1f, 0xf6, 0x26, 0xa9, 0x24, 0x6f, 0x92, 0xac, 0xbe, 0x73, 0x31, 0xab, - 0xef, 0xfc, 0xb0, 0xdf, 0x08, 0x2e, 0xd4, 0x7a, 0x6d, 0x1b, 0x5d, 0x0d, 0x15, 0x96, 0xee, 0xb1, - 0xcc, 0x87, 0xda, 0xa7, 0xd7, 0x93, 0x49, 0x2d, 0xb6, 0x24, 0x35, 0x85, 0xd4, 0xb1, 0xe9, 0x05, - 0x96, 0x3e, 0x19, 0xc6, 0x07, 0x99, 0x33, 0xb7, 0x8e, 0x90, 0x9f, 0xe3, 0xcc, 0xf0, 0x08, 0xf9, - 0xe7, 0xe0, 0x4c, 0x0a, 0xf3, 0x0d, 0x74, 0xa6, 0x0e, 0xb5, 0x5e, 0xdb, 0x46, 0xff, 0x7f, 0x8c, - 0x50, 0xab, 0x08, 0x17, 0x6a, 0xb9, 0x2e, 0x3c, 0x42, 0xbe, 0xf0, 0x1c, 0xa3, 0xd7, 0x3e, 0x2b, - 0xc0, 0xec, 0x5b, 0x1d, 0xc7, 0xb1, 0xf7, 0x6c, 0x1c, 0x24, 0x2b, 0xe8, 0x35, 0xb8, 0xe8, 0xca, - 0x19, 0xe1, 0xa9, 0x85, 0x3e, 0x66, 0x8a, 0x90, 0xf4, 0x2e, 0xeb, 0x37, 0xc6, 0x3d, 0x8b, 0x30, - 0xd7, 0x63, 0x49, 0xe1, 0x9d, 0x19, 0x18, 0xe5, 0x55, 0x21, 0xbf, 0xcd, 0xf9, 0x87, 0xf6, 0xb1, - 0x02, 0xb5, 0x58, 0x56, 0xb0, 0x8e, 0xc2, 0x56, 0xb7, 0xa0, 0xbc, 0x0e, 0xe5, 0x90, 0xa0, 0x20, - 0x59, 0x90, 0xac, 0x5f, 0xd0, 0x4b, 0x6c, 0x94, 0x97, 0x23, 0x74, 0x59, 0x1a, 0x00, 0x76, 0xad, - 0x44, 0xa5, 0xba, 0xae, 0xe8, 0x17, 0xb1, 0x6b, 0x45, 0x34, 0xcd, 0x2a, 0x4c, 0x1a, 0x71, 0xb0, - 0xe6, 0x24, 0x94, 0x8c, 0x2e, 0x97, 0x76, 0x3f, 0xf1, 0x1f, 0x98, 0xd4, 0x43, 0xe8, 0xfe, 0x04, - 0x94, 0x33, 0x2a, 0xe7, 0xd2, 0x6e, 0xac, 0x5c, 0x9e, 0x83, 0x71, 0x72, 0x6c, 0xb4, 0x50, 0xd8, - 0x62, 0x0a, 0x94, 0xf5, 0x31, 0x72, 0x4c, 0x51, 0xb4, 0xdb, 0x89, 0x05, 0x36, 0x4f, 0xe8, 0xa0, - 0x5c, 0x60, 0x8c, 0x49, 0x49, 0x30, 0xed, 0x24, 0xb4, 0x91, 0x4c, 0x42, 0x9b, 0x57, 0xa0, 0x40, - 0x8e, 0x4f, 0x9b, 0x76, 0x15, 0xc8, 0xb1, 0xf6, 0x91, 0x02, 0xd3, 0xb1, 0xb1, 0xff, 0x88, 0xbd, - 0x7f, 0xaa, 0xc0, 0x4c, 0x52, 0x87, 0xb3, 0xdb, 0x5a, 0x58, 0xa6, 0x78, 0x7a, 0xcb, 0xbc, 0x00, - 0x8f, 0xc5, 0xf3, 0x6f, 0x1c, 0xd0, 0xfc, 0x92, 0xd8, 0x87, 0xb8, 0xaf, 0xc7, 0xfe, 0xa9, 0xc0, - 0x7c, 0x1e, 0xab, 0x58, 0xd9, 0x1d, 0x28, 0x92, 0x63, 0x19, 0x9e, 0x96, 0x87, 0xad, 0x05, 0x62, - 0x80, 0x14, 0x46, 0xac, 0xb5, 0x70, 0xea, 0xb5, 0xaa, 0xaf, 0x53, 0x75, 0x0e, 0x4f, 0x59, 0x3b, - 0xd2, 0x08, 0x41, 0xf5, 0x38, 0xd4, 0xde, 0x87, 0x49, 0xd1, 0x05, 0x8a, 0x96, 0x59, 0x62, 0x09, - 0x4b, 0xc0, 0x62, 0xec, 0x69, 0x2e, 0x54, 0x70, 0xa3, 0xdf, 0xda, 0xef, 0x14, 0x98, 0x4d, 0xf7, - 0x2c, 0xbe, 0x0e, 0x41, 0xe7, 0xfc, 0x8f, 0x94, 0xf6, 0xaf, 0x22, 0x4c, 0x67, 0x88, 0xcc, 0x4a, - 0xe7, 0x94, 0x73, 0x49, 0xe7, 0xbe, 0x0d, 0x23, 0x2c, 0x81, 0xe1, 0x7a, 0x3f, 0xd9, 0xef, 0x96, - 0xa2, 0x1a, 0x31, 0x86, 0xaf, 0xa1, 0x9f, 0x93, 0xb8, 0x35, 0x47, 0x4e, 0x7f, 0x6b, 0x5e, 0x83, - 0x0a, 0x0f, 0x02, 0x86, 0x19, 0x60, 0x44, 0x70, 0xd4, 0x95, 0xe3, 0xa3, 0xaf, 0xf1, 0x41, 0x1a, - 0xb6, 0x04, 0x19, 0xbf, 0x60, 0xc6, 0x64, 0xd8, 0xe2, 0xa3, 0xac, 0xef, 0x48, 0xc3, 0x56, 0x1d, - 0x26, 0x7c, 0x2f, 0xb4, 0xd9, 0xed, 0x3b, 0xce, 0x80, 0xa2, 0x6f, 0xf5, 0x55, 0x18, 0x0b, 0xbd, - 0x4e, 0x60, 0xe2, 0xda, 0x44, 0xb6, 0xbe, 0xc9, 0x54, 0x9e, 0x9a, 0x6f, 0x8b, 0xd1, 0xeb, 0x82, - 0x8f, 0x05, 0xbc, 0xb8, 0x1a, 0xda, 0x5f, 0x8b, 0x00, 0xdd, 0x5c, 0x23, 0x2b, 0xf5, 0x53, 0xce, - 0x25, 0xf5, 0x7b, 0x59, 0xa4, 0x3d, 0xdc, 0xf1, 0xff, 0x9f, 0x42, 0xb3, 0xf0, 0x71, 0x32, 0xf5, - 0xd9, 0x74, 0x90, 0xed, 0x12, 0x7c, 0x4c, 0x78, 0xf6, 0x93, 0xb0, 0x4a, 0x31, 0x65, 0x95, 0xf3, - 0x72, 0xe4, 0x26, 0x94, 0xf8, 0x5b, 0x07, 0xde, 0xab, 0x18, 0xcd, 0x0c, 0x5a, 0x09, 0x4d, 0x9b, - 0x88, 0x98, 0x2d, 0xaa, 0x2e, 0xff, 0xff, 0x9e, 0x75, 0x29, 0xc0, 0x8b, 0x7e, 0xab, 0x37, 0xba, - 0x5b, 0xc3, 0x41, 0x76, 0x1b, 0x5b, 0x91, 0xd7, 0xe5, 0xe6, 0xe0, 0xc3, 0x3c, 0xeb, 0x91, 0xbe, - 0x1d, 0x3f, 0xa5, 0x6f, 0x2f, 0x41, 0xd5, 0x48, 0x8a, 0x5b, 0xfa, 0xd3, 0x34, 0x4c, 0xd3, 0x20, - 0xb8, 0x19, 0x78, 0xc4, 0x33, 0x3d, 0x67, 0x0b, 0x07, 0x87, 0xb6, 0x89, 0xd5, 0xfb, 0x30, 0xc6, - 0x13, 0x1f, 0x35, 0x37, 0xbb, 0x4a, 0xa4, 0x98, 0xf5, 0xeb, 0xfd, 0xc8, 0x44, 0xb4, 0x3b, 0x80, - 0x72, 0xbc, 0xc5, 0xaf, 0x3e, 0xfd, 0xd5, 0x7c, 0x89, 0xbf, 0x37, 0xea, 0xdf, 0x1a, 0x8c, 0x98, - 0x8b, 0xba, 0xa9, 0xa8, 0xdb, 0x30, 0xca, 0x82, 0xae, 0x7a, 0x35, 0x8f, 0x31, 0xde, 0xf9, 0xaf, - 0x5f, 0xeb, 0x43, 0x15, 0xe1, 0x7e, 0x00, 0x95, 0x64, 0x30, 0x57, 0x9f, 0xf9, 0x4a, 0xd6, 0x74, - 0xa3, 0xba, 0xde, 0x18, 0x94, 0x3c, 0x12, 0xf9, 0x1e, 0x8c, 0x8b, 0x46, 0x96, 0x9a, 0x6b, 0xea, - 0x64, 0xf7, 0xb6, 0xfe, 0x54, 0x5f, 0x3a, 0xe1, 0x93, 0x20, 0x6a, 0x36, 0xca, 0x26, 0x99, 0xda, - 0xe8, 0xc3, 0x9b, 0xea, 0x16, 0xd6, 0x17, 0x07, 0xa6, 0x17, 0x32, 0xdf, 0x85, 0x31, 0xde, 0x7b, - 0xc9, 0xdf, 0x60, 0x89, 0x4e, 0x5a, 0xfe, 0x06, 0x4b, 0xb6, 0x70, 0x6e, 0x2a, 0x74, 0x39, 0xa9, - 0x1e, 0x49, 0xfe, 0x72, 0xb2, 0x3b, 0x36, 0xf9, 0xcb, 0xc9, 0xeb, 0xe3, 0x38, 0x30, 0x99, 0x68, - 0xb0, 0xa8, 0xb9, 0x5b, 0x35, 0xab, 0x3f, 0x53, 0x7f, 0x66, 0x40, 0x6a, 0x21, 0xcd, 0x83, 0x4a, - 0xf2, 0xb1, 0x43, 0xfe, 0xfe, 0xcb, 0x7c, 0x7f, 0x91, 0xbf, 0xff, 0x72, 0xde, 0x50, 0x78, 0x50, - 0x49, 0xbe, 0x52, 0xc8, 0x17, 0x98, 0xf9, 0x52, 0x22, 0x5f, 0x60, 0xce, 0xe3, 0x87, 0x0e, 0x4c, - 0xa5, 0x9f, 0x09, 0xa8, 0xb9, 0x4e, 0xc9, 0x79, 0xbd, 0x50, 0xbf, 0x39, 0x38, 0x83, 0x10, 0x7b, - 0x04, 0x53, 0xe9, 0x7f, 0xf8, 0xf3, 0xc5, 0xe6, 0xbc, 0x34, 0xc8, 0x17, 0x9b, 0xf7, 0x78, 0xe0, - 0xa6, 0x42, 0xd7, 0x9b, 0xee, 0xee, 0xe4, 0x0b, 0xce, 0xe9, 0xb1, 0xe5, 0x0b, 0xce, 0x6d, 0x1c, - 0x75, 0x60, 0x2a, 0xdd, 0x87, 0xc8, 0x17, 0x9b, 0xd3, 0x0d, 0xca, 0x17, 0x9b, 0xdb, 0xe2, 0x08, - 0xa0, 0x9a, 0xaa, 0xaf, 0xf3, 0x4f, 0x68, 0x76, 0x4b, 0x23, 0xff, 0x84, 0xe6, 0x15, 0xee, 0x1f, - 0xc2, 0xa5, 0x9e, 0xca, 0x58, 0xbd, 0x39, 0xc0, 0x7b, 0xbf, 0x44, 0x31, 0x5f, 0xbf, 0x35, 0x04, - 0x47, 0xe4, 0xdd, 0xe3, 0x84, 0x6c, 0x5e, 0x07, 0x0f, 0x24, 0x3b, 0x51, 0x67, 0x0f, 0x24, 0x3b, - 0x55, 0x64, 0x1f, 0x40, 0x39, 0x5e, 0x9e, 0xe6, 0x5f, 0xb7, 0x19, 0x85, 0x74, 0xfe, 0x75, 0x9b, - 0x55, 0xf1, 0xde, 0x54, 0xd4, 0x1f, 0x2b, 0x30, 0x9b, 0x5d, 0xeb, 0xa9, 0xcf, 0x0d, 0xf2, 0xb0, - 0xb2, 0xa7, 0x4e, 0xad, 0x3f, 0x3f, 0x2c, 0x9b, 0x58, 0xf6, 0x8f, 0x40, 0xed, 0x7d, 0xdf, 0xa6, - 0xde, 0x1a, 0xfa, 0x75, 0x67, 0x7d, 0x69, 0x18, 0x16, 0x21, 0xfc, 0x23, 0x05, 0x66, 0xb2, 0x5e, - 0x38, 0xab, 0xb7, 0x73, 0x03, 0x43, 0xfe, 0x53, 0xed, 0xfa, 0xb3, 0xc3, 0x31, 0x71, 0x1d, 0x96, - 0xfc, 0xee, 0x53, 0x1f, 0x99, 0xd2, 0xbd, 0x0f, 0x13, 0x72, 0x48, 0x7d, 0xaa, 0x5f, 0xcb, 0x4c, - 0x4a, 0x5f, 0xe8, 0x4f, 0xc8, 0x25, 0x36, 0x3f, 0x2d, 0x7c, 0xf6, 0x60, 0x5e, 0xf9, 0xfc, 0xc1, - 0xbc, 0xf2, 0xf7, 0x07, 0xf3, 0xca, 0x4f, 0xbe, 0x9c, 0xbf, 0xf0, 0xf9, 0x97, 0xf3, 0x17, 0xfe, - 0xfc, 0xe5, 0xfc, 0x05, 0xa8, 0x9b, 0x5e, 0x3b, 0x07, 0xa7, 0x79, 0x31, 0xca, 0x3e, 0x37, 0x95, - 0xf7, 0xde, 0xde, 0xb7, 0x49, 0xab, 0xb3, 0xdb, 0x30, 0xbd, 0xf6, 0xa2, 0xe9, 0x85, 0x6d, 0x2f, - 0x5c, 0x0c, 0xb0, 0x83, 0x4e, 0x70, 0xb0, 0x78, 0xb8, 0x14, 0xfd, 0x64, 0x89, 0x6e, 0xb8, 0x98, - 0xfd, 0xea, 0xff, 0x45, 0xfa, 0x25, 0x3f, 0x7e, 0x59, 0x28, 0x6e, 0x6e, 0x7f, 0xef, 0xd7, 0x85, - 0xd9, 0x4d, 0x29, 0x9c, 0x4a, 0x6b, 0x6c, 0x8b, 0xe9, 0x3f, 0x74, 0x27, 0x76, 0xe8, 0xc4, 0x8e, - 0x9c, 0x78, 0x50, 0xd0, 0xb2, 0x27, 0x76, 0xde, 0xd8, 0x6c, 0xde, 0xc5, 0x04, 0xd1, 0xfc, 0xff, - 0x1f, 0x85, 0x9a, 0x24, 0x5a, 0x5e, 0xa6, 0x54, 0xcb, 0xcb, 0x92, 0x6c, 0x77, 0x8c, 0x3d, 0xc3, - 0xbf, 0xfd, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbd, 0x21, 0xb6, 0x6c, 0x9b, 0x30, 0x00, 0x00, + // 3002 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5b, 0xcd, 0x6f, 0x1b, 0xc7, + 0x15, 0xf7, 0x92, 0xfa, 0xf2, 0xa3, 0x48, 0xca, 0x63, 0x5b, 0xa2, 0x99, 0x44, 0x49, 0x37, 0xf1, + 0x47, 0x9c, 0x84, 0xb2, 0x15, 0x27, 0x4d, 0x95, 0xa4, 0x8d, 0x68, 0x45, 0x96, 0xe0, 0xd8, 0x56, + 0x57, 0xb6, 0xdc, 0xa4, 0x4a, 0x17, 0xa3, 0xdd, 0x91, 0xb4, 0x15, 0xb9, 0xbb, 0xd9, 0x1d, 0xea, + 0xa3, 0x3d, 0xa5, 0x08, 0x0a, 0x23, 0x40, 0x83, 0xa0, 0xe8, 0xa5, 0xd7, 0x1e, 0x8b, 0x5e, 0x73, + 0x2d, 0x0a, 0xf4, 0x52, 0xf4, 0x94, 0x63, 0x81, 0x02, 0x45, 0x60, 0xa3, 0x97, 0xf6, 0x5f, 0x28, + 0xd0, 0x62, 0xbe, 0x96, 0xbb, 0x4b, 0xae, 0x49, 0x4a, 0x32, 0x1c, 0xf4, 0x24, 0xce, 0xcc, 0x7b, + 0xbf, 0xf7, 0x31, 0x33, 0x6f, 0xde, 0xbc, 0x59, 0xc1, 0x77, 0x7c, 0xe2, 0xb6, 0x9a, 0x1b, 0x01, + 0x9e, 0xd9, 0x75, 0xc8, 0xde, 0xcc, 0xee, 0x55, 0xdc, 0xf0, 0xb7, 0xf1, 0x55, 0xde, 0xaa, 0xf9, + 0x81, 0x47, 0x3d, 0x34, 0xa9, 0x48, 0x6a, 0xbc, 0x53, 0x91, 0x54, 0x2f, 0x45, 0xac, 0x96, 0x17, + 0x90, 0x19, 0x6b, 0x1b, 0x3b, 0x6e, 0x1b, 0x80, 0x37, 0x05, 0x42, 0xf5, 0x72, 0x8a, 0x32, 0x38, + 0xf0, 0xa9, 0x17, 0x23, 0xe5, 0x6d, 0x49, 0xfb, 0x52, 0x92, 0xd6, 0x26, 0xfb, 0x6d, 0x42, 0x9b, + 0xec, 0x4b, 0xaa, 0x6b, 0x49, 0x2a, 0x1a, 0x60, 0x37, 0xc4, 0x16, 0x75, 0xbc, 0x98, 0x06, 0xb1, + 0xce, 0xee, 0xd8, 0xce, 0x86, 0xd5, 0xa6, 0x76, 0x36, 0x2c, 0x49, 0x95, 0xb2, 0x2b, 0xa4, 0x78, + 0x87, 0xb4, 0xe9, 0x78, 0x53, 0x50, 0xea, 0xdf, 0x68, 0x50, 0x99, 0x6f, 0xd1, 0x6d, 0x2f, 0x70, + 0x7e, 0x46, 0xe6, 0x5d, 0xbb, 0xde, 0x72, 0x1a, 0xb6, 0x41, 0x3e, 0x69, 0x91, 0x90, 0xa2, 0x9f, + 0xc0, 0x44, 0x4c, 0x03, 0xd3, 0x6f, 0x60, 0xb7, 0xa2, 0xbd, 0xa0, 0x5d, 0x2a, 0xcc, 0xbe, 0x5e, + 0x8b, 0x3c, 0xca, 0x24, 0xd4, 0xe2, 0x8a, 0x2a, 0x39, 0xb5, 0xbb, 0xed, 0xce, 0x95, 0x06, 0x76, + 0x8d, 0x32, 0x4d, 0x76, 0x20, 0x1b, 0x10, 0x96, 0xb2, 0x31, 0x97, 0x60, 0x63, 0x8a, 0x2b, 0x39, + 0x2e, 0xe1, 0x8d, 0x7e, 0x24, 0xcc, 0xc7, 0xb9, 0x17, 0x30, 0xc5, 0xc6, 0x29, 0x9c, 0xee, 0xd2, + 0x5d, 0x38, 0xd7, 0xc5, 0xc2, 0xd0, 0xf7, 0xdc, 0x90, 0xa0, 0x1f, 0x42, 0x21, 0x86, 0x2c, 0xad, + 0x9b, 0x19, 0xd0, 0x3a, 0x23, 0x8e, 0xa1, 0xff, 0x56, 0x83, 0x67, 0xea, 0x81, 0x87, 0x6d, 0x0b, + 0x87, 0x34, 0x4e, 0x25, 0xbd, 0x7a, 0xfc, 0x22, 0xd1, 0x45, 0x28, 0xe3, 0x3d, 0xec, 0x50, 0xd3, + 0x26, 0x94, 0x08, 0x58, 0xe6, 0xc5, 0x31, 0xa3, 0xc4, 0xbb, 0x17, 0x54, 0xaf, 0xfe, 0xa9, 0x06, + 0xcf, 0x76, 0xd7, 0x4d, 0xfa, 0xe3, 0x4d, 0xc8, 0x39, 0xb6, 0xd4, 0xe9, 0x42, 0x3f, 0x3a, 0x2d, + 0xdb, 0x46, 0xce, 0xb1, 0xd1, 0xcb, 0x30, 0x11, 0xc9, 0x36, 0xb7, 0x89, 0xb3, 0xb5, 0x4d, 0xb9, + 0x0a, 0x43, 0x46, 0x39, 0xea, 0x5f, 0xe2, 0xdd, 0xfa, 0x97, 0xe3, 0x70, 0x2e, 0xb5, 0x34, 0x5c, + 0x12, 0x28, 0xef, 0xbc, 0x08, 0x45, 0xb2, 0xef, 0x3b, 0xc1, 0x81, 0x42, 0xd1, 0x38, 0xca, 0xb8, + 0xe8, 0x14, 0x10, 0xe8, 0x1a, 0xe4, 0x37, 0x09, 0x91, 0x2b, 0x45, 0x4f, 0xa9, 0x29, 0xf7, 0x62, + 0xa4, 0xe1, 0x22, 0x21, 0x06, 0x23, 0x47, 0xef, 0xc3, 0x50, 0x93, 0x34, 0xbd, 0x4a, 0x9e, 0xb3, + 0x5d, 0xed, 0xc7, 0xba, 0x5b, 0xa4, 0xe9, 0xad, 0x34, 0xb0, 0xe3, 0x52, 0xb2, 0x4f, 0x0d, 0xce, + 0x8e, 0xd6, 0x61, 0x02, 0x5b, 0x96, 0xd7, 0x72, 0xa9, 0xb9, 0x15, 0x78, 0x2d, 0xdf, 0x74, 0xec, + 0x4a, 0x89, 0x43, 0xbe, 0xd6, 0x43, 0x93, 0x79, 0xc1, 0x76, 0x83, 0x71, 0x2d, 0xdb, 0x4b, 0x27, + 0x8c, 0x12, 0x4e, 0xf4, 0x3c, 0xd0, 0x34, 0x64, 0xc0, 0xa8, 0xd7, 0xa2, 0x7e, 0x8b, 0x86, 0x95, + 0x33, 0x2f, 0xe4, 0x2f, 0x15, 0x66, 0xdf, 0xaa, 0x75, 0x0f, 0x5e, 0xb5, 0x4c, 0x1f, 0xd6, 0xee, + 0x70, 0x00, 0x43, 0x01, 0xa1, 0x0f, 0x60, 0x38, 0xdc, 0xc3, 0x7e, 0x58, 0x99, 0xe6, 0x88, 0x6f, + 0x0e, 0x8e, 0xb8, 0xba, 0x87, 0x7d, 0x43, 0x80, 0xa0, 0x75, 0x28, 0xb0, 0x1f, 0xa6, 0xd5, 0xc0, + 0x4e, 0x33, 0xac, 0x3c, 0xcf, 0x31, 0xdf, 0x3e, 0x1c, 0xe6, 0x75, 0x86, 0x61, 0x40, 0xa8, 0x7e, + 0x72, 0x74, 0x9b, 0x34, 0xc8, 0x16, 0xdf, 0xbf, 0x61, 0xe5, 0x12, 0x47, 0x9f, 0x1b, 0x1c, 0x7d, + 0x41, 0x80, 0x10, 0x23, 0x0e, 0x87, 0x36, 0xa0, 0xd8, 0x72, 0xe3, 0xf8, 0xb3, 0x1c, 0xff, 0x9d, + 0xc1, 0xf1, 0xef, 0x29, 0x18, 0x62, 0x24, 0x21, 0xd1, 0x22, 0x14, 0x9c, 0x0d, 0xcb, 0x14, 0x5c, + 0x61, 0xe5, 0x1d, 0x2e, 0xe1, 0x7c, 0x6a, 0x69, 0xb0, 0x58, 0xdd, 0xde, 0x43, 0x1b, 0xd6, 0xbc, + 0xd8, 0x86, 0xe0, 0xa8, 0x9f, 0x61, 0xf5, 0x97, 0x1a, 0x8c, 0x88, 0x99, 0x44, 0x73, 0x30, 0xbc, + 0x8b, 0x1b, 0x2d, 0x22, 0x37, 0xe6, 0x4b, 0x3d, 0xd6, 0xd9, 0x1a, 0xa3, 0x35, 0x04, 0x0b, 0x7a, + 0x0f, 0x46, 0xb1, 0x6d, 0x07, 0x24, 0x0c, 0xe5, 0x7e, 0xb9, 0xd0, 0x6b, 0x95, 0x0a, 0x6a, 0x43, + 0xb1, 0x55, 0xff, 0xac, 0xc1, 0x10, 0x9b, 0xac, 0x23, 0xa9, 0xb1, 0x0c, 0xe3, 0x14, 0x07, 0x5b, + 0x84, 0x9a, 0x38, 0x0c, 0x09, 0xed, 0x57, 0x17, 0x46, 0xbb, 0x6c, 0x1b, 0x05, 0xc1, 0xcb, 0x9b, + 0x6a, 0xf7, 0xe7, 0x07, 0xda, 0xfd, 0x55, 0x1b, 0x4e, 0x46, 0x2b, 0x0e, 0xdd, 0x87, 0xb2, 0x58, + 0xc3, 0x5e, 0xb3, 0xe9, 0xd0, 0x26, 0x71, 0xa9, 0xb4, 0xa9, 0xd6, 0x03, 0x6e, 0x95, 0x62, 0x4a, + 0xae, 0x47, 0x5c, 0x46, 0x89, 0x2f, 0xdd, 0xa8, 0x5d, 0xfd, 0x42, 0x83, 0x31, 0xb5, 0xf4, 0xd0, + 0xbb, 0x30, 0x82, 0x9b, 0x6c, 0x7f, 0x4b, 0xf0, 0xf3, 0xbd, 0xac, 0xe5, 0xc4, 0x86, 0x64, 0x42, + 0xd7, 0xe1, 0x64, 0x80, 0x29, 0x11, 0xa7, 0x62, 0xbe, 0xab, 0xbf, 0xc4, 0x51, 0x1e, 0x01, 0x18, + 0x98, 0x12, 0x7e, 0x0c, 0x8e, 0x05, 0xf2, 0x57, 0xf5, 0x57, 0x1a, 0x40, 0x7b, 0xad, 0x1e, 0x69, + 0x0a, 0x13, 0xfa, 0xe4, 0x0e, 0xa7, 0x4f, 0xfd, 0x34, 0x9c, 0x32, 0xd3, 0xe1, 0x53, 0x27, 0x50, + 0xed, 0xb6, 0xd3, 0xe4, 0x99, 0x74, 0x03, 0x86, 0x8e, 0x9a, 0x7a, 0x70, 0x00, 0xfd, 0xd7, 0x1a, + 0x9c, 0x95, 0xab, 0xbb, 0x7e, 0xb0, 0xec, 0xda, 0x64, 0x5f, 0x9d, 0x3a, 0x2b, 0x50, 0x94, 0xab, + 0xdd, 0x74, 0x58, 0xbf, 0x94, 0xf5, 0x4a, 0x7f, 0x5b, 0x45, 0x40, 0x8d, 0xe3, 0x58, 0x8b, 0x1d, + 0xc9, 0xb6, 0x13, 0xfa, 0x0d, 0x7c, 0x60, 0x5a, 0x9e, 0xbb, 0xe9, 0x04, 0x4d, 0x75, 0x24, 0xcb, + 0xee, 0xeb, 0xa2, 0x57, 0xff, 0x08, 0x26, 0xd3, 0x3a, 0x49, 0xbb, 0x63, 0x3b, 0x57, 0x3b, 0xd4, + 0xce, 0xd5, 0x3f, 0x84, 0xb3, 0x1c, 0xb2, 0x7e, 0xa0, 0x86, 0xa4, 0xbd, 0x47, 0x87, 0xfe, 0x54, + 0x83, 0xc9, 0x34, 0xb6, 0xd4, 0xfb, 0xde, 0xd1, 0x9d, 0xb9, 0x74, 0x22, 0xe9, 0xce, 0x07, 0x9a, + 0x56, 0x9f, 0x80, 0x92, 0x99, 0xc0, 0xd5, 0x7f, 0xa3, 0xc1, 0xd4, 0xfb, 0xfe, 0x36, 0x69, 0x92, + 0x00, 0x37, 0x52, 0x16, 0x3e, 0xc5, 0x19, 0x5d, 0x87, 0x4a, 0xa7, 0x56, 0xc7, 0x36, 0xa7, 0x5f, + 0x69, 0x50, 0xae, 0xe3, 0x06, 0x76, 0x2d, 0x12, 0x19, 0x6b, 0x80, 0xca, 0x24, 0xcc, 0x4d, 0xa7, + 0x41, 0x49, 0x70, 0x18, 0x6b, 0x8b, 0x12, 0x62, 0x91, 0x23, 0xa0, 0xdb, 0x50, 0xe6, 0x91, 0xda, + 0x74, 0x6c, 0x05, 0x3a, 0x58, 0xcc, 0x2e, 0x62, 0xf1, 0x43, 0xe0, 0xb1, 0xb4, 0x78, 0xa2, 0xad, + 0xb7, 0x74, 0xc7, 0xfb, 0x30, 0x2a, 0xa5, 0x1e, 0x46, 0x63, 0xc5, 0x8b, 0xbe, 0x0f, 0xa3, 0x1b, + 0x02, 0x5a, 0xea, 0xd8, 0x5f, 0x5c, 0x53, 0x4c, 0xfa, 0x79, 0x28, 0xae, 0x39, 0x64, 0x8f, 0x5d, + 0x13, 0xee, 0x7a, 0x3b, 0xc4, 0x45, 0x67, 0x60, 0xd8, 0x61, 0x31, 0x88, 0x6b, 0x35, 0x6e, 0x88, + 0x86, 0x6e, 0x40, 0x59, 0x91, 0x29, 0xcf, 0xff, 0x00, 0xf2, 0x9b, 0xbb, 0x3b, 0x52, 0xf9, 0x5e, + 0xf9, 0xdf, 0x62, 0xab, 0xd1, 0x60, 0x00, 0x8e, 0xbb, 0x75, 0x93, 0x1c, 0x18, 0x8c, 0x53, 0xbf, + 0x03, 0x13, 0x6d, 0x4c, 0xe9, 0x95, 0xb7, 0x61, 0x98, 0x32, 0x35, 0x3a, 0x8f, 0x8d, 0x64, 0x76, + 0x92, 0xd0, 0xd9, 0x10, 0x3c, 0xfa, 0x2f, 0x34, 0x28, 0xb2, 0x53, 0xaa, 0x15, 0xad, 0x8e, 0x27, + 0x9a, 0xb0, 0x76, 0x0f, 0xe8, 0x06, 0x94, 0x94, 0x0e, 0xd2, 0xa6, 0xe7, 0xa1, 0x10, 0x1e, 0xb8, + 0x56, 0x32, 0xab, 0x07, 0xd6, 0x25, 0x73, 0xfa, 0xe7, 0xa1, 0x60, 0x61, 0x6a, 0x6d, 0x3b, 0xee, + 0x96, 0xd9, 0xf2, 0xe5, 0xd6, 0x02, 0xd5, 0x75, 0xcf, 0xd7, 0x1f, 0x68, 0x70, 0x5a, 0x80, 0xae, + 0xd2, 0x80, 0xe0, 0xe6, 0x53, 0x34, 0x2f, 0x80, 0x33, 0x49, 0x4d, 0xa4, 0x91, 0xdf, 0x83, 0x73, + 0x0d, 0x4c, 0x49, 0x48, 0xcd, 0x1d, 0xd7, 0xdb, 0x73, 0xcd, 0x8d, 0x86, 0x67, 0xed, 0x24, 0x4d, + 0x9e, 0x14, 0x04, 0x37, 0xd9, 0x78, 0x9d, 0x0d, 0xb7, 0xcd, 0x8f, 0xfb, 0x27, 0x97, 0xf6, 0x8f, + 0xfe, 0x79, 0x1e, 0xc6, 0x6f, 0x7b, 0xb4, 0xbd, 0xe9, 0x5f, 0x84, 0xa2, 0xe3, 0x5a, 0x8d, 0x96, + 0x4d, 0xcc, 0xd0, 0x67, 0x19, 0x8c, 0x70, 0xd9, 0xb8, 0xec, 0x5c, 0x65, 0x7d, 0x68, 0x1e, 0xc6, + 0xd4, 0x2e, 0xce, 0x48, 0x21, 0xb2, 0xb6, 0xef, 0xa8, 0xdc, 0xbe, 0x9d, 0x91, 0x74, 0xe8, 0xa8, + 0x91, 0xf4, 0x16, 0x94, 0x45, 0x8a, 0x63, 0x52, 0x8f, 0xeb, 0x6e, 0x57, 0x46, 0x06, 0x49, 0x90, + 0x8a, 0x82, 0xfb, 0xae, 0xc7, 0x6c, 0xb4, 0x9f, 0xc6, 0x02, 0x78, 0x90, 0x83, 0xb3, 0x7c, 0x32, + 0x16, 0xbd, 0x60, 0xcd, 0xa3, 0x8e, 0xbb, 0xa5, 0x66, 0xe5, 0x32, 0x9c, 0xda, 0xf5, 0x28, 0xde, + 0x68, 0x10, 0x13, 0xd3, 0xe4, 0xd4, 0x97, 0xe5, 0xc0, 0x3c, 0x95, 0x73, 0xde, 0xe1, 0xd9, 0xfc, + 0x51, 0x3d, 0xfb, 0x14, 0x5c, 0xf1, 0xc7, 0x1c, 0x94, 0xee, 0x3b, 0xd4, 0x8d, 0x9d, 0xbd, 0x1f, + 0xc2, 0x84, 0xeb, 0x51, 0x12, 0xcb, 0xae, 0xd9, 0xdd, 0x23, 0x7f, 0x88, 0xf4, 0xba, 0xcc, 0x70, + 0xda, 0xed, 0xb0, 0x6b, 0x49, 0x2a, 0x7f, 0x8c, 0x25, 0xa9, 0xa7, 0xe0, 0x40, 0x02, 0xe5, 0xc8, + 0x7f, 0x32, 0x8e, 0x18, 0x30, 0xbe, 0x27, 0xba, 0x44, 0xb2, 0x3d, 0x40, 0x8d, 0x48, 0x42, 0xf1, + 0xac, 0xbb, 0xb0, 0xd7, 0x6e, 0xe8, 0xff, 0xd0, 0x60, 0x52, 0x0e, 0xfe, 0x7f, 0xd6, 0xf9, 0x1a, + 0x30, 0xd5, 0x61, 0xdf, 0x93, 0xab, 0xf2, 0xfd, 0x21, 0x0f, 0x45, 0x1e, 0x2a, 0xa3, 0x55, 0x5f, + 0x85, 0x31, 0x91, 0x27, 0x11, 0x51, 0x40, 0x1b, 0x33, 0xa2, 0x36, 0xfa, 0x29, 0x4c, 0xc7, 0x62, + 0xb5, 0xe5, 0x6c, 0x3a, 0x96, 0x69, 0x13, 0xd7, 0x6b, 0x3a, 0xae, 0x2c, 0x44, 0x88, 0xfd, 0xd1, + 0x2b, 0x6f, 0x59, 0x60, 0x3c, 0xc6, 0xb3, 0xed, 0x10, 0xcf, 0xa1, 0x16, 0xe2, 0x48, 0x68, 0x0e, + 0xce, 0x29, 0x59, 0xed, 0xb2, 0x84, 0xc9, 0x93, 0x83, 0x90, 0xef, 0x95, 0x31, 0x63, 0x4a, 0x12, + 0x2c, 0x44, 0xe3, 0x3c, 0x85, 0x08, 0xd1, 0x5b, 0x50, 0x51, 0xbc, 0x2d, 0x77, 0xc3, 0x73, 0x6d, + 0x76, 0x1a, 0x4b, 0xd6, 0x21, 0xce, 0x3a, 0x29, 0xc7, 0xef, 0xa9, 0x61, 0xc9, 0x79, 0x01, 0xca, + 0x8a, 0xb3, 0xe1, 0x9b, 0xee, 0x26, 0x0d, 0x2b, 0xc3, 0x9c, 0x41, 0x1d, 0x52, 0x1f, 0xf8, 0xb7, + 0x37, 0x69, 0x88, 0x66, 0xe1, 0xac, 0xa2, 0xf3, 0x03, 0xcf, 0xf7, 0x42, 0xdc, 0x10, 0xd4, 0x23, + 0x9c, 0xfa, 0xb4, 0x1c, 0x5c, 0x91, 0x63, 0x9c, 0x67, 0x1e, 0x9e, 0x53, 0x3c, 0xbb, 0x3c, 0xd8, + 0x9a, 0x01, 0xb1, 0x88, 0xe3, 0x53, 0xa5, 0xda, 0x28, 0xe7, 0xad, 0x4a, 0x22, 0x15, 0x90, 0x39, + 0x89, 0x50, 0x4f, 0x27, 0x50, 0x52, 0xb3, 0x25, 0xd7, 0xc4, 0x2a, 0x94, 0xf8, 0x0c, 0x98, 0x4d, + 0x42, 0x71, 0x6c, 0x41, 0xbe, 0xda, 0xcf, 0x14, 0xdc, 0x92, 0x3c, 0x46, 0xd1, 0x8e, 0x37, 0xf5, + 0x0a, 0x4c, 0x5e, 0xdf, 0xc6, 0x8e, 0xbb, 0x82, 0x03, 0xdc, 0x24, 0x94, 0x04, 0x6a, 0x75, 0xe8, + 0xdb, 0x30, 0xd5, 0x31, 0x22, 0x35, 0xb9, 0x05, 0xe0, 0x47, 0xbd, 0x59, 0xa9, 0x24, 0x7f, 0x8b, + 0x88, 0x94, 0x48, 0x43, 0xc5, 0x00, 0xf4, 0x49, 0x38, 0xb3, 0x78, 0x6b, 0xa1, 0x53, 0x03, 0x1b, + 0xce, 0xa6, 0xfa, 0xa5, 0xfc, 0x9b, 0x5d, 0xe4, 0xbf, 0xf2, 0x78, 0xf9, 0x8b, 0x4d, 0x3b, 0x43, + 0xfa, 0x17, 0x39, 0x98, 0x62, 0x27, 0x63, 0xfd, 0x20, 0x16, 0xc6, 0xe5, 0x0e, 0xb9, 0x0f, 0xe5, + 0xd4, 0xb9, 0x20, 0x7d, 0x3e, 0x70, 0xd5, 0x25, 0x79, 0x2c, 0x74, 0xab, 0x7f, 0xe7, 0xbb, 0xd5, + 0xbf, 0x9f, 0x46, 0x78, 0x77, 0xa1, 0xd2, 0xe9, 0x8f, 0x28, 0xce, 0x97, 0x78, 0xfa, 0xc3, 0xd3, + 0x05, 0x66, 0x53, 0xa7, 0xf7, 0x93, 0x19, 0xff, 0xaa, 0xa2, 0x66, 0x90, 0x06, 0xb1, 0xbc, 0xc0, + 0x36, 0x8a, 0x61, 0xbc, 0x93, 0x4f, 0xc0, 0xea, 0x1e, 0xf6, 0x33, 0x26, 0x20, 0x5d, 0xf6, 0xca, + 0x1d, 0x47, 0xd9, 0xeb, 0x5b, 0x3d, 0x01, 0x06, 0x54, 0x3a, 0xfd, 0x11, 0x3d, 0x77, 0x0c, 0x31, + 0x4b, 0xa4, 0xdb, 0xf5, 0x4c, 0xb7, 0xef, 0x61, 0x5f, 0x7a, 0x9b, 0xd3, 0xeb, 0xff, 0xd1, 0x60, + 0xf2, 0x76, 0xab, 0xd1, 0x70, 0x36, 0x1d, 0x12, 0x24, 0x6f, 0x5b, 0x8b, 0x70, 0xd2, 0x55, 0x23, + 0xd2, 0xbb, 0x97, 0x7a, 0x98, 0x16, 0x21, 0x19, 0x6d, 0xd6, 0x6f, 0xb5, 0x4b, 0x67, 0x60, 0xaa, + 0xc3, 0x7a, 0xe9, 0xd1, 0x33, 0x30, 0x2c, 0x6e, 0x23, 0xe2, 0x08, 0x14, 0x0d, 0x7d, 0x0d, 0x9e, + 0x8d, 0x9d, 0xa4, 0xcb, 0xee, 0xa6, 0x57, 0x3f, 0x58, 0xc2, 0x61, 0x74, 0x8d, 0x16, 0xcf, 0x4e, + 0xb9, 0x41, 0x9f, 0x9d, 0xf4, 0xcf, 0x34, 0x98, 0x4c, 0x01, 0x2b, 0xc8, 0x0b, 0x30, 0x1e, 0x52, + 0x1c, 0x24, 0x73, 0xf0, 0xa5, 0x13, 0x46, 0x81, 0xf7, 0x8a, 0x0c, 0xfc, 0x81, 0xa6, 0x21, 0x1d, + 0x80, 0xb8, 0x76, 0xe2, 0xde, 0xb5, 0xa4, 0x19, 0x27, 0x89, 0x6b, 0x47, 0x34, 0xf5, 0x32, 0x14, + 0xcd, 0x38, 0x58, 0xbd, 0x08, 0x05, 0xb3, 0xcd, 0xa5, 0xff, 0x3b, 0x07, 0xe5, 0x94, 0x1a, 0xe8, + 0x19, 0x18, 0x49, 0x49, 0x96, 0x6d, 0x26, 0xf4, 0x90, 0xf6, 0xa6, 0x13, 0x99, 0xfc, 0x31, 0xbc, + 0x1d, 0xae, 0x43, 0xc1, 0x27, 0x01, 0xcb, 0x4a, 0xa8, 0xb3, 0x4b, 0xe4, 0xe5, 0x6e, 0x6e, 0xd0, + 0xbc, 0xaf, 0x8d, 0x60, 0xc4, 0xe1, 0xd0, 0x0d, 0x18, 0x62, 0x5b, 0x89, 0xe7, 0x02, 0x83, 0xa7, + 0x93, 0x6b, 0x0e, 0xd9, 0x33, 0x38, 0x40, 0xfd, 0x24, 0x8c, 0x2a, 0x6f, 0xff, 0x18, 0xa6, 0x3a, + 0xe6, 0xbc, 0x5d, 0x5e, 0xa3, 0xfb, 0xa6, 0xe3, 0x6e, 0x7a, 0x72, 0x4b, 0x5f, 0xec, 0xe3, 0x65, + 0x87, 0x23, 0x8c, 0xd0, 0x7d, 0xf6, 0x57, 0xc7, 0xf0, 0x5c, 0xc6, 0x4a, 0x3d, 0x36, 0x11, 0x1f, + 0x43, 0x51, 0x5e, 0xe4, 0x25, 0xe4, 0x07, 0x50, 0xe0, 0xe7, 0x62, 0xc0, 0x43, 0xcc, 0x61, 0xce, + 0x00, 0x70, 0xa3, 0xdf, 0xfa, 0x57, 0x2c, 0x36, 0xa5, 0xee, 0xa6, 0x4f, 0x42, 0x10, 0xba, 0x05, + 0xe3, 0x8e, 0x4d, 0x5c, 0xea, 0xd0, 0x03, 0x73, 0x87, 0x1c, 0xc8, 0xe5, 0x7c, 0xb9, 0x47, 0xd0, + 0x59, 0x96, 0x2c, 0x37, 0xc9, 0x81, 0x51, 0x70, 0xda, 0x0d, 0xfd, 0xbf, 0x79, 0x38, 0xdd, 0x45, + 0x64, 0xb7, 0xac, 0x41, 0x3b, 0x96, 0xac, 0xe1, 0xbb, 0x30, 0xc4, 0xcf, 0x5c, 0xa1, 0xf7, 0x8b, + 0xbd, 0x82, 0x34, 0xd3, 0x88, 0x33, 0x3c, 0x81, 0x7b, 0x7b, 0xe2, 0xd0, 0x18, 0x3a, 0xfc, 0xa1, + 0x71, 0x1e, 0x4a, 0x62, 0x93, 0x98, 0x56, 0x40, 0x30, 0x25, 0x36, 0xdf, 0x78, 0x43, 0x46, 0x51, + 0xf4, 0x5e, 0x17, 0x9d, 0x2c, 0x36, 0x4a, 0x32, 0x11, 0xab, 0x47, 0x54, 0x6c, 0x14, 0xbd, 0xbc, + 0x74, 0xc4, 0xc2, 0x54, 0x15, 0xc6, 0x7c, 0x2f, 0x74, 0x78, 0xac, 0x19, 0xe5, 0x40, 0x51, 0x1b, + 0xbd, 0x07, 0x23, 0xa1, 0xd7, 0x0a, 0x2c, 0x52, 0x19, 0xeb, 0xae, 0x6f, 0x32, 0x63, 0x64, 0xee, + 0x5b, 0xe5, 0xf4, 0x86, 0xe4, 0xe3, 0x51, 0x35, 0xae, 0x86, 0xfe, 0xf7, 0x3c, 0x40, 0xfb, 0xa8, + 0x7d, 0x62, 0x8f, 0x74, 0xe8, 0x5d, 0x79, 0xea, 0x8b, 0x89, 0x7f, 0x39, 0x85, 0x66, 0x93, 0xfd, + 0xe4, 0xc9, 0x1f, 0xfb, 0x00, 0x80, 0xb1, 0x25, 0xbc, 0x92, 0x4f, 0x79, 0xe5, 0xb8, 0x26, 0x72, + 0x05, 0x0a, 0xe2, 0xf5, 0x5e, 0xdc, 0x95, 0x87, 0xbb, 0x06, 0xfa, 0x84, 0xa6, 0x75, 0x4c, 0xad, + 0x6d, 0xa6, 0xae, 0x78, 0x33, 0xe6, 0xb7, 0x64, 0xf0, 0xa2, 0xdf, 0xe8, 0x72, 0x7b, 0x69, 0x34, + 0xb0, 0xd3, 0x24, 0x76, 0x34, 0xeb, 0x6a, 0x71, 0x88, 0x6e, 0x36, 0xef, 0xed, 0xb9, 0x1d, 0x3d, + 0xe4, 0xdc, 0x9e, 0x82, 0xb2, 0x99, 0x14, 0xa7, 0xff, 0x53, 0x83, 0xa9, 0x3b, 0x7b, 0x2e, 0xb1, + 0x57, 0xa4, 0xb3, 0x96, 0xed, 0x28, 0x69, 0xba, 0x07, 0x25, 0xe5, 0x42, 0x76, 0xd0, 0x46, 0x89, + 0xf0, 0x63, 0xe7, 0x46, 0xe1, 0xf0, 0xe9, 0x66, 0x76, 0xf8, 0xf1, 0x0e, 0x66, 0xc7, 0x1d, 0x18, + 0xa7, 0x01, 0xe6, 0x97, 0x58, 0x1f, 0x3b, 0x2a, 0x1d, 0xbb, 0xf8, 0x38, 0xd0, 0xbb, 0x82, 0x7e, + 0x05, 0x3b, 0xc1, 0x92, 0xc6, 0x4f, 0x4a, 0xd5, 0x64, 0x89, 0x00, 0x33, 0x2b, 0xa9, 0x28, 0x5f, + 0xc5, 0x71, 0x21, 0xba, 0x05, 0x95, 0x4e, 0x33, 0xa3, 0xa7, 0xcc, 0x42, 0xc4, 0x9e, 0xf9, 0x9d, + 0x4d, 0x57, 0x23, 0x97, 0x6d, 0x03, 0xfc, 0xe8, 0xf7, 0xec, 0x9f, 0x4e, 0xc3, 0x69, 0x76, 0x3a, + 0xae, 0x04, 0x1e, 0xf5, 0x2c, 0xaf, 0xb1, 0x4a, 0x82, 0x5d, 0xc7, 0x22, 0xe8, 0x3e, 0x8c, 0x88, + 0x84, 0x0c, 0x65, 0xbe, 0x1a, 0x24, 0xd2, 0xd5, 0xea, 0x85, 0x5e, 0x64, 0x52, 0xf3, 0x1d, 0x18, + 0x8f, 0x97, 0xbc, 0xd1, 0x2b, 0x8f, 0xe7, 0x4b, 0x94, 0xe8, 0xab, 0xaf, 0xf6, 0x47, 0x2c, 0x44, + 0x5d, 0xd1, 0xd0, 0x1a, 0x0c, 0xf3, 0x13, 0x0c, 0xbd, 0x94, 0xc5, 0x18, 0xaf, 0x84, 0x57, 0xcf, + 0xf7, 0xa0, 0x8a, 0x70, 0x3f, 0x81, 0x52, 0xf2, 0x64, 0x44, 0xaf, 0x3d, 0x96, 0x35, 0x5d, 0xdd, + 0xad, 0xd6, 0xfa, 0x25, 0x8f, 0x44, 0x7e, 0x04, 0xa3, 0xb2, 0x2a, 0x85, 0x32, 0x5d, 0x9d, 0x2c, + 0x9f, 0x56, 0x2f, 0xf6, 0xa4, 0x93, 0x73, 0x12, 0x44, 0x95, 0x43, 0x55, 0xf1, 0x42, 0xb5, 0x1e, + 0xbc, 0xa9, 0xd2, 0x5f, 0x75, 0xa6, 0x6f, 0x7a, 0x29, 0xf3, 0x43, 0x18, 0x11, 0x85, 0x94, 0xec, + 0x05, 0x96, 0x28, 0x8b, 0x65, 0x2f, 0xb0, 0x64, 0x3d, 0xe6, 0x8a, 0xc6, 0xcc, 0x49, 0xd5, 0x35, + 0xb2, 0xcd, 0xe9, 0x5e, 0x65, 0xc9, 0x36, 0x27, 0xab, 0xf6, 0xd2, 0x80, 0x62, 0xa2, 0x28, 0x82, + 0x32, 0x97, 0x6a, 0xb7, 0x9a, 0x4a, 0xf5, 0xb5, 0x3e, 0xa9, 0xa5, 0x34, 0x0f, 0x4a, 0xc9, 0xb7, + 0xfe, 0xec, 0xf5, 0xd7, 0xf5, 0x3b, 0x85, 0xec, 0xf5, 0x97, 0xf1, 0x09, 0x81, 0x07, 0xa5, 0xe4, + 0x23, 0x7d, 0xb6, 0xc0, 0xae, 0x1f, 0x0a, 0x64, 0x0b, 0xcc, 0x78, 0xfb, 0x6f, 0xc1, 0x44, 0xfa, + 0xed, 0x1b, 0x65, 0x4e, 0x4a, 0xc6, 0xdb, 0x7d, 0xf5, 0x4a, 0xff, 0x0c, 0x52, 0xac, 0x09, 0x63, + 0xea, 0x6d, 0x19, 0x65, 0x6e, 0x9f, 0xd4, 0xab, 0x79, 0xf5, 0x52, 0x6f, 0xc2, 0x68, 0x6d, 0xb6, + 0x60, 0x22, 0x5d, 0xc5, 0xc9, 0xb6, 0x2b, 0xa3, 0xfe, 0x95, 0x6d, 0x57, 0x66, 0x81, 0xa8, 0x05, + 0x13, 0xe9, 0xda, 0x45, 0xb6, 0xd8, 0x8c, 0xaa, 0x4f, 0xb6, 0xd8, 0xcc, 0xb2, 0x48, 0x00, 0xe5, + 0xd4, 0xfd, 0x3e, 0x7b, 0x27, 0x76, 0x2f, 0x83, 0x64, 0xef, 0xc4, 0xac, 0xc2, 0xc1, 0x67, 0x1a, + 0x9c, 0xed, 0x7a, 0xf3, 0x42, 0xd7, 0xfa, 0xbc, 0x60, 0x25, 0x4a, 0x0a, 0xd5, 0x37, 0x06, 0xe4, + 0x92, 0x6a, 0xd0, 0xce, 0x9b, 0x7c, 0xad, 0xdf, 0x0b, 0x5e, 0x2f, 0xd3, 0x33, 0x6e, 0xad, 0x57, + 0x34, 0xf4, 0x73, 0x40, 0x9d, 0x1f, 0x40, 0xa1, 0xab, 0x03, 0x7f, 0x96, 0x58, 0x9d, 0x1d, 0x84, + 0x45, 0x9a, 0xfc, 0xa9, 0x06, 0x67, 0xba, 0x7d, 0x14, 0x8c, 0x5e, 0xcf, 0xdc, 0x20, 0xd9, 0x9f, + 0x37, 0x57, 0xaf, 0x0d, 0xc6, 0x24, 0x75, 0xd8, 0x83, 0x89, 0x74, 0xd2, 0x94, 0xbd, 0xd0, 0x33, + 0xb2, 0xc8, 0xec, 0x85, 0x9e, 0x95, 0x8f, 0x5d, 0xd1, 0xd0, 0x3e, 0x9c, 0xea, 0xf8, 0x3a, 0x1c, + 0x65, 0x02, 0x65, 0x7d, 0x2a, 0x5f, 0xbd, 0x3a, 0x00, 0x87, 0x90, 0x3d, 0xeb, 0xb7, 0xbf, 0x26, + 0x51, 0xd9, 0xdb, 0xc7, 0x30, 0xa6, 0xba, 0xb2, 0xc3, 0x58, 0xea, 0x13, 0x94, 0xec, 0x30, 0x96, + 0xfe, 0xae, 0xa4, 0xfe, 0x79, 0xee, 0x2f, 0x0f, 0xa7, 0xb5, 0xaf, 0x1f, 0x4e, 0x6b, 0xdf, 0x3c, + 0x9c, 0xd6, 0xbe, 0x7c, 0x34, 0x7d, 0xe2, 0xeb, 0x47, 0xd3, 0x27, 0xfe, 0xf6, 0x68, 0xfa, 0x04, + 0x54, 0x2d, 0xaf, 0x99, 0x81, 0x53, 0x3f, 0x19, 0x25, 0x9a, 0x2b, 0xda, 0x47, 0x77, 0xb6, 0x1c, + 0xba, 0xdd, 0xda, 0xa8, 0x59, 0x5e, 0x73, 0xc6, 0xf2, 0xc2, 0xa6, 0x17, 0xce, 0x04, 0xa4, 0x81, + 0x0f, 0x48, 0x30, 0xb3, 0x3b, 0x1b, 0xfd, 0xe4, 0x17, 0x84, 0x70, 0xa6, 0xfb, 0x7f, 0x66, 0xbc, + 0xcd, 0x5a, 0xaa, 0xf1, 0xbb, 0x5c, 0x7e, 0x65, 0xed, 0x47, 0xbf, 0xcf, 0x4d, 0xae, 0x28, 0xe1, + 0x4c, 0x5a, 0x6d, 0x4d, 0x0e, 0xff, 0xb5, 0x3d, 0xb0, 0xce, 0x06, 0xd6, 0xd5, 0xc0, 0xc3, 0x9c, + 0xde, 0x7d, 0x60, 0xfd, 0xc6, 0x4a, 0x5d, 0xbd, 0xc7, 0xfc, 0x2b, 0x57, 0x51, 0x44, 0x73, 0x73, + 0x8c, 0x6a, 0x6e, 0x4e, 0x91, 0x6d, 0x8c, 0xf0, 0x7f, 0x80, 0x78, 0xfd, 0x7f, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x8e, 0xb9, 0xe6, 0x1e, 0x3f, 0x32, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3781,9 +3744,12 @@ type ViewProtocolServiceClient interface { // Get current status of chain sync Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) // Stream sync status updates until the view service has caught up with the core.chain.v1alpha1. + // Returns a stream of `StatusStreamResponse`s. StatusStream(ctx context.Context, in *StatusStreamRequest, opts ...grpc.CallOption) (ViewProtocolService_StatusStreamClient, error) // Queries for notes that have been accepted by the core.chain.v1alpha1. + // Returns a stream of `NotesResponse`s. Notes(ctx context.Context, in *NotesRequest, opts ...grpc.CallOption) (ViewProtocolService_NotesClient, error) + // Returns a stream of `NotesForVotingResponse`s. NotesForVoting(ctx context.Context, in *NotesForVotingRequest, opts ...grpc.CallOption) (ViewProtocolService_NotesForVotingClient, error) // Returns authentication paths for the given note commitments. // @@ -3794,6 +3760,7 @@ type ViewProtocolServiceClient interface { Witness(ctx context.Context, in *WitnessRequest, opts ...grpc.CallOption) (*WitnessResponse, error) WitnessAndBuild(ctx context.Context, in *WitnessAndBuildRequest, opts ...grpc.CallOption) (*WitnessAndBuildResponse, error) // Queries for assets. + // Returns a stream of `AssetsResponse`s. Assets(ctx context.Context, in *AssetsRequest, opts ...grpc.CallOption) (ViewProtocolService_AssetsClient, error) // Query for the current chain parameters. ChainParameters(ctx context.Context, in *ChainParametersRequest, opts ...grpc.CallOption) (*ChainParametersResponse, error) @@ -3805,26 +3772,28 @@ type ViewProtocolServiceClient interface { IndexByAddress(ctx context.Context, in *IndexByAddressRequest, opts ...grpc.CallOption) (*IndexByAddressResponse, error) // Query for an ephemeral address EphemeralAddress(ctx context.Context, in *EphemeralAddressRequest, opts ...grpc.CallOption) (*EphemeralAddressResponse, error) - // Query for balance of a given address - BalanceByAddress(ctx context.Context, in *BalanceByAddressRequest, opts ...grpc.CallOption) (ViewProtocolService_BalanceByAddressClient, error) + // Query for balance of a given address. + // Returns a stream of `BalancesResponses`. + Balances(ctx context.Context, in *BalancesRequest, opts ...grpc.CallOption) (ViewProtocolService_BalancesClient, error) // Query for a note by its note commitment, optionally waiting until the note is detected. NoteByCommitment(ctx context.Context, in *NoteByCommitmentRequest, opts ...grpc.CallOption) (*NoteByCommitmentResponse, error) // Query for a swap by its swap commitment, optionally waiting until the swap is detected. SwapByCommitment(ctx context.Context, in *SwapByCommitmentRequest, opts ...grpc.CallOption) (*SwapByCommitmentResponse, error) // Query for whether a nullifier has been spent, optionally waiting until it is spent. NullifierStatus(ctx context.Context, in *NullifierStatusRequest, opts ...grpc.CallOption) (*NullifierStatusResponse, error) - // Query for the transaction hashes in the given range of blocks. - TransactionHashes(ctx context.Context, in *TransactionHashesRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionHashesClient, error) - // Query for a given transaction hash. - TransactionByHash(ctx context.Context, in *TransactionByHashRequest, opts ...grpc.CallOption) (*TransactionByHashResponse, error) + // Query for a given transaction by its hash. + TransactionInfoByHash(ctx context.Context, in *TransactionInfoByHashRequest, opts ...grpc.CallOption) (*TransactionInfoByHashResponse, error) // Query for the full transactions in the given range of blocks. - Transactions(ctx context.Context, in *TransactionsRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionsClient, error) - // Query for the transaction perspective of the given transaction - TransactionPerspective(ctx context.Context, in *TransactionPerspectiveRequest, opts ...grpc.CallOption) (*TransactionPerspectiveResponse, error) + // Returns a stream of `TransactionInfoResponse`s. + TransactionInfo(ctx context.Context, in *TransactionInfoRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionInfoClient, error) // Query for a transaction plan TransactionPlanner(ctx context.Context, in *TransactionPlannerRequest, opts ...grpc.CallOption) (*TransactionPlannerResponse, error) // Broadcast a transaction to the network, optionally waiting for full confirmation. BroadcastTransaction(ctx context.Context, in *BroadcastTransactionRequest, opts ...grpc.CallOption) (*BroadcastTransactionResponse, error) + // Query for owned position IDs for the given trading pair and in the given position state. + OwnedPositionIds(ctx context.Context, in *OwnedPositionIdsRequest, opts ...grpc.CallOption) (ViewProtocolService_OwnedPositionIdsClient, error) + // Authorize a transaction plan and build the transaction. + AuthorizeAndBuild(ctx context.Context, in *AuthorizeAndBuildRequest, opts ...grpc.CallOption) (*AuthorizeAndBuildResponse, error) } type viewProtocolServiceClient struct { @@ -4035,12 +4004,12 @@ func (c *viewProtocolServiceClient) EphemeralAddress(ctx context.Context, in *Ep return out, nil } -func (c *viewProtocolServiceClient) BalanceByAddress(ctx context.Context, in *BalanceByAddressRequest, opts ...grpc.CallOption) (ViewProtocolService_BalanceByAddressClient, error) { - stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[4], "/penumbra.view.v1alpha1.ViewProtocolService/BalanceByAddress", opts...) +func (c *viewProtocolServiceClient) Balances(ctx context.Context, in *BalancesRequest, opts ...grpc.CallOption) (ViewProtocolService_BalancesClient, error) { + stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[4], "/penumbra.view.v1alpha1.ViewProtocolService/Balances", opts...) if err != nil { return nil, err } - x := &viewProtocolServiceBalanceByAddressClient{stream} + x := &viewProtocolServiceBalancesClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -4050,17 +4019,17 @@ func (c *viewProtocolServiceClient) BalanceByAddress(ctx context.Context, in *Ba return x, nil } -type ViewProtocolService_BalanceByAddressClient interface { - Recv() (*BalanceByAddressResponse, error) +type ViewProtocolService_BalancesClient interface { + Recv() (*BalancesResponse, error) grpc.ClientStream } -type viewProtocolServiceBalanceByAddressClient struct { +type viewProtocolServiceBalancesClient struct { grpc.ClientStream } -func (x *viewProtocolServiceBalanceByAddressClient) Recv() (*BalanceByAddressResponse, error) { - m := new(BalanceByAddressResponse) +func (x *viewProtocolServiceBalancesClient) Recv() (*BalancesResponse, error) { + m := new(BalancesResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } @@ -4094,12 +4063,21 @@ func (c *viewProtocolServiceClient) NullifierStatus(ctx context.Context, in *Nul return out, nil } -func (c *viewProtocolServiceClient) TransactionHashes(ctx context.Context, in *TransactionHashesRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionHashesClient, error) { - stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[5], "/penumbra.view.v1alpha1.ViewProtocolService/TransactionHashes", opts...) +func (c *viewProtocolServiceClient) TransactionInfoByHash(ctx context.Context, in *TransactionInfoByHashRequest, opts ...grpc.CallOption) (*TransactionInfoByHashResponse, error) { + out := new(TransactionInfoByHashResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionInfoByHash", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) TransactionInfo(ctx context.Context, in *TransactionInfoRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionInfoClient, error) { + stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[5], "/penumbra.view.v1alpha1.ViewProtocolService/TransactionInfo", opts...) if err != nil { return nil, err } - x := &viewProtocolServiceTransactionHashesClient{stream} + x := &viewProtocolServiceTransactionInfoClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -4109,38 +4087,47 @@ func (c *viewProtocolServiceClient) TransactionHashes(ctx context.Context, in *T return x, nil } -type ViewProtocolService_TransactionHashesClient interface { - Recv() (*TransactionHashesResponse, error) +type ViewProtocolService_TransactionInfoClient interface { + Recv() (*TransactionInfoResponse, error) grpc.ClientStream } -type viewProtocolServiceTransactionHashesClient struct { +type viewProtocolServiceTransactionInfoClient struct { grpc.ClientStream } -func (x *viewProtocolServiceTransactionHashesClient) Recv() (*TransactionHashesResponse, error) { - m := new(TransactionHashesResponse) +func (x *viewProtocolServiceTransactionInfoClient) Recv() (*TransactionInfoResponse, error) { + m := new(TransactionInfoResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } -func (c *viewProtocolServiceClient) TransactionByHash(ctx context.Context, in *TransactionByHashRequest, opts ...grpc.CallOption) (*TransactionByHashResponse, error) { - out := new(TransactionByHashResponse) - err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionByHash", in, out, opts...) +func (c *viewProtocolServiceClient) TransactionPlanner(ctx context.Context, in *TransactionPlannerRequest, opts ...grpc.CallOption) (*TransactionPlannerResponse, error) { + out := new(TransactionPlannerResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPlanner", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *viewProtocolServiceClient) BroadcastTransaction(ctx context.Context, in *BroadcastTransactionRequest, opts ...grpc.CallOption) (*BroadcastTransactionResponse, error) { + out := new(BroadcastTransactionResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/BroadcastTransaction", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *viewProtocolServiceClient) Transactions(ctx context.Context, in *TransactionsRequest, opts ...grpc.CallOption) (ViewProtocolService_TransactionsClient, error) { - stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[6], "/penumbra.view.v1alpha1.ViewProtocolService/Transactions", opts...) +func (c *viewProtocolServiceClient) OwnedPositionIds(ctx context.Context, in *OwnedPositionIdsRequest, opts ...grpc.CallOption) (ViewProtocolService_OwnedPositionIdsClient, error) { + stream, err := c.cc.NewStream(ctx, &_ViewProtocolService_serviceDesc.Streams[6], "/penumbra.view.v1alpha1.ViewProtocolService/OwnedPositionIds", opts...) if err != nil { return nil, err } - x := &viewProtocolServiceTransactionsClient{stream} + x := &viewProtocolServiceOwnedPositionIdsClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -4150,44 +4137,26 @@ func (c *viewProtocolServiceClient) Transactions(ctx context.Context, in *Transa return x, nil } -type ViewProtocolService_TransactionsClient interface { - Recv() (*TransactionsResponse, error) +type ViewProtocolService_OwnedPositionIdsClient interface { + Recv() (*OwnedPositionIdsResponse, error) grpc.ClientStream } -type viewProtocolServiceTransactionsClient struct { +type viewProtocolServiceOwnedPositionIdsClient struct { grpc.ClientStream } -func (x *viewProtocolServiceTransactionsClient) Recv() (*TransactionsResponse, error) { - m := new(TransactionsResponse) +func (x *viewProtocolServiceOwnedPositionIdsClient) Recv() (*OwnedPositionIdsResponse, error) { + m := new(OwnedPositionIdsResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } -func (c *viewProtocolServiceClient) TransactionPerspective(ctx context.Context, in *TransactionPerspectiveRequest, opts ...grpc.CallOption) (*TransactionPerspectiveResponse, error) { - out := new(TransactionPerspectiveResponse) - err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPerspective", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewProtocolServiceClient) TransactionPlanner(ctx context.Context, in *TransactionPlannerRequest, opts ...grpc.CallOption) (*TransactionPlannerResponse, error) { - out := new(TransactionPlannerResponse) - err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPlanner", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *viewProtocolServiceClient) BroadcastTransaction(ctx context.Context, in *BroadcastTransactionRequest, opts ...grpc.CallOption) (*BroadcastTransactionResponse, error) { - out := new(BroadcastTransactionResponse) - err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/BroadcastTransaction", in, out, opts...) +func (c *viewProtocolServiceClient) AuthorizeAndBuild(ctx context.Context, in *AuthorizeAndBuildRequest, opts ...grpc.CallOption) (*AuthorizeAndBuildResponse, error) { + out := new(AuthorizeAndBuildResponse) + err := c.cc.Invoke(ctx, "/penumbra.view.v1alpha1.ViewProtocolService/AuthorizeAndBuild", in, out, opts...) if err != nil { return nil, err } @@ -4199,9 +4168,12 @@ type ViewProtocolServiceServer interface { // Get current status of chain sync Status(context.Context, *StatusRequest) (*StatusResponse, error) // Stream sync status updates until the view service has caught up with the core.chain.v1alpha1. + // Returns a stream of `StatusStreamResponse`s. StatusStream(*StatusStreamRequest, ViewProtocolService_StatusStreamServer) error // Queries for notes that have been accepted by the core.chain.v1alpha1. + // Returns a stream of `NotesResponse`s. Notes(*NotesRequest, ViewProtocolService_NotesServer) error + // Returns a stream of `NotesForVotingResponse`s. NotesForVoting(*NotesForVotingRequest, ViewProtocolService_NotesForVotingServer) error // Returns authentication paths for the given note commitments. // @@ -4212,6 +4184,7 @@ type ViewProtocolServiceServer interface { Witness(context.Context, *WitnessRequest) (*WitnessResponse, error) WitnessAndBuild(context.Context, *WitnessAndBuildRequest) (*WitnessAndBuildResponse, error) // Queries for assets. + // Returns a stream of `AssetsResponse`s. Assets(*AssetsRequest, ViewProtocolService_AssetsServer) error // Query for the current chain parameters. ChainParameters(context.Context, *ChainParametersRequest) (*ChainParametersResponse, error) @@ -4223,26 +4196,28 @@ type ViewProtocolServiceServer interface { IndexByAddress(context.Context, *IndexByAddressRequest) (*IndexByAddressResponse, error) // Query for an ephemeral address EphemeralAddress(context.Context, *EphemeralAddressRequest) (*EphemeralAddressResponse, error) - // Query for balance of a given address - BalanceByAddress(*BalanceByAddressRequest, ViewProtocolService_BalanceByAddressServer) error + // Query for balance of a given address. + // Returns a stream of `BalancesResponses`. + Balances(*BalancesRequest, ViewProtocolService_BalancesServer) error // Query for a note by its note commitment, optionally waiting until the note is detected. NoteByCommitment(context.Context, *NoteByCommitmentRequest) (*NoteByCommitmentResponse, error) // Query for a swap by its swap commitment, optionally waiting until the swap is detected. SwapByCommitment(context.Context, *SwapByCommitmentRequest) (*SwapByCommitmentResponse, error) // Query for whether a nullifier has been spent, optionally waiting until it is spent. NullifierStatus(context.Context, *NullifierStatusRequest) (*NullifierStatusResponse, error) - // Query for the transaction hashes in the given range of blocks. - TransactionHashes(*TransactionHashesRequest, ViewProtocolService_TransactionHashesServer) error - // Query for a given transaction hash. - TransactionByHash(context.Context, *TransactionByHashRequest) (*TransactionByHashResponse, error) + // Query for a given transaction by its hash. + TransactionInfoByHash(context.Context, *TransactionInfoByHashRequest) (*TransactionInfoByHashResponse, error) // Query for the full transactions in the given range of blocks. - Transactions(*TransactionsRequest, ViewProtocolService_TransactionsServer) error - // Query for the transaction perspective of the given transaction - TransactionPerspective(context.Context, *TransactionPerspectiveRequest) (*TransactionPerspectiveResponse, error) + // Returns a stream of `TransactionInfoResponse`s. + TransactionInfo(*TransactionInfoRequest, ViewProtocolService_TransactionInfoServer) error // Query for a transaction plan TransactionPlanner(context.Context, *TransactionPlannerRequest) (*TransactionPlannerResponse, error) // Broadcast a transaction to the network, optionally waiting for full confirmation. BroadcastTransaction(context.Context, *BroadcastTransactionRequest) (*BroadcastTransactionResponse, error) + // Query for owned position IDs for the given trading pair and in the given position state. + OwnedPositionIds(*OwnedPositionIdsRequest, ViewProtocolService_OwnedPositionIdsServer) error + // Authorize a transaction plan and build the transaction. + AuthorizeAndBuild(context.Context, *AuthorizeAndBuildRequest) (*AuthorizeAndBuildResponse, error) } // UnimplementedViewProtocolServiceServer can be embedded to have forward compatible implementations. @@ -4285,8 +4260,8 @@ func (*UnimplementedViewProtocolServiceServer) IndexByAddress(ctx context.Contex func (*UnimplementedViewProtocolServiceServer) EphemeralAddress(ctx context.Context, req *EphemeralAddressRequest) (*EphemeralAddressResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method EphemeralAddress not implemented") } -func (*UnimplementedViewProtocolServiceServer) BalanceByAddress(req *BalanceByAddressRequest, srv ViewProtocolService_BalanceByAddressServer) error { - return status.Errorf(codes.Unimplemented, "method BalanceByAddress not implemented") +func (*UnimplementedViewProtocolServiceServer) Balances(req *BalancesRequest, srv ViewProtocolService_BalancesServer) error { + return status.Errorf(codes.Unimplemented, "method Balances not implemented") } func (*UnimplementedViewProtocolServiceServer) NoteByCommitment(ctx context.Context, req *NoteByCommitmentRequest) (*NoteByCommitmentResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method NoteByCommitment not implemented") @@ -4297,17 +4272,11 @@ func (*UnimplementedViewProtocolServiceServer) SwapByCommitment(ctx context.Cont func (*UnimplementedViewProtocolServiceServer) NullifierStatus(ctx context.Context, req *NullifierStatusRequest) (*NullifierStatusResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method NullifierStatus not implemented") } -func (*UnimplementedViewProtocolServiceServer) TransactionHashes(req *TransactionHashesRequest, srv ViewProtocolService_TransactionHashesServer) error { - return status.Errorf(codes.Unimplemented, "method TransactionHashes not implemented") -} -func (*UnimplementedViewProtocolServiceServer) TransactionByHash(ctx context.Context, req *TransactionByHashRequest) (*TransactionByHashResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method TransactionByHash not implemented") -} -func (*UnimplementedViewProtocolServiceServer) Transactions(req *TransactionsRequest, srv ViewProtocolService_TransactionsServer) error { - return status.Errorf(codes.Unimplemented, "method Transactions not implemented") +func (*UnimplementedViewProtocolServiceServer) TransactionInfoByHash(ctx context.Context, req *TransactionInfoByHashRequest) (*TransactionInfoByHashResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TransactionInfoByHash not implemented") } -func (*UnimplementedViewProtocolServiceServer) TransactionPerspective(ctx context.Context, req *TransactionPerspectiveRequest) (*TransactionPerspectiveResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method TransactionPerspective not implemented") +func (*UnimplementedViewProtocolServiceServer) TransactionInfo(req *TransactionInfoRequest, srv ViewProtocolService_TransactionInfoServer) error { + return status.Errorf(codes.Unimplemented, "method TransactionInfo not implemented") } func (*UnimplementedViewProtocolServiceServer) TransactionPlanner(ctx context.Context, req *TransactionPlannerRequest) (*TransactionPlannerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method TransactionPlanner not implemented") @@ -4315,6 +4284,12 @@ func (*UnimplementedViewProtocolServiceServer) TransactionPlanner(ctx context.Co func (*UnimplementedViewProtocolServiceServer) BroadcastTransaction(ctx context.Context, req *BroadcastTransactionRequest) (*BroadcastTransactionResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BroadcastTransaction not implemented") } +func (*UnimplementedViewProtocolServiceServer) OwnedPositionIds(req *OwnedPositionIdsRequest, srv ViewProtocolService_OwnedPositionIdsServer) error { + return status.Errorf(codes.Unimplemented, "method OwnedPositionIds not implemented") +} +func (*UnimplementedViewProtocolServiceServer) AuthorizeAndBuild(ctx context.Context, req *AuthorizeAndBuildRequest) (*AuthorizeAndBuildResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AuthorizeAndBuild not implemented") +} func RegisterViewProtocolServiceServer(s grpc1.Server, srv ViewProtocolServiceServer) { s.RegisterService(&_ViewProtocolService_serviceDesc, srv) @@ -4548,24 +4523,24 @@ func _ViewProtocolService_EphemeralAddress_Handler(srv interface{}, ctx context. return interceptor(ctx, in, info, handler) } -func _ViewProtocolService_BalanceByAddress_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(BalanceByAddressRequest) +func _ViewProtocolService_Balances_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(BalancesRequest) if err := stream.RecvMsg(m); err != nil { return err } - return srv.(ViewProtocolServiceServer).BalanceByAddress(m, &viewProtocolServiceBalanceByAddressServer{stream}) + return srv.(ViewProtocolServiceServer).Balances(m, &viewProtocolServiceBalancesServer{stream}) } -type ViewProtocolService_BalanceByAddressServer interface { - Send(*BalanceByAddressResponse) error +type ViewProtocolService_BalancesServer interface { + Send(*BalancesResponse) error grpc.ServerStream } -type viewProtocolServiceBalanceByAddressServer struct { +type viewProtocolServiceBalancesServer struct { grpc.ServerStream } -func (x *viewProtocolServiceBalanceByAddressServer) Send(m *BalanceByAddressResponse) error { +func (x *viewProtocolServiceBalancesServer) Send(m *BalancesResponse) error { return x.ServerStream.SendMsg(m) } @@ -4623,116 +4598,116 @@ func _ViewProtocolService_NullifierStatus_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } -func _ViewProtocolService_TransactionHashes_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(TransactionHashesRequest) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(ViewProtocolServiceServer).TransactionHashes(m, &viewProtocolServiceTransactionHashesServer{stream}) -} - -type ViewProtocolService_TransactionHashesServer interface { - Send(*TransactionHashesResponse) error - grpc.ServerStream -} - -type viewProtocolServiceTransactionHashesServer struct { - grpc.ServerStream -} - -func (x *viewProtocolServiceTransactionHashesServer) Send(m *TransactionHashesResponse) error { - return x.ServerStream.SendMsg(m) -} - -func _ViewProtocolService_TransactionByHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(TransactionByHashRequest) +func _ViewProtocolService_TransactionInfoByHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TransactionInfoByHashRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ViewProtocolServiceServer).TransactionByHash(ctx, in) + return srv.(ViewProtocolServiceServer).TransactionInfoByHash(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/TransactionByHash", + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/TransactionInfoByHash", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewProtocolServiceServer).TransactionByHash(ctx, req.(*TransactionByHashRequest)) + return srv.(ViewProtocolServiceServer).TransactionInfoByHash(ctx, req.(*TransactionInfoByHashRequest)) } return interceptor(ctx, in, info, handler) } -func _ViewProtocolService_Transactions_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(TransactionsRequest) +func _ViewProtocolService_TransactionInfo_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(TransactionInfoRequest) if err := stream.RecvMsg(m); err != nil { return err } - return srv.(ViewProtocolServiceServer).Transactions(m, &viewProtocolServiceTransactionsServer{stream}) + return srv.(ViewProtocolServiceServer).TransactionInfo(m, &viewProtocolServiceTransactionInfoServer{stream}) } -type ViewProtocolService_TransactionsServer interface { - Send(*TransactionsResponse) error +type ViewProtocolService_TransactionInfoServer interface { + Send(*TransactionInfoResponse) error grpc.ServerStream } -type viewProtocolServiceTransactionsServer struct { +type viewProtocolServiceTransactionInfoServer struct { grpc.ServerStream } -func (x *viewProtocolServiceTransactionsServer) Send(m *TransactionsResponse) error { +func (x *viewProtocolServiceTransactionInfoServer) Send(m *TransactionInfoResponse) error { return x.ServerStream.SendMsg(m) } -func _ViewProtocolService_TransactionPerspective_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(TransactionPerspectiveRequest) +func _ViewProtocolService_TransactionPlanner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TransactionPlannerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ViewProtocolServiceServer).TransactionPerspective(ctx, in) + return srv.(ViewProtocolServiceServer).TransactionPlanner(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPerspective", + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPlanner", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewProtocolServiceServer).TransactionPerspective(ctx, req.(*TransactionPerspectiveRequest)) + return srv.(ViewProtocolServiceServer).TransactionPlanner(ctx, req.(*TransactionPlannerRequest)) } return interceptor(ctx, in, info, handler) } -func _ViewProtocolService_TransactionPlanner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(TransactionPlannerRequest) +func _ViewProtocolService_BroadcastTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BroadcastTransactionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ViewProtocolServiceServer).TransactionPlanner(ctx, in) + return srv.(ViewProtocolServiceServer).BroadcastTransaction(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/TransactionPlanner", + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/BroadcastTransaction", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewProtocolServiceServer).TransactionPlanner(ctx, req.(*TransactionPlannerRequest)) + return srv.(ViewProtocolServiceServer).BroadcastTransaction(ctx, req.(*BroadcastTransactionRequest)) } return interceptor(ctx, in, info, handler) } -func _ViewProtocolService_BroadcastTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(BroadcastTransactionRequest) +func _ViewProtocolService_OwnedPositionIds_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(OwnedPositionIdsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ViewProtocolServiceServer).OwnedPositionIds(m, &viewProtocolServiceOwnedPositionIdsServer{stream}) +} + +type ViewProtocolService_OwnedPositionIdsServer interface { + Send(*OwnedPositionIdsResponse) error + grpc.ServerStream +} + +type viewProtocolServiceOwnedPositionIdsServer struct { + grpc.ServerStream +} + +func (x *viewProtocolServiceOwnedPositionIdsServer) Send(m *OwnedPositionIdsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _ViewProtocolService_AuthorizeAndBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AuthorizeAndBuildRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ViewProtocolServiceServer).BroadcastTransaction(ctx, in) + return srv.(ViewProtocolServiceServer).AuthorizeAndBuild(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/BroadcastTransaction", + FullMethod: "/penumbra.view.v1alpha1.ViewProtocolService/AuthorizeAndBuild", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ViewProtocolServiceServer).BroadcastTransaction(ctx, req.(*BroadcastTransactionRequest)) + return srv.(ViewProtocolServiceServer).AuthorizeAndBuild(ctx, req.(*AuthorizeAndBuildRequest)) } return interceptor(ctx, in, info, handler) } @@ -4786,12 +4761,8 @@ var _ViewProtocolService_serviceDesc = grpc.ServiceDesc{ Handler: _ViewProtocolService_NullifierStatus_Handler, }, { - MethodName: "TransactionByHash", - Handler: _ViewProtocolService_TransactionByHash_Handler, - }, - { - MethodName: "TransactionPerspective", - Handler: _ViewProtocolService_TransactionPerspective_Handler, + MethodName: "TransactionInfoByHash", + Handler: _ViewProtocolService_TransactionInfoByHash_Handler, }, { MethodName: "TransactionPlanner", @@ -4801,6 +4772,10 @@ var _ViewProtocolService_serviceDesc = grpc.ServiceDesc{ MethodName: "BroadcastTransaction", Handler: _ViewProtocolService_BroadcastTransaction_Handler, }, + { + MethodName: "AuthorizeAndBuild", + Handler: _ViewProtocolService_AuthorizeAndBuild_Handler, + }, }, Streams: []grpc.StreamDesc{ { @@ -4824,18 +4799,18 @@ var _ViewProtocolService_serviceDesc = grpc.ServiceDesc{ ServerStreams: true, }, { - StreamName: "BalanceByAddress", - Handler: _ViewProtocolService_BalanceByAddress_Handler, + StreamName: "Balances", + Handler: _ViewProtocolService_Balances_Handler, ServerStreams: true, }, { - StreamName: "TransactionHashes", - Handler: _ViewProtocolService_TransactionHashes_Handler, + StreamName: "TransactionInfo", + Handler: _ViewProtocolService_TransactionInfo_Handler, ServerStreams: true, }, { - StreamName: "Transactions", - Handler: _ViewProtocolService_Transactions_Handler, + StreamName: "OwnedPositionIds", + Handler: _ViewProtocolService_OwnedPositionIds_Handler, ServerStreams: true, }, }, @@ -4914,7 +4889,7 @@ var _ViewAuthService_serviceDesc = grpc.ServiceDesc{ Metadata: "penumbra/view/v1alpha1/view.proto", } -func (m *BroadcastTransactionRequest) Marshal() (dAtA []byte, err error) { +func (m *AuthorizeAndBuildRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -4924,29 +4899,31 @@ func (m *BroadcastTransactionRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BroadcastTransactionRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *AuthorizeAndBuildRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *BroadcastTransactionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *AuthorizeAndBuildRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.AwaitDetection { - i-- - if m.AwaitDetection { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if m.AuthorizationData != nil { + { + size, err := m.AuthorizationData.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x10 + dAtA[i] = 0x12 } - if m.Transaction != nil { + if m.TransactionPlan != nil { { - size, err := m.Transaction.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.TransactionPlan.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -4959,7 +4936,7 @@ func (m *BroadcastTransactionRequest) MarshalToSizedBuffer(dAtA []byte) (int, er return len(dAtA) - i, nil } -func (m *BroadcastTransactionResponse) Marshal() (dAtA []byte, err error) { +func (m *AuthorizeAndBuildResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -4969,19 +4946,19 @@ func (m *BroadcastTransactionResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BroadcastTransactionResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *AuthorizeAndBuildResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *BroadcastTransactionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *AuthorizeAndBuildResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Id != nil { + if m.Transaction != nil { { - size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Transaction.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -4994,7 +4971,7 @@ func (m *BroadcastTransactionResponse) MarshalToSizedBuffer(dAtA []byte) (int, e return len(dAtA) - i, nil } -func (m *TransactionPlannerRequest) Marshal() (dAtA []byte, err error) { +func (m *BroadcastTransactionRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -5004,36 +4981,121 @@ func (m *TransactionPlannerRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TransactionPlannerRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *BroadcastTransactionRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionPlannerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *BroadcastTransactionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.IbcActions) > 0 { - for iNdEx := len(m.IbcActions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.IbcActions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3 - i-- - dAtA[i] = 0xe2 + if m.AwaitDetection { + i-- + if m.AwaitDetection { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } + i-- + dAtA[i] = 0x10 } - if len(m.Undelegations) > 0 { - for iNdEx := len(m.Undelegations) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Undelegations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if m.Transaction != nil { + { + size, err := m.Transaction.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BroadcastTransactionResponse) 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 *BroadcastTransactionResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BroadcastTransactionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.DetectionHeight != 0 { + i = encodeVarintView(dAtA, i, uint64(m.DetectionHeight)) + i-- + dAtA[i] = 0x10 + } + if m.Id != nil { + { + size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TransactionPlannerRequest) 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 *TransactionPlannerRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPlannerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.IbcActions) > 0 { + for iNdEx := len(m.IbcActions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.IbcActions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xe2 + } + } + if len(m.Undelegations) > 0 { + for iNdEx := len(m.Undelegations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Undelegations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -5062,6 +5124,22 @@ func (m *TransactionPlannerRequest) MarshalToSizedBuffer(dAtA []byte) (int, erro dAtA[i] = 0xc2 } } + if len(m.SwapClaims) > 0 { + for iNdEx := len(m.SwapClaims) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.SwapClaims[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xfa + } + } if len(m.Swaps) > 0 { for iNdEx := len(m.Swaps) - 1; iNdEx >= 0; iNdEx-- { { @@ -5094,28 +5172,24 @@ func (m *TransactionPlannerRequest) MarshalToSizedBuffer(dAtA []byte) (int, erro dAtA[i] = 0xa2 } } - if m.XToken != nil { + if m.XAccountGroupId != nil { { - size := m.XToken.Size() + size := m.XAccountGroupId.Size() i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { return 0, err } } } - if m.XAccountGroupId != nil { + if m.Memo != nil { { - size := m.XAccountGroupId.Size() - i -= size - if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + size, err := m.Memo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { return 0, err } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) } - } - if len(m.Memo) > 0 { - i -= len(m.Memo) - copy(dAtA[i:], m.Memo) - i = encodeVarintView(dAtA, i, uint64(len(m.Memo))) i-- dAtA[i] = 0x1a } @@ -5160,27 +5234,6 @@ func (m *TransactionPlannerRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []b } return len(dAtA) - i, nil } -func (m *TransactionPlannerRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionPlannerRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *TransactionPlannerRequest_Output) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5287,6 +5340,41 @@ func (m *TransactionPlannerRequest_Swap) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } +func (m *TransactionPlannerRequest_SwapClaim) 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 *TransactionPlannerRequest_SwapClaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionPlannerRequest_SwapClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SwapCommitment != nil { + { + size, err := m.SwapCommitment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *TransactionPlannerRequest_Delegate) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5307,9 +5395,9 @@ func (m *TransactionPlannerRequest_Delegate) MarshalToSizedBuffer(dAtA []byte) ( _ = i var l int _ = l - if m.IdentityKey != nil { + if m.RateData != nil { { - size, err := m.IdentityKey.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.RateData.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -5317,7 +5405,7 @@ func (m *TransactionPlannerRequest_Delegate) MarshalToSizedBuffer(dAtA []byte) ( i = encodeVarintView(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a } if m.Amount != nil { { @@ -5354,6 +5442,18 @@ func (m *TransactionPlannerRequest_Undelegate) MarshalToSizedBuffer(dAtA []byte) _ = i var l int _ = l + if m.RateData != nil { + { + size, err := m.RateData.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } if m.Value != nil { { size, err := m.Value.MarshalToSizedBuffer(dAtA[:i]) @@ -5424,6 +5524,16 @@ func (m *AddressByIndexRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.DisplayConfirm { + i-- + if m.DisplayConfirm { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } if m.AddressIndex != nil { { size, err := m.AddressIndex.MarshalToSizedBuffer(dAtA[:i]) @@ -5582,6 +5692,16 @@ func (m *EphemeralAddressRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if m.DisplayConfirm { + i-- + if m.DisplayConfirm { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } if m.AddressIndex != nil { { size, err := m.AddressIndex.MarshalToSizedBuffer(dAtA[:i]) @@ -5632,7 +5752,7 @@ func (m *EphemeralAddressResponse) MarshalToSizedBuffer(dAtA []byte) (int, error return len(dAtA) - i, nil } -func (m *BalanceByAddressRequest) Marshal() (dAtA []byte, err error) { +func (m *BalancesRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -5642,19 +5762,31 @@ func (m *BalanceByAddressRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BalanceByAddressRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *BalancesRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *BalanceByAddressRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *BalancesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Address != nil { + if m.AssetIdFilter != nil { { - size, err := m.Address.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.AssetIdFilter.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.AccountFilter != nil { + { + size, err := m.AccountFilter.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -5667,7 +5799,7 @@ func (m *BalanceByAddressRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *BalanceByAddressResponse) Marshal() (dAtA []byte, err error) { +func (m *BalancesResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -5677,19 +5809,19 @@ func (m *BalanceByAddressResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BalanceByAddressResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *BalancesResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *BalanceByAddressResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *BalancesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Amount != nil { + if m.Balance != nil { { - size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Balance.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -5699,9 +5831,9 @@ func (m *BalanceByAddressResponse) MarshalToSizedBuffer(dAtA []byte) (int, error i-- dAtA[i] = 0x12 } - if m.Asset != nil { + if m.Account != nil { { - size, err := m.Asset.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Account.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -5834,15 +5966,6 @@ func (m *StatusRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -5876,27 +5999,6 @@ func (m *StatusRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, e } return len(dAtA) - i, nil } -func (m *StatusRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *StatusRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *StatusResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5955,15 +6057,6 @@ func (m *StatusStreamRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -5997,43 +6090,22 @@ func (m *StatusStreamRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) ( } return len(dAtA) - i, nil } -func (m *StatusStreamRequest_Token) MarshalTo(dAtA []byte) (int, error) { +func (m *StatusStreamResponse) 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 *StatusStreamResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *StatusStreamRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} -func (m *StatusStreamResponse) 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 *StatusStreamResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *StatusStreamResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *StatusStreamResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -6071,28 +6143,26 @@ func (m *NotesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.XToken != nil { + if m.XAccountGroupId != nil { { - size := m.XToken.Size() + size := m.XAccountGroupId.Size() i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { + if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { return 0, err } } } - if m.XAccountGroupId != nil { + if m.AmountToSpend != nil { { - size := m.XAccountGroupId.Size() - i -= size - if _, err := m.XAccountGroupId.MarshalTo(dAtA[i:]); err != nil { + size, err := m.AmountToSpend.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { return 0, err } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) } - } - if m.AmountToSpend != 0 { - i = encodeVarintView(dAtA, i, uint64(m.AmountToSpend)) i-- - dAtA[i] = 0x28 + dAtA[i] = 0x32 } if m.AddressIndex != nil { { @@ -6152,27 +6222,6 @@ func (m *NotesRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, er } return len(dAtA) - i, nil } -func (m *NotesRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NotesRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *NotesForVotingRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6193,15 +6242,6 @@ func (m *NotesForVotingRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -6252,27 +6292,6 @@ func (m *NotesForVotingRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) } return len(dAtA) - i, nil } -func (m *NotesForVotingRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NotesForVotingRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *WitnessRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6293,15 +6312,6 @@ func (m *WitnessRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -6361,27 +6371,6 @@ func (m *WitnessRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte) (int, } return len(dAtA) - i, nil } -func (m *WitnessRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *WitnessRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *WitnessResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6616,9 +6605,9 @@ func (m *AssetsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.Asset != nil { + if m.DenomMetadata != nil { { - size, err := m.Asset.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.DenomMetadata.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -6626,7 +6615,7 @@ func (m *AssetsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintView(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0xa + dAtA[i] = 0x12 } return len(dAtA) - i, nil } @@ -6767,15 +6756,6 @@ func (m *NoteByCommitmentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -6831,27 +6811,6 @@ func (m *NoteByCommitmentRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byt } return len(dAtA) - i, nil } -func (m *NoteByCommitmentRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NoteByCommitmentRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *NoteByCommitmentResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6907,15 +6866,6 @@ func (m *SwapByCommitmentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -6971,27 +6921,6 @@ func (m *SwapByCommitmentRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byt } return len(dAtA) - i, nil } -func (m *SwapByCommitmentRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SwapByCommitmentRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *SwapByCommitmentResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7047,15 +6976,6 @@ func (m *NullifierStatusRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l - if m.XToken != nil { - { - size := m.XToken.Size() - i -= size - if _, err := m.XToken.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } if m.XAccountGroupId != nil { { size := m.XAccountGroupId.Size() @@ -7111,27 +7031,6 @@ func (m *NullifierStatusRequest_AccountGroupId) MarshalToSizedBuffer(dAtA []byte } return len(dAtA) - i, nil } -func (m *NullifierStatusRequest_Token) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NullifierStatusRequest_Token) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - return len(dAtA) - i, nil -} func (m *NullifierStatusResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7165,7 +7064,42 @@ func (m *NullifierStatusResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *TransactionHashesRequest) Marshal() (dAtA []byte, err error) { +func (m *TransactionInfoByHashRequest) 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 *TransactionInfoByHashRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TransactionInfoByHashRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != nil { + { + size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *TransactionInfoRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -7175,12 +7109,12 @@ func (m *TransactionHashesRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TransactionHashesRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfoRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionHashesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfoRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -7206,31 +7140,31 @@ func (m *TransactionHashesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error return len(dAtA) - i, nil } -func (m *TransactionHashesRequest_StartHeight) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfoRequest_StartHeight) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionHashesRequest_StartHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfoRequest_StartHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) i = encodeVarintView(dAtA, i, uint64(m.StartHeight)) i-- dAtA[i] = 0x8 return len(dAtA) - i, nil } -func (m *TransactionHashesRequest_EndHeight) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfoRequest_EndHeight) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionHashesRequest_EndHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfoRequest_EndHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) i = encodeVarintView(dAtA, i, uint64(m.EndHeight)) i-- dAtA[i] = 0x10 return len(dAtA) - i, nil } -func (m *TransactionHashesResponse) Marshal() (dAtA []byte, err error) { +func (m *TransactionInfo) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -7240,84 +7174,55 @@ func (m *TransactionHashesResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TransactionHashesResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfo) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionHashesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.TxHash) > 0 { - i -= len(m.TxHash) - copy(dAtA[i:], m.TxHash) - i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) + if m.View != nil { + { + size, err := m.View.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x2a } - if m.BlockHeight != 0 { - i = encodeVarintView(dAtA, i, uint64(m.BlockHeight)) + if m.Perspective != nil { + { + size, err := m.Perspective.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x8 + dAtA[i] = 0x22 } - return len(dAtA) - i, nil -} - -func (m *TransactionByHashRequest) 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.Transaction != nil { + { + size, err := m.Transaction.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a } - return dAtA[:n], nil -} - -func (m *TransactionByHashRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionByHashRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.TxHash) > 0 { - i -= len(m.TxHash) - copy(dAtA[i:], m.TxHash) - i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *TransactionByHashResponse) 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 *TransactionByHashResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionByHashResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Tx != nil { + if m.Id != nil { { - size, err := m.Tx.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Id.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -7325,45 +7230,13 @@ func (m *TransactionByHashResponse) MarshalToSizedBuffer(dAtA []byte) (int, erro i = encodeVarintView(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *TransactionsRequest) 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 *TransactionsRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XEndHeight != nil { - { - size := m.XEndHeight.Size() - i -= size - if _, err := m.XEndHeight.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } + dAtA[i] = 0x12 } - if m.XStartHeight != nil { + if m.XHeight != nil { { - size := m.XStartHeight.Size() + size := m.XHeight.Size() i -= size - if _, err := m.XStartHeight.MarshalTo(dAtA[i:]); err != nil { + if _, err := m.XHeight.MarshalTo(dAtA[i:]); err != nil { return 0, err } } @@ -7371,31 +7244,19 @@ func (m *TransactionsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *TransactionsRequest_StartHeight) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfo_Height) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionsRequest_StartHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfo_Height) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) - i = encodeVarintView(dAtA, i, uint64(m.StartHeight)) + i = encodeVarintView(dAtA, i, uint64(m.Height)) i-- dAtA[i] = 0x8 return len(dAtA) - i, nil } -func (m *TransactionsRequest_EndHeight) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionsRequest_EndHeight) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - i = encodeVarintView(dAtA, i, uint64(m.EndHeight)) - i-- - dAtA[i] = 0x10 - return len(dAtA) - i, nil -} -func (m *TransactionsResponse) Marshal() (dAtA []byte, err error) { +func (m *TransactionInfoResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -7405,19 +7266,19 @@ func (m *TransactionsResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TransactionsResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfoResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Tx != nil { + if m.TxInfo != nil { { - size, err := m.Tx.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.TxInfo.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -7425,54 +7286,12 @@ func (m *TransactionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintView(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x1a - } - if len(m.TxHash) > 0 { - i -= len(m.TxHash) - copy(dAtA[i:], m.TxHash) - i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) - i-- - dAtA[i] = 0x12 - } - if m.BlockHeight != 0 { - i = encodeVarintView(dAtA, i, uint64(m.BlockHeight)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *TransactionPerspectiveRequest) 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 *TransactionPerspectiveRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TransactionPerspectiveRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.TxHash) > 0 { - i -= len(m.TxHash) - copy(dAtA[i:], m.TxHash) - i = encodeVarintView(dAtA, i, uint64(len(m.TxHash))) - i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *TransactionPerspectiveResponse) Marshal() (dAtA []byte, err error) { +func (m *TransactionInfoByHashResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -7482,43 +7301,19 @@ func (m *TransactionPerspectiveResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TransactionPerspectiveResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *TransactionInfoByHashResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TransactionPerspectiveResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *TransactionInfoByHashResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Txv != nil { - { - size, err := m.Txv.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.Tx != nil { - { - size, err := m.Tx.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintView(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.Txp != nil { + if m.TxInfo != nil { { - size, err := m.Txp.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.TxInfo.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -7836,6 +7631,124 @@ func (m *SwapRecord_HeightClaimed) MarshalToSizedBuffer(dAtA []byte) (int, error dAtA[i] = 0x30 return len(dAtA) - i, nil } +func (m *OwnedPositionIdsRequest) 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 *OwnedPositionIdsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OwnedPositionIdsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XTradingPair != nil { + { + size := m.XTradingPair.Size() + i -= size + if _, err := m.XTradingPair.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.XPositionState != nil { + { + size := m.XPositionState.Size() + i -= size + if _, err := m.XPositionState.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *OwnedPositionIdsRequest_PositionState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OwnedPositionIdsRequest_PositionState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PositionState != nil { + { + size, err := m.PositionState.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *OwnedPositionIdsRequest_TradingPair) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OwnedPositionIdsRequest_TradingPair) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.TradingPair != nil { + { + size, err := m.TradingPair.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *OwnedPositionIdsResponse) 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 *OwnedPositionIdsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OwnedPositionIdsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.PositionId != nil { + { + size, err := m.PositionId.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintView(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintView(dAtA []byte, offset int, v uint64) int { offset -= sovView(v) base := offset @@ -7847,6 +7760,36 @@ func encodeVarintView(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } +func (m *AuthorizeAndBuildRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.TransactionPlan != nil { + l = m.TransactionPlan.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.AuthorizationData != nil { + l = m.AuthorizationData.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + +func (m *AuthorizeAndBuildResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Transaction != nil { + l = m.Transaction.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + func (m *BroadcastTransactionRequest) Size() (n int) { if m == nil { return 0 @@ -7873,6 +7816,9 @@ func (m *BroadcastTransactionResponse) Size() (n int) { l = m.Id.Size() n += 1 + l + sovView(uint64(l)) } + if m.DetectionHeight != 0 { + n += 1 + sovView(uint64(m.DetectionHeight)) + } return n } @@ -7889,16 +7835,13 @@ func (m *TransactionPlannerRequest) Size() (n int) { l = m.Fee.Size() n += 1 + l + sovView(uint64(l)) } - l = len(m.Memo) - if l > 0 { + if m.Memo != nil { + l = m.Memo.Size() n += 1 + l + sovView(uint64(l)) } if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } if len(m.Outputs) > 0 { for _, e := range m.Outputs { l = e.Size() @@ -7911,6 +7854,12 @@ func (m *TransactionPlannerRequest) Size() (n int) { n += 2 + l + sovView(uint64(l)) } } + if len(m.SwapClaims) > 0 { + for _, e := range m.SwapClaims { + l = e.Size() + n += 2 + l + sovView(uint64(l)) + } + } if len(m.Delegations) > 0 { for _, e := range m.Delegations { l = e.Size() @@ -7944,19 +7893,7 @@ func (m *TransactionPlannerRequest_AccountGroupId) Size() (n int) { } return n } -func (m *TransactionPlannerRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} -func (m *TransactionPlannerRequest_Output) Size() (n int) { +func (m *TransactionPlannerRequest_Output) Size() (n int) { if m == nil { return 0 } @@ -7994,6 +7931,19 @@ func (m *TransactionPlannerRequest_Swap) Size() (n int) { return n } +func (m *TransactionPlannerRequest_SwapClaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SwapCommitment != nil { + l = m.SwapCommitment.Size() + n += 1 + l + sovView(uint64(l)) + } + return n +} + func (m *TransactionPlannerRequest_Delegate) Size() (n int) { if m == nil { return 0 @@ -8004,8 +7954,8 @@ func (m *TransactionPlannerRequest_Delegate) Size() (n int) { l = m.Amount.Size() n += 1 + l + sovView(uint64(l)) } - if m.IdentityKey != nil { - l = m.IdentityKey.Size() + if m.RateData != nil { + l = m.RateData.Size() n += 1 + l + sovView(uint64(l)) } return n @@ -8021,6 +7971,10 @@ func (m *TransactionPlannerRequest_Undelegate) Size() (n int) { l = m.Value.Size() n += 1 + l + sovView(uint64(l)) } + if m.RateData != nil { + l = m.RateData.Size() + n += 1 + l + sovView(uint64(l)) + } return n } @@ -8047,6 +8001,9 @@ func (m *AddressByIndexRequest) Size() (n int) { l = m.AddressIndex.Size() n += 1 + l + sovView(uint64(l)) } + if m.DisplayConfirm { + n += 2 + } return n } @@ -8110,6 +8067,9 @@ func (m *EphemeralAddressRequest) Size() (n int) { l = m.AddressIndex.Size() n += 1 + l + sovView(uint64(l)) } + if m.DisplayConfirm { + n += 2 + } return n } @@ -8126,31 +8086,35 @@ func (m *EphemeralAddressResponse) Size() (n int) { return n } -func (m *BalanceByAddressRequest) Size() (n int) { +func (m *BalancesRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Address != nil { - l = m.Address.Size() + if m.AccountFilter != nil { + l = m.AccountFilter.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.AssetIdFilter != nil { + l = m.AssetIdFilter.Size() n += 1 + l + sovView(uint64(l)) } return n } -func (m *BalanceByAddressResponse) Size() (n int) { +func (m *BalancesResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Asset != nil { - l = m.Asset.Size() + if m.Account != nil { + l = m.Account.Size() n += 1 + l + sovView(uint64(l)) } - if m.Amount != nil { - l = m.Amount.Size() + if m.Balance != nil { + l = m.Balance.Size() n += 1 + l + sovView(uint64(l)) } return n @@ -8204,9 +8168,6 @@ func (m *StatusRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8222,18 +8183,6 @@ func (m *StatusRequest_AccountGroupId) Size() (n int) { } return n } -func (m *StatusRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *StatusResponse) Size() (n int) { if m == nil { return 0 @@ -8258,9 +8207,6 @@ func (m *StatusStreamRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8276,18 +8222,6 @@ func (m *StatusStreamRequest_AccountGroupId) Size() (n int) { } return n } -func (m *StatusStreamRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *StatusStreamResponse) Size() (n int) { if m == nil { return 0 @@ -8320,15 +8254,13 @@ func (m *NotesRequest) Size() (n int) { l = m.AddressIndex.Size() n += 1 + l + sovView(uint64(l)) } - if m.AmountToSpend != 0 { - n += 1 + sovView(uint64(m.AmountToSpend)) + if m.AmountToSpend != nil { + l = m.AmountToSpend.Size() + n += 1 + l + sovView(uint64(l)) } if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8344,18 +8276,6 @@ func (m *NotesRequest_AccountGroupId) Size() (n int) { } return n } -func (m *NotesRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *NotesForVotingRequest) Size() (n int) { if m == nil { return 0 @@ -8372,9 +8292,6 @@ func (m *NotesForVotingRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8390,18 +8307,6 @@ func (m *NotesForVotingRequest_AccountGroupId) Size() (n int) { } return n } -func (m *NotesForVotingRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *WitnessRequest) Size() (n int) { if m == nil { return 0 @@ -8421,9 +8326,6 @@ func (m *WitnessRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8439,18 +8341,6 @@ func (m *WitnessRequest_AccountGroupId) Size() (n int) { } return n } -func (m *WitnessRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *WitnessResponse) Size() (n int) { if m == nil { return 0 @@ -8533,8 +8423,8 @@ func (m *AssetsResponse) Size() (n int) { } var l int _ = l - if m.Asset != nil { - l = m.Asset.Size() + if m.DenomMetadata != nil { + l = m.DenomMetadata.Size() n += 1 + l + sovView(uint64(l)) } return n @@ -8600,9 +8490,6 @@ func (m *NoteByCommitmentRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8618,18 +8505,6 @@ func (m *NoteByCommitmentRequest_AccountGroupId) Size() (n int) { } return n } -func (m *NoteByCommitmentRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *NoteByCommitmentResponse) Size() (n int) { if m == nil { return 0 @@ -8659,9 +8534,6 @@ func (m *SwapByCommitmentRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8677,18 +8549,6 @@ func (m *SwapByCommitmentRequest_AccountGroupId) Size() (n int) { } return n } -func (m *SwapByCommitmentRequest_Token) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) - } - return n -} func (m *SwapByCommitmentResponse) Size() (n int) { if m == nil { return 0 @@ -8718,9 +8578,6 @@ func (m *NullifierStatusRequest) Size() (n int) { if m.XAccountGroupId != nil { n += m.XAccountGroupId.Size() } - if m.XToken != nil { - n += m.XToken.Size() - } return n } @@ -8736,31 +8593,32 @@ func (m *NullifierStatusRequest_AccountGroupId) Size() (n int) { } return n } -func (m *NullifierStatusRequest_Token) Size() (n int) { +func (m *NullifierStatusResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovView(uint64(l)) + if m.Spent { + n += 2 } return n } -func (m *NullifierStatusResponse) Size() (n int) { + +func (m *TransactionInfoByHashRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Spent { - n += 2 + if m.Id != nil { + l = m.Id.Size() + n += 1 + l + sovView(uint64(l)) } return n } -func (m *TransactionHashesRequest) Size() (n int) { +func (m *TransactionInfoRequest) Size() (n int) { if m == nil { return 0 } @@ -8775,7 +8633,7 @@ func (m *TransactionHashesRequest) Size() (n int) { return n } -func (m *TransactionHashesRequest_StartHeight) Size() (n int) { +func (m *TransactionInfoRequest_StartHeight) Size() (n int) { if m == nil { return 0 } @@ -8784,7 +8642,7 @@ func (m *TransactionHashesRequest_StartHeight) Size() (n int) { n += 1 + sovView(uint64(m.StartHeight)) return n } -func (m *TransactionHashesRequest_EndHeight) Size() (n int) { +func (m *TransactionInfoRequest_EndHeight) Size() (n int) { if m == nil { return 0 } @@ -8793,262 +8651,455 @@ func (m *TransactionHashesRequest_EndHeight) Size() (n int) { n += 1 + sovView(uint64(m.EndHeight)) return n } -func (m *TransactionHashesResponse) Size() (n int) { +func (m *TransactionInfo) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.BlockHeight != 0 { - n += 1 + sovView(uint64(m.BlockHeight)) + if m.XHeight != nil { + n += m.XHeight.Size() } - l = len(m.TxHash) - if l > 0 { + if m.Id != nil { + l = m.Id.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Transaction != nil { + l = m.Transaction.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Perspective != nil { + l = m.Perspective.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.View != nil { + l = m.View.Size() n += 1 + l + sovView(uint64(l)) } return n } -func (m *TransactionByHashRequest) Size() (n int) { +func (m *TransactionInfo_Height) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.TxHash) - if l > 0 { - n += 1 + l + sovView(uint64(l)) - } + n += 1 + sovView(uint64(m.Height)) return n } - -func (m *TransactionByHashResponse) Size() (n int) { +func (m *TransactionInfoResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Tx != nil { - l = m.Tx.Size() + if m.TxInfo != nil { + l = m.TxInfo.Size() n += 1 + l + sovView(uint64(l)) } return n } -func (m *TransactionsRequest) Size() (n int) { +func (m *TransactionInfoByHashResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.XStartHeight != nil { - n += m.XStartHeight.Size() - } - if m.XEndHeight != nil { - n += m.XEndHeight.Size() + if m.TxInfo != nil { + l = m.TxInfo.Size() + n += 1 + l + sovView(uint64(l)) } return n } -func (m *TransactionsRequest_StartHeight) Size() (n int) { +func (m *NotesResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - n += 1 + sovView(uint64(m.StartHeight)) + if m.NoteRecord != nil { + l = m.NoteRecord.Size() + n += 1 + l + sovView(uint64(l)) + } return n } -func (m *TransactionsRequest_EndHeight) Size() (n int) { + +func (m *NotesForVotingResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - n += 1 + sovView(uint64(m.EndHeight)) + if m.NoteRecord != nil { + l = m.NoteRecord.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.IdentityKey != nil { + l = m.IdentityKey.Size() + n += 1 + l + sovView(uint64(l)) + } return n } -func (m *TransactionsResponse) Size() (n int) { + +func (m *SpendableNoteRecord) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.BlockHeight != 0 { - n += 1 + sovView(uint64(m.BlockHeight)) + if m.NoteCommitment != nil { + l = m.NoteCommitment.Size() + n += 1 + l + sovView(uint64(l)) } - l = len(m.TxHash) - if l > 0 { + if m.Note != nil { + l = m.Note.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.AddressIndex != nil { + l = m.AddressIndex.Size() n += 1 + l + sovView(uint64(l)) } - if m.Tx != nil { - l = m.Tx.Size() + if m.Nullifier != nil { + l = m.Nullifier.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.HeightCreated != 0 { + n += 1 + sovView(uint64(m.HeightCreated)) + } + if m.XHeightSpent != nil { + n += m.XHeightSpent.Size() + } + if m.Position != 0 { + n += 1 + sovView(uint64(m.Position)) + } + if m.Source != nil { + l = m.Source.Size() n += 1 + l + sovView(uint64(l)) } return n } -func (m *TransactionPerspectiveRequest) Size() (n int) { +func (m *SpendableNoteRecord_HeightSpent) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.TxHash) - if l > 0 { - n += 1 + l + sovView(uint64(l)) - } + n += 1 + sovView(uint64(m.HeightSpent)) return n } - -func (m *TransactionPerspectiveResponse) Size() (n int) { +func (m *SwapRecord) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Txp != nil { - l = m.Txp.Size() + if m.SwapCommitment != nil { + l = m.SwapCommitment.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.Swap != nil { + l = m.Swap.Size() n += 1 + l + sovView(uint64(l)) } - if m.Tx != nil { - l = m.Tx.Size() + if m.Position != 0 { + n += 1 + sovView(uint64(m.Position)) + } + if m.Nullifier != nil { + l = m.Nullifier.Size() n += 1 + l + sovView(uint64(l)) } - if m.Txv != nil { - l = m.Txv.Size() + if m.OutputData != nil { + l = m.OutputData.Size() + n += 1 + l + sovView(uint64(l)) + } + if m.XHeightClaimed != nil { + n += m.XHeightClaimed.Size() + } + if m.Source != nil { + l = m.Source.Size() n += 1 + l + sovView(uint64(l)) } return n } -func (m *NotesResponse) Size() (n int) { +func (m *SwapRecord_HeightClaimed) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.NoteRecord != nil { - l = m.NoteRecord.Size() - n += 1 + l + sovView(uint64(l)) - } + n += 1 + sovView(uint64(m.HeightClaimed)) return n } - -func (m *NotesForVotingResponse) Size() (n int) { +func (m *OwnedPositionIdsRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.NoteRecord != nil { - l = m.NoteRecord.Size() - n += 1 + l + sovView(uint64(l)) + if m.XPositionState != nil { + n += m.XPositionState.Size() } - if m.IdentityKey != nil { - l = m.IdentityKey.Size() - n += 1 + l + sovView(uint64(l)) + if m.XTradingPair != nil { + n += m.XTradingPair.Size() } return n } -func (m *SpendableNoteRecord) Size() (n int) { +func (m *OwnedPositionIdsRequest_PositionState) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.NoteCommitment != nil { - l = m.NoteCommitment.Size() - n += 1 + l + sovView(uint64(l)) - } - if m.Note != nil { - l = m.Note.Size() + if m.PositionState != nil { + l = m.PositionState.Size() n += 1 + l + sovView(uint64(l)) } - if m.AddressIndex != nil { - l = m.AddressIndex.Size() - n += 1 + l + sovView(uint64(l)) + return n +} +func (m *OwnedPositionIdsRequest_TradingPair) Size() (n int) { + if m == nil { + return 0 } - if m.Nullifier != nil { - l = m.Nullifier.Size() + var l int + _ = l + if m.TradingPair != nil { + l = m.TradingPair.Size() n += 1 + l + sovView(uint64(l)) } - if m.HeightCreated != 0 { - n += 1 + sovView(uint64(m.HeightCreated)) - } - if m.XHeightSpent != nil { - n += m.XHeightSpent.Size() - } - if m.Position != 0 { - n += 1 + sovView(uint64(m.Position)) + return n +} +func (m *OwnedPositionIdsResponse) Size() (n int) { + if m == nil { + return 0 } - if m.Source != nil { - l = m.Source.Size() + var l int + _ = l + if m.PositionId != nil { + l = m.PositionId.Size() n += 1 + l + sovView(uint64(l)) } - return n -} + return n +} + +func sovView(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozView(x uint64) (n int) { + return sovView(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *AuthorizeAndBuildRequest) 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 ErrIntOverflowView + } + 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: AuthorizeAndBuildRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuthorizeAndBuildRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TransactionPlan", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TransactionPlan == nil { + m.TransactionPlan = &v1alpha1.TransactionPlan{} + } + if err := m.TransactionPlan.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuthorizationData", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AuthorizationData == nil { + m.AuthorizationData = &v1alpha1.AuthorizationData{} + } + if err := m.AuthorizationData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } -func (m *SpendableNoteRecord_HeightSpent) Size() (n int) { - if m == nil { - return 0 + if iNdEx > l { + return io.ErrUnexpectedEOF } - var l int - _ = l - n += 1 + sovView(uint64(m.HeightSpent)) - return n + return nil } -func (m *SwapRecord) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.SwapCommitment != nil { - l = m.SwapCommitment.Size() - n += 1 + l + sovView(uint64(l)) - } - if m.Swap != nil { - l = m.Swap.Size() - n += 1 + l + sovView(uint64(l)) - } - if m.Position != 0 { - n += 1 + sovView(uint64(m.Position)) - } - if m.Nullifier != nil { - l = m.Nullifier.Size() - n += 1 + l + sovView(uint64(l)) - } - if m.OutputData != nil { - l = m.OutputData.Size() - n += 1 + l + sovView(uint64(l)) - } - if m.XHeightClaimed != nil { - n += m.XHeightClaimed.Size() - } - if m.Source != nil { - l = m.Source.Size() - n += 1 + l + sovView(uint64(l)) +func (m *AuthorizeAndBuildResponse) 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 ErrIntOverflowView + } + 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: AuthorizeAndBuildResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuthorizeAndBuildResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Transaction", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Transaction == nil { + m.Transaction = &v1alpha1.Transaction{} + } + if err := m.Transaction.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } - return n -} -func (m *SwapRecord_HeightClaimed) Size() (n int) { - if m == nil { - return 0 + if iNdEx > l { + return io.ErrUnexpectedEOF } - var l int - _ = l - n += 1 + sovView(uint64(m.HeightClaimed)) - return n -} - -func sovView(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozView(x uint64) (n int) { - return sovView(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + return nil } func (m *BroadcastTransactionRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) @@ -9221,6 +9272,25 @@ func (m *BroadcastTransactionResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DetectionHeight", wireType) + } + m.DetectionHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DetectionHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -9330,7 +9400,7 @@ func (m *TransactionPlannerRequest) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Memo", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -9340,23 +9410,27 @@ func (m *TransactionPlannerRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthView } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthView } if postIndex > l { return io.ErrUnexpectedEOF } - m.Memo = string(dAtA[iNdEx:postIndex]) + if m.Memo == nil { + m.Memo = &v1alpha1.MemoPlaintext{} + } + if err := m.Memo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 14: if wireType != 2 { @@ -9393,9 +9467,9 @@ func (m *TransactionPlannerRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &TransactionPlannerRequest_AccountGroupId{v} iNdEx = postIndex - case 15: + case 20: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Outputs", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9422,15 +9496,14 @@ func (m *TransactionPlannerRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Outputs = append(m.Outputs, &TransactionPlannerRequest_Output{}) + if err := m.Outputs[len(m.Outputs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.XToken = &TransactionPlannerRequest_Token{v} iNdEx = postIndex - case 20: + case 30: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Outputs", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Swaps", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9457,14 +9530,14 @@ func (m *TransactionPlannerRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Outputs = append(m.Outputs, &TransactionPlannerRequest_Output{}) - if err := m.Outputs[len(m.Outputs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Swaps = append(m.Swaps, &TransactionPlannerRequest_Swap{}) + if err := m.Swaps[len(m.Swaps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 30: + case 31: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Swaps", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SwapClaims", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9491,8 +9564,8 @@ func (m *TransactionPlannerRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Swaps = append(m.Swaps, &TransactionPlannerRequest_Swap{}) - if err := m.Swaps[len(m.Swaps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.SwapClaims = append(m.SwapClaims, &TransactionPlannerRequest_SwapClaim{}) + if err := m.SwapClaims[len(m.SwapClaims)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -9808,7 +9881,43 @@ func (m *TransactionPlannerRequest_Swap) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetAsset", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TargetAsset", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TargetAsset == nil { + m.TargetAsset = &v1alpha11.AssetId{} + } + if err := m.TargetAsset.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9835,16 +9944,66 @@ func (m *TransactionPlannerRequest_Swap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.TargetAsset == nil { - m.TargetAsset = &v1alpha11.AssetId{} + if m.Fee == nil { + m.Fee = &v1alpha11.Fee{} } - if err := m.TargetAsset.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TransactionPlannerRequest_SwapClaim) 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 ErrIntOverflowView + } + 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: SwapClaim: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SwapClaim: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SwapCommitment", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9871,10 +10030,10 @@ func (m *TransactionPlannerRequest_Swap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Fee == nil { - m.Fee = &v1alpha11.Fee{} + if m.SwapCommitment == nil { + m.SwapCommitment = &v1alpha11.StateCommitment{} } - if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.SwapCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -9964,9 +10123,9 @@ func (m *TransactionPlannerRequest_Delegate) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field IdentityKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RateData", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9993,10 +10152,10 @@ func (m *TransactionPlannerRequest_Delegate) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.IdentityKey == nil { - m.IdentityKey = &v1alpha11.IdentityKey{} + if m.RateData == nil { + m.RateData = &v1alpha13.RateData{} } - if err := m.IdentityKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.RateData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -10086,6 +10245,42 @@ func (m *TransactionPlannerRequest_Undelegate) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RateData", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RateData == nil { + m.RateData = &v1alpha13.RateData{} + } + if err := m.RateData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -10258,6 +10453,26 @@ func (m *AddressByIndexRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DisplayConfirm", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DisplayConfirm = bool(v != 0) default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -10601,6 +10816,26 @@ func (m *EphemeralAddressRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DisplayConfirm", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DisplayConfirm = bool(v != 0) default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -10708,7 +10943,7 @@ func (m *EphemeralAddressResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *BalanceByAddressRequest) Unmarshal(dAtA []byte) error { +func (m *BalancesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10731,15 +10966,15 @@ func (m *BalanceByAddressRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BalanceByAddressRequest: wiretype end group for non-group") + return fmt.Errorf("proto: BalancesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BalanceByAddressRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BalancesRequest: 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) + return fmt.Errorf("proto: wrong wireType = %d for field AccountFilter", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10766,10 +11001,46 @@ func (m *BalanceByAddressRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Address == nil { - m.Address = &v1alpha11.Address{} + if m.AccountFilter == nil { + m.AccountFilter = &v1alpha11.AddressIndex{} } - if err := m.Address.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.AccountFilter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetIdFilter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AssetIdFilter == nil { + m.AssetIdFilter = &v1alpha11.AssetId{} + } + if err := m.AssetIdFilter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -10794,7 +11065,7 @@ func (m *BalanceByAddressRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *BalanceByAddressResponse) Unmarshal(dAtA []byte) error { +func (m *BalancesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10817,15 +11088,15 @@ func (m *BalanceByAddressResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BalanceByAddressResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BalancesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BalanceByAddressResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BalancesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Asset", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Account", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10852,16 +11123,16 @@ func (m *BalanceByAddressResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Asset == nil { - m.Asset = &v1alpha11.AssetId{} + if m.Account == nil { + m.Account = &v1alpha11.AddressIndex{} } - if err := m.Asset.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Account.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10888,10 +11159,10 @@ func (m *BalanceByAddressResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Amount == nil { - m.Amount = &v1alpha11.Amount{} + if m.Balance == nil { + m.Balance = &v1alpha11.Value{} } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -11236,41 +11507,6 @@ func (m *StatusRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &StatusRequest_AccountGroupId{v} iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &StatusRequest_Token{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -11394,60 +11630,25 @@ func (m *StatusStreamRequest) Unmarshal(dAtA []byte) error { 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: StatusStreamRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StatusStreamRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &v1alpha11.AccountGroupId{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - m.XAccountGroupId = &StatusStreamRequest_AccountGroupId{v} - iNdEx = postIndex - case 15: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StatusStreamRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatusStreamRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -11474,11 +11675,11 @@ func (m *StatusStreamRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &ViewAuthToken{} + v := &v1alpha11.AccountGroupId{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.XToken = &StatusStreamRequest_Token{v} + m.XAccountGroupId = &StatusStreamRequest_AccountGroupId{v} iNdEx = postIndex default: iNdEx = preIndex @@ -11710,28 +11911,9 @@ func (m *NotesRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AmountToSpend", wireType) - } - m.AmountToSpend = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.AmountToSpend |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 14: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AmountToSpend", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -11758,15 +11940,16 @@ func (m *NotesRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &v1alpha11.AccountGroupId{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.AmountToSpend == nil { + m.AmountToSpend = &v1alpha11.Amount{} + } + if err := m.AmountToSpend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.XAccountGroupId = &NotesRequest_AccountGroupId{v} iNdEx = postIndex - case 15: + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -11793,11 +11976,11 @@ func (m *NotesRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &ViewAuthToken{} + v := &v1alpha11.AccountGroupId{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.XToken = &NotesRequest_Token{v} + m.XAccountGroupId = &NotesRequest_AccountGroupId{v} iNdEx = postIndex default: iNdEx = preIndex @@ -11939,41 +12122,6 @@ func (m *NotesForVotingRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &NotesForVotingRequest_AccountGroupId{v} iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &NotesForVotingRequest_Token{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -12129,41 +12277,6 @@ func (m *WitnessRequest) Unmarshal(dAtA []byte) error { } m.XAccountGroupId = &WitnessRequest_AccountGroupId{v} iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &WitnessRequest_Token{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -12712,9 +12825,9 @@ func (m *AssetsResponse) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: AssetsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Asset", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DenomMetadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12741,10 +12854,10 @@ func (m *AssetsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Asset == nil { - m.Asset = &v1alpha11.Asset{} + if m.DenomMetadata == nil { + m.DenomMetadata = &v1alpha11.DenomMetadata{} } - if err := m.Asset.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.DenomMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -12842,146 +12955,10 @@ func (m *ChainParametersResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ChainParametersResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ChainParametersResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Parameters == nil { - m.Parameters = &v1alpha13.ChainParameters{} - } - if err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipView(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthView - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *FMDParametersRequest) 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 ErrIntOverflowView - } - 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: FMDParametersRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: FMDParametersRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipView(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthView - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *FMDParametersResponse) 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 ErrIntOverflowView - } - 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: FMDParametersResponse: wiretype end group for non-group") + return fmt.Errorf("proto: ChainParametersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: FMDParametersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ChainParametersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -13014,7 +12991,7 @@ func (m *FMDParametersResponse) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Parameters == nil { - m.Parameters = &v1alpha13.FmdParameters{} + m.Parameters = &v1alpha14.ChainParameters{} } if err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -13041,7 +13018,7 @@ func (m *FMDParametersResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *NoteByCommitmentRequest) Unmarshal(dAtA []byte) error { +func (m *FMDParametersRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13064,138 +13041,12 @@ func (m *NoteByCommitmentRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NoteByCommitmentRequest: wiretype end group for non-group") + return fmt.Errorf("proto: FMDParametersRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NoteByCommitmentRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: FMDParametersRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NoteCommitment", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NoteCommitment == nil { - m.NoteCommitment = &v1alpha11.StateCommitment{} - } - if err := m.NoteCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AwaitDetection", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AwaitDetection = bool(v != 0) - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &v1alpha11.AccountGroupId{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XAccountGroupId = &NoteByCommitmentRequest_AccountGroupId{v} - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &NoteByCommitmentRequest_Token{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -13217,7 +13068,7 @@ func (m *NoteByCommitmentRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *NoteByCommitmentResponse) Unmarshal(dAtA []byte) error { +func (m *FMDParametersResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13240,15 +13091,15 @@ func (m *NoteByCommitmentResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NoteByCommitmentResponse: wiretype end group for non-group") + return fmt.Errorf("proto: FMDParametersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NoteByCommitmentResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: FMDParametersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SpendableNote", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13275,10 +13126,10 @@ func (m *NoteByCommitmentResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.SpendableNote == nil { - m.SpendableNote = &SpendableNoteRecord{} + if m.Parameters == nil { + m.Parameters = &v1alpha14.FmdParameters{} } - if err := m.SpendableNote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -13303,7 +13154,7 @@ func (m *NoteByCommitmentResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *SwapByCommitmentRequest) Unmarshal(dAtA []byte) error { +func (m *NoteByCommitmentRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13326,15 +13177,15 @@ func (m *SwapByCommitmentRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SwapByCommitmentRequest: wiretype end group for non-group") + return fmt.Errorf("proto: NoteByCommitmentRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SwapByCommitmentRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NoteByCommitmentRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SwapCommitment", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NoteCommitment", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13361,10 +13212,10 @@ func (m *SwapByCommitmentRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.SwapCommitment == nil { - m.SwapCommitment = &v1alpha11.StateCommitment{} + if m.NoteCommitment == nil { + m.NoteCommitment = &v1alpha11.StateCommitment{} } - if err := m.SwapCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.NoteCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -13421,42 +13272,7 @@ func (m *SwapByCommitmentRequest) Unmarshal(dAtA []byte) error { if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.XAccountGroupId = &SwapByCommitmentRequest_AccountGroupId{v} - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XToken = &SwapByCommitmentRequest_Token{v} + m.XAccountGroupId = &NoteByCommitmentRequest_AccountGroupId{v} iNdEx = postIndex default: iNdEx = preIndex @@ -13479,7 +13295,7 @@ func (m *SwapByCommitmentRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *SwapByCommitmentResponse) Unmarshal(dAtA []byte) error { +func (m *NoteByCommitmentResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13502,15 +13318,15 @@ func (m *SwapByCommitmentResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SwapByCommitmentResponse: wiretype end group for non-group") + return fmt.Errorf("proto: NoteByCommitmentResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SwapByCommitmentResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NoteByCommitmentResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SpendableNote", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13537,10 +13353,10 @@ func (m *SwapByCommitmentResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Swap == nil { - m.Swap = &SwapRecord{} + if m.SpendableNote == nil { + m.SpendableNote = &SpendableNoteRecord{} } - if err := m.Swap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.SpendableNote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -13565,7 +13381,7 @@ func (m *SwapByCommitmentResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *NullifierStatusRequest) Unmarshal(dAtA []byte) error { +func (m *SwapByCommitmentRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13588,15 +13404,15 @@ func (m *NullifierStatusRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NullifierStatusRequest: wiretype end group for non-group") + return fmt.Errorf("proto: SwapByCommitmentRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NullifierStatusRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SwapByCommitmentRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Nullifier", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SwapCommitment", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13623,10 +13439,10 @@ func (m *NullifierStatusRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Nullifier == nil { - m.Nullifier = &v1alpha11.Nullifier{} + if m.SwapCommitment == nil { + m.SwapCommitment = &v1alpha11.StateCommitment{} } - if err := m.Nullifier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.SwapCommitment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -13679,46 +13495,11 @@ func (m *NullifierStatusRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &v1alpha11.AccountGroupId{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.XAccountGroupId = &NullifierStatusRequest_AccountGroupId{v} - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &ViewAuthToken{} + v := &v1alpha11.AccountGroupId{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.XToken = &NullifierStatusRequest_Token{v} + m.XAccountGroupId = &SwapByCommitmentRequest_AccountGroupId{v} iNdEx = postIndex default: iNdEx = preIndex @@ -13741,7 +13522,7 @@ func (m *NullifierStatusRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *NullifierStatusResponse) Unmarshal(dAtA []byte) error { +func (m *SwapByCommitmentResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13764,17 +13545,17 @@ func (m *NullifierStatusResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NullifierStatusResponse: wiretype end group for non-group") + return fmt.Errorf("proto: SwapByCommitmentResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NullifierStatusResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SwapByCommitmentResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Spent", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Swap", wireType) } - var v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -13784,12 +13565,28 @@ func (m *NullifierStatusResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.Spent = bool(v != 0) + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Swap == nil { + m.Swap = &SwapRecord{} + } + if err := m.Swap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -13811,7 +13608,7 @@ func (m *NullifierStatusResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionHashesRequest) Unmarshal(dAtA []byte) error { +func (m *NullifierStatusRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13834,37 +13631,17 @@ func (m *TransactionHashesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionHashesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: NullifierStatusRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionHashesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NullifierStatusRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field StartHeight", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.XStartHeight = &TransactionHashesRequest_StartHeight{v} case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndHeight", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nullifier", wireType) } - var v uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -13874,67 +13651,33 @@ func (m *TransactionHashesRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.XEndHeight = &TransactionHashesRequest_EndHeight{v} - default: - iNdEx = preIndex - skippy, err := skipView(dAtA[iNdEx:]) - if err != nil { - return err + if msglen < 0 { + return ErrInvalidLengthView } - if (skippy < 0) || (iNdEx+skippy) < 0 { + postIndex := iNdEx + msglen + if postIndex < 0 { return ErrInvalidLengthView } - if (iNdEx + skippy) > l { + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TransactionHashesResponse) 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 ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.Nullifier == nil { + m.Nullifier = &v1alpha11.Nullifier{} } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if err := m.Nullifier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TransactionHashesResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionHashesResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BlockHeight", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AwaitDetection", wireType) } - m.BlockHeight = 0 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -13944,16 +13687,17 @@ func (m *TransactionHashesResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.BlockHeight |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - case 2: + m.AwaitDetection = bool(v != 0) + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AccountGroupId", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -13963,25 +13707,26 @@ func (m *TransactionHashesResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthView } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthView } if postIndex > l { return io.ErrUnexpectedEOF } - m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) - if m.TxHash == nil { - m.TxHash = []byte{} + v := &v1alpha11.AccountGroupId{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } + m.XAccountGroupId = &NullifierStatusRequest_AccountGroupId{v} iNdEx = postIndex default: iNdEx = preIndex @@ -14004,7 +13749,7 @@ func (m *TransactionHashesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionByHashRequest) Unmarshal(dAtA []byte) error { +func (m *NullifierStatusResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14027,17 +13772,17 @@ func (m *TransactionByHashRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionByHashRequest: wiretype end group for non-group") + return fmt.Errorf("proto: NullifierStatusResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionByHashRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: NullifierStatusResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Spent", wireType) } - var byteLen int + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -14047,26 +13792,12 @@ func (m *TransactionByHashRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) - if m.TxHash == nil { - m.TxHash = []byte{} - } - iNdEx = postIndex + m.Spent = bool(v != 0) default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -14088,7 +13819,7 @@ func (m *TransactionByHashRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionByHashResponse) Unmarshal(dAtA []byte) error { +func (m *TransactionInfoByHashRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14111,15 +13842,15 @@ func (m *TransactionByHashResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionByHashResponse: wiretype end group for non-group") + return fmt.Errorf("proto: TransactionInfoByHashRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionByHashResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TransactionInfoByHashRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14146,10 +13877,10 @@ func (m *TransactionByHashResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Tx == nil { - m.Tx = &v1alpha1.Transaction{} + if m.Id == nil { + m.Id = &v1alpha1.Id{} } - if err := m.Tx.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -14174,7 +13905,7 @@ func (m *TransactionByHashResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionsRequest) Unmarshal(dAtA []byte) error { +func (m *TransactionInfoRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14197,10 +13928,10 @@ func (m *TransactionsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: TransactionInfoRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TransactionInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -14222,7 +13953,7 @@ func (m *TransactionsRequest) Unmarshal(dAtA []byte) error { break } } - m.XStartHeight = &TransactionsRequest_StartHeight{v} + m.XStartHeight = &TransactionInfoRequest_StartHeight{v} case 2: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field EndHeight", wireType) @@ -14242,7 +13973,7 @@ func (m *TransactionsRequest) Unmarshal(dAtA []byte) error { break } } - m.XEndHeight = &TransactionsRequest_EndHeight{v} + m.XEndHeight = &TransactionInfoRequest_EndHeight{v} default: iNdEx = preIndex skippy, err := skipView(dAtA[iNdEx:]) @@ -14264,7 +13995,7 @@ func (m *TransactionsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionsResponse) Unmarshal(dAtA []byte) error { +func (m *TransactionInfo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14287,17 +14018,17 @@ func (m *TransactionsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: TransactionInfo: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TransactionInfo: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BlockHeight", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) } - m.BlockHeight = 0 + var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -14307,16 +14038,17 @@ func (m *TransactionsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.BlockHeight |= uint64(b&0x7F) << shift + v |= uint64(b&0x7F) << shift if b < 0x80 { break } } + m.XHeight = &TransactionInfo_Height{v} case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -14326,29 +14058,103 @@ func (m *TransactionsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthView } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthView } if postIndex > l { return io.ErrUnexpectedEOF } - m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) - if m.TxHash == nil { - m.TxHash = []byte{} + if m.Id == nil { + m.Id = &v1alpha1.Id{} + } + if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Transaction", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Transaction == nil { + m.Transaction = &v1alpha1.Transaction{} + } + if err := m.Transaction.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Perspective", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Perspective == nil { + m.Perspective = &v1alpha1.TransactionPerspective{} + } + if err := m.Perspective.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field View", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14375,10 +14181,10 @@ func (m *TransactionsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Tx == nil { - m.Tx = &v1alpha1.Transaction{} + if m.View == nil { + m.View = &v1alpha1.TransactionView{} } - if err := m.Tx.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.View.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -14403,7 +14209,7 @@ func (m *TransactionsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionPerspectiveRequest) Unmarshal(dAtA []byte) error { +func (m *TransactionInfoResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14426,17 +14232,17 @@ func (m *TransactionPerspectiveRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionPerspectiveRequest: wiretype end group for non-group") + return fmt.Errorf("proto: TransactionInfoResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionPerspectiveRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TransactionInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TxHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TxInfo", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowView @@ -14446,24 +14252,26 @@ func (m *TransactionPerspectiveRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthView } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthView } if postIndex > l { return io.ErrUnexpectedEOF } - m.TxHash = append(m.TxHash[:0], dAtA[iNdEx:postIndex]...) - if m.TxHash == nil { - m.TxHash = []byte{} + if m.TxInfo == nil { + m.TxInfo = &TransactionInfo{} + } + if err := m.TxInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -14487,7 +14295,7 @@ func (m *TransactionPerspectiveRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *TransactionPerspectiveResponse) Unmarshal(dAtA []byte) error { +func (m *TransactionInfoByHashResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14510,87 +14318,15 @@ func (m *TransactionPerspectiveResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TransactionPerspectiveResponse: wiretype end group for non-group") + return fmt.Errorf("proto: TransactionInfoByHashResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TransactionPerspectiveResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TransactionInfoByHashResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Txp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Txp == nil { - m.Txp = &v1alpha1.TransactionPerspective{} - } - if err := m.Txp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowView - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthView - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthView - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Tx == nil { - m.Tx = &v1alpha1.Transaction{} - } - if err := m.Tx.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Txv", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TxInfo", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14617,10 +14353,10 @@ func (m *TransactionPerspectiveResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Txv == nil { - m.Txv = &v1alpha1.TransactionView{} + if m.TxInfo == nil { + m.TxInfo = &TransactionInfo{} } - if err := m.Txv.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.TxInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -15114,7 +14850,7 @@ func (m *SpendableNoteRecord) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Source == nil { - m.Source = &v1alpha13.NoteSource{} + m.Source = &v1alpha14.NoteSource{} } if err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -15236,7 +14972,7 @@ func (m *SwapRecord) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Swap == nil { - m.Swap = &v1alpha14.SwapPlaintext{} + m.Swap = &v1alpha15.SwapPlaintext{} } if err := m.Swap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -15327,7 +15063,7 @@ func (m *SwapRecord) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.OutputData == nil { - m.OutputData = &v1alpha14.BatchSwapOutputData{} + m.OutputData = &v1alpha15.BatchSwapOutputData{} } if err := m.OutputData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -15383,7 +15119,7 @@ func (m *SwapRecord) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Source == nil { - m.Source = &v1alpha13.NoteSource{} + m.Source = &v1alpha14.NoteSource{} } if err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -15410,6 +15146,212 @@ func (m *SwapRecord) Unmarshal(dAtA []byte) error { } return nil } +func (m *OwnedPositionIdsRequest) 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 ErrIntOverflowView + } + 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: OwnedPositionIdsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OwnedPositionIdsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionState", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha15.PositionState{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XPositionState = &OwnedPositionIdsRequest_PositionState{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TradingPair", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &v1alpha15.TradingPair{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.XTradingPair = &OwnedPositionIdsRequest_TradingPair{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OwnedPositionIdsResponse) 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 ErrIntOverflowView + } + 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: OwnedPositionIdsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OwnedPositionIdsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionId", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowView + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthView + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthView + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PositionId == nil { + m.PositionId = &v1alpha15.PositionId{} + } + if err := m.PositionId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipView(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthView + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipView(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/relayer/channel.go b/relayer/channel.go index 5274d405d..2f3f32b64 100644 --- a/relayer/channel.go +++ b/relayer/channel.go @@ -59,6 +59,7 @@ func (c *Chain) CreateOpenChannels( memo, DefaultClientUpdateThreshold, DefaultFlushInterval, + DefaultMaxMsgLength, ) c.log.Info("Starting event processor for channel handshake", @@ -131,6 +132,7 @@ func (c *Chain) CloseChannel( memo, DefaultClientUpdateThreshold, DefaultFlushInterval, + DefaultMaxMsgLength, )). WithInitialBlockHistory(0). WithMessageLifecycle(&processor.FlushLifecycle{}). @@ -168,6 +170,7 @@ func (c *Chain) CloseChannel( memo, DefaultClientUpdateThreshold, DefaultFlushInterval, + DefaultMaxMsgLength, )). WithInitialBlockHistory(0). WithMessageLifecycle(&processor.ChannelCloseLifecycle{ diff --git a/relayer/codecs/ethermint/account.pb.go b/relayer/codecs/ethermint/account.pb.go index 6d275445f..de39dc307 100644 --- a/relayer/codecs/ethermint/account.pb.go +++ b/relayer/codecs/ethermint/account.pb.go @@ -6,8 +6,8 @@ package ethermint import ( fmt "fmt" types "github.com/cosmos/cosmos-sdk/x/auth/types" + _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" - _ "github.com/gogo/protobuf/gogoproto" io "io" math "math" math_bits "math/bits" diff --git a/relayer/codecs/ethermint/codec.go b/relayer/codecs/ethermint/codec.go index df398a823..65f4df8b9 100644 --- a/relayer/codecs/ethermint/codec.go +++ b/relayer/codecs/ethermint/codec.go @@ -5,6 +5,7 @@ import ( cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" "github.com/cosmos/cosmos-sdk/types/tx" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + "github.com/cosmos/relayer/v2/relayer/ethermint" ) // RegisterInterfaces register the Ethermint key concrete types. @@ -21,8 +22,8 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { &EthAccount{}, ) registry.RegisterImplementations( - (*tx.ExtensionOptionI)(nil), + (*tx.TxExtensionOptionI)(nil), &ExtensionOptionsWeb3Tx{}, - &ExtensionOptionDynamicFeeTx{}, + ðermint.ExtensionOptionDynamicFeeTx{}, ) } diff --git a/relayer/codecs/ethermint/dynamic_fee.pb.go b/relayer/codecs/ethermint/dynamic_fee.pb.go deleted file mode 100644 index 721600b94..000000000 --- a/relayer/codecs/ethermint/dynamic_fee.pb.go +++ /dev/null @@ -1,325 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: ethermint/types/v1/dynamic_fee.proto - -package ethermint - -import ( - fmt "fmt" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" - proto "github.com/cosmos/gogoproto/proto" - _ "github.com/gogo/protobuf/gogoproto" - io "io" - math "math" - math_bits "math/bits" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -// ExtensionOptionDynamicFeeTx is an extension option that specifies the -// maxPrioPrice for cosmos tx -type ExtensionOptionDynamicFeeTx struct { - // max_priority_price is the same as `max_priority_fee_per_gas` in eip-1559 - // spec - MaxPriorityPrice github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=max_priority_price,json=maxPriorityPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"max_priority_price"` -} - -func (m *ExtensionOptionDynamicFeeTx) Reset() { *m = ExtensionOptionDynamicFeeTx{} } -func (m *ExtensionOptionDynamicFeeTx) String() string { return proto.CompactTextString(m) } -func (*ExtensionOptionDynamicFeeTx) ProtoMessage() {} -func (*ExtensionOptionDynamicFeeTx) Descriptor() ([]byte, []int) { - return fileDescriptor_9d7cf05c9992c480, []int{0} -} -func (m *ExtensionOptionDynamicFeeTx) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ExtensionOptionDynamicFeeTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_ExtensionOptionDynamicFeeTx.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 *ExtensionOptionDynamicFeeTx) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExtensionOptionDynamicFeeTx.Merge(m, src) -} -func (m *ExtensionOptionDynamicFeeTx) XXX_Size() int { - return m.Size() -} -func (m *ExtensionOptionDynamicFeeTx) XXX_DiscardUnknown() { - xxx_messageInfo_ExtensionOptionDynamicFeeTx.DiscardUnknown(m) -} - -var xxx_messageInfo_ExtensionOptionDynamicFeeTx proto.InternalMessageInfo - -func init() { - proto.RegisterType((*ExtensionOptionDynamicFeeTx)(nil), "ethermint.types.v1.ExtensionOptionDynamicFeeTx") -} - -func init() { - proto.RegisterFile("ethermint/types/v1/dynamic_fee.proto", fileDescriptor_9d7cf05c9992c480) -} - -var fileDescriptor_9d7cf05c9992c480 = []byte{ - // 263 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x8f, 0x41, 0x4b, 0xf3, 0x40, - 0x10, 0x86, 0x93, 0xcb, 0x07, 0x5f, 0x4e, 0x12, 0x3c, 0x88, 0xc2, 0x56, 0x44, 0xc4, 0x4b, 0x77, - 0x29, 0x5e, 0x3d, 0x15, 0x15, 0x3c, 0x59, 0x44, 0x3c, 0x88, 0x50, 0xd2, 0xcd, 0x98, 0x2e, 0x66, - 0x67, 0xc2, 0xee, 0x34, 0x24, 0xf8, 0x27, 0xfc, 0x59, 0x3d, 0xf6, 0x28, 0x1e, 0x8a, 0x24, 0x7f, - 0x44, 0x92, 0x94, 0xe2, 0x69, 0x5e, 0x98, 0x87, 0x87, 0xf7, 0x8d, 0xce, 0x81, 0x97, 0xe0, 0xac, - 0x41, 0x56, 0x5c, 0x17, 0xe0, 0x55, 0x39, 0x51, 0x69, 0x8d, 0x89, 0x35, 0x7a, 0xfe, 0x06, 0x20, - 0x0b, 0x47, 0x4c, 0x71, 0xbc, 0xa7, 0x64, 0x4f, 0xc9, 0x72, 0x72, 0x7c, 0x98, 0x51, 0x46, 0xfd, - 0x5b, 0x75, 0x69, 0x20, 0xcf, 0x3e, 0xa2, 0x93, 0xdb, 0x8a, 0x01, 0xbd, 0x21, 0x7c, 0x28, 0xd8, - 0x10, 0xde, 0x0c, 0xb6, 0x3b, 0x80, 0xa7, 0x2a, 0x7e, 0x8d, 0x62, 0x9b, 0x54, 0xf3, 0xc2, 0x19, - 0x72, 0x86, 0xeb, 0x2e, 0x68, 0x38, 0x0a, 0x4f, 0xc3, 0xcb, 0xff, 0x53, 0xb9, 0xde, 0x8e, 0x82, - 0xef, 0xed, 0xe8, 0x22, 0x33, 0xbc, 0x5c, 0x2d, 0xa4, 0x26, 0xab, 0x34, 0x79, 0x4b, 0x7e, 0x77, - 0xc6, 0x3e, 0x7d, 0x1f, 0x5a, 0xca, 0x7b, 0xe4, 0xc7, 0x03, 0x9b, 0x54, 0xb3, 0x9d, 0x68, 0xd6, - 0x79, 0xa6, 0xcf, 0xeb, 0x46, 0x84, 0x9b, 0x46, 0x84, 0x3f, 0x8d, 0x08, 0x3f, 0x5b, 0x11, 0x6c, - 0x5a, 0x11, 0x7c, 0xb5, 0x22, 0x78, 0xb9, 0xfe, 0xe3, 0xf4, 0xec, 0x12, 0xcc, 0x20, 0xa7, 0x12, - 0xc6, 0x25, 0x20, 0xaf, 0x1c, 0x78, 0x95, 0x03, 0x7a, 0xa5, 0x73, 0x03, 0xc8, 0x4a, 0x53, 0x0a, - 0xda, 0xab, 0xfd, 0xe6, 0xc5, 0xbf, 0x7e, 0xdb, 0xd5, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7e, - 0x31, 0x52, 0x1f, 0x2d, 0x01, 0x00, 0x00, -} - -func (m *ExtensionOptionDynamicFeeTx) 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 *ExtensionOptionDynamicFeeTx) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ExtensionOptionDynamicFeeTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size := m.MaxPriorityPrice.Size() - i -= size - if _, err := m.MaxPriorityPrice.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintDynamicFee(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintDynamicFee(dAtA []byte, offset int, v uint64) int { - offset -= sovDynamicFee(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *ExtensionOptionDynamicFeeTx) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.MaxPriorityPrice.Size() - n += 1 + l + sovDynamicFee(uint64(l)) - return n -} - -func sovDynamicFee(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozDynamicFee(x uint64) (n int) { - return sovDynamicFee(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *ExtensionOptionDynamicFeeTx) 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 ErrIntOverflowDynamicFee - } - 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: ExtensionOptionDynamicFeeTx: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ExtensionOptionDynamicFeeTx: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxPriorityPrice", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowDynamicFee - } - 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 ErrInvalidLengthDynamicFee - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthDynamicFee - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.MaxPriorityPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipDynamicFee(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthDynamicFee - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipDynamicFee(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowDynamicFee - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowDynamicFee - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowDynamicFee - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthDynamicFee - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupDynamicFee - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthDynamicFee - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthDynamicFee = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowDynamicFee = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupDynamicFee = fmt.Errorf("proto: unexpected end of group") -) diff --git a/relayer/codecs/ethermint/keys.pb.go b/relayer/codecs/ethermint/keys.pb.go index 9b94bf2d0..d29638520 100644 --- a/relayer/codecs/ethermint/keys.pb.go +++ b/relayer/codecs/ethermint/keys.pb.go @@ -7,8 +7,8 @@ package ethermint import ( fmt "fmt" + _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" - _ "github.com/gogo/protobuf/gogoproto" io "io" math "math" math_bits "math/bits" diff --git a/relayer/codecs/injective/account.pb.go b/relayer/codecs/injective/account.pb.go index 2f5d1ced9..3b7d6a22e 100644 --- a/relayer/codecs/injective/account.pb.go +++ b/relayer/codecs/injective/account.pb.go @@ -6,8 +6,8 @@ package injective import ( fmt "fmt" types "github.com/cosmos/cosmos-sdk/x/auth/types" + _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" - _ "github.com/gogo/protobuf/gogoproto" io "io" math "math" math_bits "math/bits" diff --git a/relayer/codecs/injective/keys.pb.go b/relayer/codecs/injective/keys.pb.go index c799acd04..25c30f0c1 100644 --- a/relayer/codecs/injective/keys.pb.go +++ b/relayer/codecs/injective/keys.pb.go @@ -7,8 +7,8 @@ package injective import ( fmt "fmt" + _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" - _ "github.com/gogo/protobuf/gogoproto" io "io" math "math" math_bits "math/bits" diff --git a/relayer/connection.go b/relayer/connection.go index 1f818eff7..df784d504 100644 --- a/relayer/connection.go +++ b/relayer/connection.go @@ -40,6 +40,7 @@ func (c *Chain) CreateOpenConnections( memo, DefaultClientUpdateThreshold, DefaultFlushInterval, + DefaultMaxMsgLength, ) var connectionSrc, connectionDst string diff --git a/relayer/ethermint/dynamic_fee.pb.go b/relayer/ethermint/dynamic_fee.pb.go index fa2e28c60..3238cd863 100644 --- a/relayer/ethermint/dynamic_fee.pb.go +++ b/relayer/ethermint/dynamic_fee.pb.go @@ -6,8 +6,8 @@ package ethermint import ( fmt "fmt" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" - _ "github.com/gogo/protobuf/gogoproto" io "io" math "math" math_bits "math/bits" diff --git a/relayer/processor/message_processor.go b/relayer/processor/message_processor.go index 7a4f3fe1c..c73bab303 100644 --- a/relayer/processor/message_processor.go +++ b/relayer/processor/message_processor.go @@ -8,7 +8,9 @@ import ( "sync" "time" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" "github.com/cosmos/relayer/v2/relayer/provider" "go.uber.org/zap" "go.uber.org/zap/zapcore" @@ -28,8 +30,13 @@ type messageProcessor struct { connMsgs []connectionMessageToTrack chanMsgs []channelMessageToTrack clientICQMsgs []clientICQMessageToTrack + + isLocalhost bool } +// catagories of tx errors for a Prometheus counter. If the error doesnt fall into one of the below categories, it is labeled as "Tx Failure" +var promErrorCatagories = []error{chantypes.ErrRedundantTx, sdkerrors.ErrInsufficientFunds, sdkerrors.ErrInvalidCoins, sdkerrors.ErrOutOfGas, sdkerrors.ErrWrongSequence} + // trackMessage stores the message tracker in the correct slice and index based on the type. func (mp *messageProcessor) trackMessage(tracker messageToTrack, i int) { switch t := tracker.(type) { @@ -66,12 +73,14 @@ func newMessageProcessor( metrics *PrometheusMetrics, memo string, clientUpdateThresholdTime time.Duration, + isLocalhost bool, ) *messageProcessor { return &messageProcessor{ log: log, metrics: metrics, memo: memo, clientUpdateThresholdTime: clientUpdateThresholdTime, + isLocalhost: isLocalhost, } } @@ -82,13 +91,19 @@ func (mp *messageProcessor) processMessages( messages pathEndMessages, src, dst *pathEndRuntime, ) error { - needsClientUpdate, err := mp.shouldUpdateClientNow(ctx, src, dst) - if err != nil { - return err - } + var needsClientUpdate bool + + // Localhost IBC does not permit client updates + if src.clientState.ClientID != ibcexported.LocalhostClientID && dst.clientState.ClientID != ibcexported.LocalhostConnectionID { + var err error + needsClientUpdate, err = mp.shouldUpdateClientNow(ctx, src, dst) + if err != nil { + return err + } - if err := mp.assembleMsgUpdateClient(ctx, src, dst); err != nil { - return err + if err := mp.assembleMsgUpdateClient(ctx, src, dst); err != nil { + return err + } } mp.assembleMessages(ctx, messages, src, dst) @@ -130,8 +145,15 @@ func (mp *messageProcessor) shouldUpdateClientNow(ctx context.Context, src, dst shouldUpdateClientNow := enoughBlocksPassed && (pastTwoThirdsTrustingPeriod || pastConfiguredClientUpdateThreshold) + if mp.metrics != nil { + timeToExpiration := dst.clientState.TrustingPeriod - time.Since(consensusHeightTime) + mp.metrics.SetClientExpiration(src.info.PathName, dst.info.ChainID, dst.clientState.ClientID, fmt.Sprint(dst.clientState.TrustingPeriod.String()), timeToExpiration) + mp.metrics.SetClientTrustingPeriod(src.info.PathName, dst.info.ChainID, dst.info.ClientID, time.Duration(dst.clientState.TrustingPeriod)) + } + if shouldUpdateClientNow { mp.log.Info("Client update threshold condition met", + zap.String("path_name", src.info.PathName), zap.String("chain_id", dst.info.ChainID), zap.String("client_id", dst.info.ClientID), zap.Int64("trusting_period", dst.clientState.TrustingPeriod.Milliseconds()), @@ -147,10 +169,12 @@ func (mp *messageProcessor) shouldUpdateClientNow(ctx context.Context, src, dst func (mp *messageProcessor) assembleMessages(ctx context.Context, messages pathEndMessages, src, dst *pathEndRuntime) { var wg sync.WaitGroup - mp.connMsgs = make([]connectionMessageToTrack, len(messages.connectionMessages)) - for i, msg := range messages.connectionMessages { - wg.Add(1) - go mp.assembleMessage(ctx, msg, src, dst, i, &wg) + if !mp.isLocalhost { + mp.connMsgs = make([]connectionMessageToTrack, len(messages.connectionMessages)) + for i, msg := range messages.connectionMessages { + wg.Add(1) + go mp.assembleMessage(ctx, msg, src, dst, i, &wg) + } } mp.chanMsgs = make([]channelMessageToTrack, len(messages.channelMessages)) @@ -159,10 +183,12 @@ func (mp *messageProcessor) assembleMessages(ctx context.Context, messages pathE go mp.assembleMessage(ctx, msg, src, dst, i, &wg) } - mp.clientICQMsgs = make([]clientICQMessageToTrack, len(messages.clientICQMessages)) - for i, msg := range messages.clientICQMessages { - wg.Add(1) - go mp.assembleMessage(ctx, msg, src, dst, i, &wg) + if !mp.isLocalhost { + mp.clientICQMsgs = make([]clientICQMessageToTrack, len(messages.clientICQMessages)) + for i, msg := range messages.clientICQMessages { + wg.Add(1) + go mp.assembleMessage(ctx, msg, src, dst, i, &wg) + } } mp.pktMsgs = make([]packetMessageToTrack, len(messages.packetMessages)) @@ -234,6 +260,7 @@ func (mp *messageProcessor) assembleMsgUpdateClient(ctx context.Context, src, ds clientConsensusHeight.RevisionHeight+1, src.info.ChainID, err) } mp.log.Debug("Had to query for client trusted IBC header", + zap.String("path_name", src.info.PathName), zap.String("chain_id", src.info.ChainID), zap.String("counterparty_chain_id", dst.info.ChainID), zap.String("counterparty_client_id", clientID), @@ -286,11 +313,18 @@ func (mp *messageProcessor) trackAndSendMessages( var batch []messageToTrack for _, t := range mp.trackers() { + retries := dst.trackProcessingMessage(t) if t.assembledMsg() == nil { continue } - if broadcastBatch && retries == 0 { + + ordered := false + if m, ok := t.(packetMessageToTrack); ok && m.msg.info.ChannelOrder == chantypes.ORDERED.String() { + ordered = true + } + + if broadcastBatch && (retries == 0 || ordered) { batch = append(batch, t) continue } @@ -339,11 +373,30 @@ func (mp *messageProcessor) sendClientUpdate( zap.String("dst_client_id", dst.info.ClientID), zap.Error(err), ) + + for _, promError := range promErrorCatagories { + if mp.metrics != nil { + if errors.Is(err, promError) { + mp.metrics.IncTxFailure(src.info.PathName, src.info.ChainID, promError.Error()) + } else { + mp.metrics.IncTxFailure(src.info.PathName, src.info.ChainID, "Tx Failure") + } + } + } return } dst.log.Debug("Client update broadcast completed") } +type PathProcessorMessageResp struct { + Response *provider.RelayerTxResponse + DestinationChain provider.ChainProvider + SuccessfulTx bool + Error error +} + +var PathProcMessageCollector chan *PathProcessorMessageResp + // sendBatchMessages will send a batch of messages, // then increment metrics counters for successful packet messages. func (mp *messageProcessor) sendBatchMessages( @@ -354,18 +407,30 @@ func (mp *messageProcessor) sendBatchMessages( broadcastCtx, cancel := context.WithTimeout(ctx, messageSendTimeout) defer cancel() - // messages are batch with appended MsgUpdateClient - msgs := make([]provider.RelayerMessage, 1+len(batch)) - msgs[0] = mp.msgUpdateClient - fields := []zapcore.Field{} - for i, t := range batch { - msgs[i+1] = t.assembledMsg() - fields = append(fields, zap.Object(fmt.Sprintf("msg_%d", i), t)) + var ( + msgs []provider.RelayerMessage + fields []zapcore.Field + ) + + if mp.isLocalhost { + msgs = make([]provider.RelayerMessage, len(batch)) + for i, t := range batch { + msgs[i] = t.assembledMsg() + fields = append(fields, zap.Object(fmt.Sprintf("msg_%d", i), t)) + } + } else { + // messages are batch with appended MsgUpdateClient + msgs = make([]provider.RelayerMessage, 1+len(batch)) + msgs[0] = mp.msgUpdateClient + for i, t := range batch { + msgs[i+1] = t.assembledMsg() + fields = append(fields, zap.Object(fmt.Sprintf("msg_%d", i), t)) + } } dst.log.Debug("Will relay messages", fields...) - callback := func(rtr *provider.RelayerTxResponse, err error) { + callback := func(_ *provider.RelayerTxResponse, err error) { // only increment metrics counts for successful packets if err != nil || mp.metrics == nil { return @@ -386,8 +451,23 @@ func (mp *messageProcessor) sendBatchMessages( mp.metrics.IncPacketsRelayed(dst.info.PathName, dst.info.ChainID, channel, port, t.msg.eventType) } } + callbacks := []func(rtr *provider.RelayerTxResponse, err error){callback} + + //During testing, this adds a callback so our test case can inspect the TX results + if PathProcMessageCollector != nil { + testCallback := func(rtr *provider.RelayerTxResponse, err error) { + msgResult := &PathProcessorMessageResp{ + DestinationChain: dst.chainProvider, + Response: rtr, + SuccessfulTx: err == nil, + Error: err, + } + PathProcMessageCollector <- msgResult + } + callbacks = append(callbacks, testCallback) + } - if err := dst.chainProvider.SendMessagesToMempool(broadcastCtx, msgs, mp.memo, ctx, callback); err != nil { + if err := dst.chainProvider.SendMessagesToMempool(broadcastCtx, msgs, mp.memo, ctx, callbacks); err != nil { errFields := []zapcore.Field{ zap.String("path_name", src.info.PathName), zap.String("src_chain_id", src.info.ChainID), @@ -396,6 +476,17 @@ func (mp *messageProcessor) sendBatchMessages( zap.String("dst_client_id", dst.info.ClientID), zap.Error(err), } + + for _, promError := range promErrorCatagories { + if mp.metrics != nil { + if errors.Is(err, promError) { + mp.metrics.IncTxFailure(src.info.PathName, src.info.ChainID, promError.Error()) + } else { + mp.metrics.IncTxFailure(src.info.PathName, src.info.ChainID, "Tx Failure") + } + } + } + if errors.Is(err, chantypes.ErrRedundantTx) { mp.log.Debug("Redundant message(s)", errFields...) return @@ -412,7 +503,13 @@ func (mp *messageProcessor) sendSingleMessage( src, dst *pathEndRuntime, tracker messageToTrack, ) { - msgs := []provider.RelayerMessage{mp.msgUpdateClient, tracker.assembledMsg()} + var msgs []provider.RelayerMessage + + if mp.isLocalhost { + msgs = []provider.RelayerMessage{tracker.assembledMsg()} + } else { + msgs = []provider.RelayerMessage{mp.msgUpdateClient, tracker.assembledMsg()} + } broadcastCtx, cancel := context.WithTimeout(ctx, messageSendTimeout) defer cancel() @@ -422,9 +519,9 @@ func (mp *messageProcessor) sendSingleMessage( dst.log.Debug(fmt.Sprintf("Will broadcast %s message", msgType), zap.Object("msg", tracker)) // Set callback for packet messages so that we increment prometheus metrics on successful relays. - var callback func(rtr *provider.RelayerTxResponse, err error) + callbacks := []func(rtr *provider.RelayerTxResponse, err error){} if t, ok := tracker.(packetMessageToTrack); ok { - callback = func(rtr *provider.RelayerTxResponse, err error) { + callback := func(_ *provider.RelayerTxResponse, err error) { // only increment metrics counts for successful packets if err != nil || mp.metrics == nil { return @@ -439,9 +536,25 @@ func (mp *messageProcessor) sendSingleMessage( } mp.metrics.IncPacketsRelayed(dst.info.PathName, dst.info.ChainID, channel, port, t.msg.eventType) } + + callbacks = append(callbacks, callback) } - err := dst.chainProvider.SendMessagesToMempool(broadcastCtx, msgs, mp.memo, ctx, callback) + //During testing, this adds a callback so our test case can inspect the TX results + if PathProcMessageCollector != nil { + testCallback := func(rtr *provider.RelayerTxResponse, err error) { + msgResult := &PathProcessorMessageResp{ + DestinationChain: dst.chainProvider, + Response: rtr, + SuccessfulTx: err == nil, + Error: err, + } + PathProcMessageCollector <- msgResult + } + callbacks = append(callbacks, testCallback) + } + + err := dst.chainProvider.SendMessagesToMempool(broadcastCtx, msgs, mp.memo, ctx, callbacks) if err != nil { errFields := []zapcore.Field{ zap.String("path_name", src.info.PathName), @@ -450,6 +563,17 @@ func (mp *messageProcessor) sendSingleMessage( zap.String("src_client_id", src.info.ClientID), zap.String("dst_client_id", dst.info.ClientID), } + + for _, promError := range promErrorCatagories { + if mp.metrics != nil { + if errors.Is(err, promError) { + mp.metrics.IncTxFailure(src.info.PathName, src.info.ChainID, promError.Error()) + } else { + mp.metrics.IncTxFailure(src.info.PathName, src.info.ChainID, "Tx Failure") + } + } + } + errFields = append(errFields, zap.Object("msg", tracker)) errFields = append(errFields, zap.Error(err)) if errors.Is(err, chantypes.ErrRedundantTx) { diff --git a/relayer/processor/metrics.go b/relayer/processor/metrics.go index f5f4245e7..1048eed1e 100644 --- a/relayer/processor/metrics.go +++ b/relayer/processor/metrics.go @@ -1,6 +1,8 @@ package processor import ( + "time" + "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" ) @@ -12,32 +14,56 @@ type PrometheusMetrics struct { LatestHeightGauge *prometheus.GaugeVec WalletBalance *prometheus.GaugeVec FeesSpent *prometheus.GaugeVec + TxFailureError *prometheus.CounterVec + BlockQueryFailure *prometheus.CounterVec + ClientExpiration *prometheus.GaugeVec + ClientTrustingPeriod *prometheus.GaugeVec } -func (m *PrometheusMetrics) AddPacketsObserved(path, chain, channel, port, eventType string, count int) { - m.PacketObservedCounter.WithLabelValues(path, chain, channel, port, eventType).Add(float64(count)) +func (m *PrometheusMetrics) AddPacketsObserved(pathName, chain, channel, port, eventType string, count int) { + m.PacketObservedCounter.WithLabelValues(pathName, chain, channel, port, eventType).Add(float64(count)) } -func (m *PrometheusMetrics) IncPacketsRelayed(path, chain, channel, port, eventType string) { - m.PacketRelayedCounter.WithLabelValues(path, chain, channel, port, eventType).Inc() +func (m *PrometheusMetrics) IncPacketsRelayed(pathName, chain, channel, port, eventType string) { + m.PacketRelayedCounter.WithLabelValues(pathName, chain, channel, port, eventType).Inc() } func (m *PrometheusMetrics) SetLatestHeight(chain string, height int64) { m.LatestHeightGauge.WithLabelValues(chain).Set(float64(height)) } -func (m *PrometheusMetrics) SetWalletBalance(chain, key, denom string, balance float64) { - m.WalletBalance.WithLabelValues(chain, key, denom).Set(balance) +func (m *PrometheusMetrics) SetWalletBalance(chain, gasPrice, key, address, denom string, balance float64) { + m.WalletBalance.WithLabelValues(chain, gasPrice, key, address, denom).Set(balance) +} + +func (m *PrometheusMetrics) SetFeesSpent(chain, gasPrice, key, address, denom string, amount float64) { + m.FeesSpent.WithLabelValues(chain, gasPrice, key, address, denom).Set(amount) +} + +func (m *PrometheusMetrics) SetClientExpiration(pathName, chain, clientID, trustingPeriod string, timeToExpiration time.Duration) { + m.ClientExpiration.WithLabelValues(pathName, chain, clientID, trustingPeriod).Set(timeToExpiration.Seconds()) +} + +func (m *PrometheusMetrics) SetClientTrustingPeriod(pathName, chain, clientID string, trustingPeriod time.Duration) { + m.ClientTrustingPeriod.WithLabelValues(pathName, chain, clientID).Set(trustingPeriod.Abs().Seconds()) +} + +func (m *PrometheusMetrics) IncBlockQueryFailure(chain, err string) { + m.BlockQueryFailure.WithLabelValues(chain, err).Inc() } -func (m *PrometheusMetrics) SetFeesSpent(chain, key, denom string, amount float64) { - m.FeesSpent.WithLabelValues(chain, key, denom).Set(amount) +func (m *PrometheusMetrics) IncTxFailure(pathName, chain, errDesc string) { + m.TxFailureError.WithLabelValues(pathName, chain, errDesc).Inc() } func NewPrometheusMetrics() *PrometheusMetrics { - packetLabels := []string{"path", "chain", "channel", "port", "type"} + packetLabels := []string{"path_name", "chain", "channel", "port", "type"} heightLabels := []string{"chain"} - walletLabels := []string{"chain", "key", "denom"} + txFailureLabels := []string{"path_name", "chain", "cause"} + blockQueryFailureLabels := []string{"chain", "type"} + walletLabels := []string{"chain", "gas_price", "key", "address", "denom"} + clientExpirationLables := []string{"path_name", "chain", "client_id", "trusting_period"} + clientTrustingPeriodLables := []string{"path_name", "chain", "client_id"} registry := prometheus.NewRegistry() registerer := promauto.With(registry) return &PrometheusMetrics{ @@ -62,5 +88,21 @@ func NewPrometheusMetrics() *PrometheusMetrics { Name: "cosmos_relayer_fees_spent", Help: "The amount of fees spent from the relayer's wallet", }, walletLabels), + TxFailureError: registerer.NewCounterVec(prometheus.CounterOpts{ + Name: "cosmos_relayer_tx_errors_total", + Help: "The total number of tx failures broken up into categories. See https://github.com/cosmos/relayer/blob/main/docs/advanced_usage.md#monitoring for list of catagories. 'Tx Failure' is the catch-all category", + }, txFailureLabels), + BlockQueryFailure: registerer.NewCounterVec(prometheus.CounterOpts{ + Name: "cosmos_relayer_block_query_errors_total", + Help: "The total number of block query failures. The failures are separated into two categories: 'RPC Client' and 'IBC Header'", + }, blockQueryFailureLabels), + ClientExpiration: registerer.NewGaugeVec(prometheus.GaugeOpts{ + Name: "cosmos_relayer_client_expiration_seconds", + Help: "Seconds until the client expires", + }, clientExpirationLables), + ClientTrustingPeriod: registerer.NewGaugeVec(prometheus.GaugeOpts{ + Name: "cosmos_relayer_client_trusting_period_seconds", + Help: "The trusting period (in seconds) of the client", + }, clientTrustingPeriodLables), } } diff --git a/relayer/processor/path_end_runtime.go b/relayer/processor/path_end_runtime.go index f7c9ffa3f..f1b732af7 100644 --- a/relayer/processor/path_end_runtime.go +++ b/relayer/processor/path_end_runtime.go @@ -5,8 +5,10 @@ import ( "sync" "time" + clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" conntypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" "github.com/cosmos/relayer/v2/relayer/provider" "go.uber.org/zap" ) @@ -28,6 +30,7 @@ type pathEndRuntime struct { clientTrustedState provider.ClientTrustedState connectionStateCache ConnectionStateCache channelStateCache ChannelStateCache + channelOrderCache map[string]chantypes.Order latestHeader provider.IBCHeader ibcHeaderCache IBCHeaderCache @@ -69,6 +72,7 @@ func newPathEndRuntime(log *zap.Logger, pathEnd PathEnd, metrics *PrometheusMetr packetProcessing: make(packetProcessingCache), connProcessing: make(connectionProcessingCache), channelProcessing: make(channelProcessingCache), + channelOrderCache: make(map[string]chantypes.Order), clientICQProcessing: make(clientICQProcessingCache), connSubscribers: make(map[string][]func(provider.ConnectionInfo)), metrics: metrics, @@ -438,7 +442,7 @@ func (pathEnd *pathEndRuntime) shouldSendPacketMessage(message packetIBCMessage, ) return false } - if !pathEnd.channelStateCache[k] { + if !pathEnd.channelStateCache[k].Open { // channel is not open, do not send pathEnd.log.Warn("Refusing to relay packet message because channel is not open", zap.String("event_type", eventType), @@ -603,6 +607,13 @@ func (pathEnd *pathEndRuntime) shouldSendChannelMessage(message channelIBCMessag if eventType != chantypes.EventTypeChannelOpenInit { channelKey = channelKey.Counterparty() } + + // For localhost cache the channel order on OpenInit so that we can access it during the other channel handshake steps + if pathEnd.info.ClientID == ibcexported.LocalhostClientID && eventType == chantypes.EventTypeChannelOpenInit { + pathEnd.channelOrderCache[channelKey.ChannelID] = message.info.Order + counterparty.channelOrderCache[channelKey.CounterpartyChannelID] = message.info.Order + } + if message.info.Height >= counterparty.latestBlock.Height { pathEnd.log.Debug("Waiting to relay channel message until counterparty height has incremented", zap.Inline(channelKey), @@ -839,3 +850,27 @@ func (pathEnd *pathEndRuntime) trackProcessingMessage(tracker messageToTrack) ui return retryCount } + +func (pathEnd *pathEndRuntime) localhostSentinelProofPacket( + _ context.Context, + _ provider.PacketInfo, + height uint64, +) (provider.PacketProof, error) { + return provider.PacketProof{ + Proof: []byte{0x01}, + ProofHeight: clienttypes.NewHeight(clienttypes.ParseChainID(pathEnd.info.ChainID), height), + }, nil +} + +func (pathEnd *pathEndRuntime) localhostSentinelProofChannel( + _ context.Context, + info provider.ChannelInfo, + height uint64, +) (provider.ChannelProof, error) { + return provider.ChannelProof{ + Proof: []byte{0x01}, + ProofHeight: clienttypes.NewHeight(clienttypes.ParseChainID(pathEnd.info.ChainID), height), + Ordering: info.Order, + Version: info.Version, + }, nil +} diff --git a/relayer/processor/path_processor.go b/relayer/processor/path_processor.go index 976037ba1..5b0b2c76e 100644 --- a/relayer/processor/path_processor.go +++ b/relayer/processor/path_processor.go @@ -5,6 +5,8 @@ import ( "fmt" "time" + chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" "github.com/cosmos/relayer/v2/relayer/provider" "go.uber.org/zap" ) @@ -27,6 +29,9 @@ const ( // Amount of time to wait for interchain queries. interchainQueryTimeout = 60 * time.Second + // Amount of time between flushes if the previous flush failed. + flushFailureRetry = 5 * time.Second + // If message assembly fails from either proof query failure on the source // or assembling the message for the destination, how many blocks should pass // before retrying. @@ -63,7 +68,7 @@ type PathProcessor struct { messageLifecycle MessageLifecycle initialFlushComplete bool - flushTicker *time.Ticker + flushTimer *time.Timer flushInterval time.Duration // Signals to retry. @@ -71,6 +76,11 @@ type PathProcessor struct { sentInitialMsg bool + // true if this is a localhost IBC connection + isLocalhost bool + + maxMsgs uint64 + metrics *PrometheusMetrics } @@ -94,7 +104,10 @@ func NewPathProcessor( memo string, clientUpdateThresholdTime time.Duration, flushInterval time.Duration, + maxMsgs uint64, ) *PathProcessor { + isLocalhost := pathEnd1.ClientID == ibcexported.LocalhostClientID + pp := &PathProcessor{ log: log, pathEnd1: newPathEndRuntime(log, pathEnd1, metrics), @@ -104,6 +117,8 @@ func NewPathProcessor( clientUpdateThresholdTime: clientUpdateThresholdTime, flushInterval: flushInterval, metrics: metrics, + isLocalhost: isLocalhost, + maxMsgs: maxMsgs, } if flushInterval == 0 { pp.disablePeriodicFlush() @@ -171,12 +186,12 @@ func (pp *PathProcessor) OnConnectionMessage(chainID string, eventType string, o func (pp *PathProcessor) channelPairs() []channelPair { // Channel keys are from pathEnd1's perspective - channels := make(map[ChannelKey]bool) - for k, open := range pp.pathEnd1.channelStateCache { - channels[k] = open + channels := make(map[ChannelKey]ChannelState) + for k, cs := range pp.pathEnd1.channelStateCache { + channels[k] = cs } - for k, open := range pp.pathEnd2.channelStateCache { - channels[k.Counterparty()] = open + for k, cs := range pp.pathEnd2.channelStateCache { + channels[k.Counterparty()] = cs } pairs := make([]channelPair, len(channels)) i := 0 @@ -198,9 +213,19 @@ func (pp *PathProcessor) SetChainProviderIfApplicable(chainProvider provider.Cha } if pp.pathEnd1.info.ChainID == chainProvider.ChainId() { pp.pathEnd1.chainProvider = chainProvider + + if pp.isLocalhost { + pp.pathEnd2.chainProvider = chainProvider + } + return true } else if pp.pathEnd2.info.ChainID == chainProvider.ChainId() { pp.pathEnd2.chainProvider = chainProvider + + if pp.isLocalhost { + pp.pathEnd1.chainProvider = chainProvider + } + return true } return false @@ -257,6 +282,11 @@ func (pp *PathProcessor) ProcessBacklogIfReady() { // ChainProcessors call this method when they have new IBC messages func (pp *PathProcessor) HandleNewData(chainID string, cacheData ChainProcessorCacheData) { + if pp.isLocalhost { + pp.handleLocalhostData(cacheData) + return + } + if pp.pathEnd1.info.ChainID == chainID { pp.pathEnd1.incomingCacheData <- cacheData } else if pp.pathEnd2.info.ChainID == chainID { @@ -264,6 +294,16 @@ func (pp *PathProcessor) HandleNewData(chainID string, cacheData ChainProcessorC } } +func (pp *PathProcessor) handleFlush(ctx context.Context) { + flushTimer := pp.flushInterval + if err := pp.flush(ctx); err != nil { + pp.log.Warn("Flush not complete", zap.Error(err)) + flushTimer = flushFailureRetry + } + pp.flushTimer.Stop() + pp.flushTimer = time.NewTimer(flushTimer) +} + // processAvailableSignals will block if signals are not yet available, otherwise it will process one of the available signals. // It returns whether or not the pathProcessor should quit. func (pp *PathProcessor) processAvailableSignals(ctx context.Context, cancel func()) bool { @@ -287,9 +327,9 @@ func (pp *PathProcessor) processAvailableSignals(ctx context.Context, cancel fun case <-pp.retryProcess: // No new data to merge in, just retry handling. - case <-pp.flushTicker.C: + case <-pp.flushTimer.C: // Periodic flush to clear out any old packets - pp.flush(ctx) + pp.handleFlush(ctx) } return false } @@ -298,8 +338,7 @@ func (pp *PathProcessor) processAvailableSignals(ctx context.Context, cancel fun func (pp *PathProcessor) Run(ctx context.Context, cancel func()) { var retryTimer *time.Timer - pp.flushTicker = time.NewTicker(pp.flushInterval) - defer pp.flushTicker.Stop() + pp.flushTimer = time.NewTimer(time.Hour) for { // block until we have any signals to process @@ -319,7 +358,7 @@ func (pp *PathProcessor) Run(ctx context.Context, cancel func()) { } if pp.shouldFlush() && !pp.initialFlushComplete { - pp.flush(ctx) + pp.handleFlush(ctx) pp.initialFlushComplete = true } else if pp.shouldTerminateForFlushComplete() { cancel() @@ -338,3 +377,116 @@ func (pp *PathProcessor) Run(ctx context.Context, cancel func()) { } } } + +func (pp *PathProcessor) handleLocalhostData(cacheData ChainProcessorCacheData) { + pathEnd1Cache := ChainProcessorCacheData{ + IBCMessagesCache: NewIBCMessagesCache(), + InSync: cacheData.InSync, + ClientState: cacheData.ClientState, + ConnectionStateCache: cacheData.ConnectionStateCache, + ChannelStateCache: cacheData.ChannelStateCache, + LatestBlock: cacheData.LatestBlock, + LatestHeader: cacheData.LatestHeader, + IBCHeaderCache: cacheData.IBCHeaderCache, + } + pathEnd2Cache := ChainProcessorCacheData{ + IBCMessagesCache: NewIBCMessagesCache(), + InSync: cacheData.InSync, + ClientState: cacheData.ClientState, + ConnectionStateCache: cacheData.ConnectionStateCache, + ChannelStateCache: cacheData.ChannelStateCache, + LatestBlock: cacheData.LatestBlock, + LatestHeader: cacheData.LatestHeader, + IBCHeaderCache: cacheData.IBCHeaderCache, + } + + // split up data and send lower channel-id data to pathEnd1 and higher channel-id data to pathEnd2. + for k, v := range cacheData.IBCMessagesCache.PacketFlow { + chan1, err := chantypes.ParseChannelSequence(k.ChannelID) + if err != nil { + pp.log.Error("Failed to parse channel ID int from string", zap.Error(err)) + continue + } + + chan2, err := chantypes.ParseChannelSequence(k.CounterpartyChannelID) + if err != nil { + pp.log.Error("Failed to parse channel ID int from string", zap.Error(err)) + continue + } + + if chan1 < chan2 { + pathEnd1Cache.IBCMessagesCache.PacketFlow[k] = v + } else { + pathEnd2Cache.IBCMessagesCache.PacketFlow[k] = v + } + } + + for eventType, c := range cacheData.IBCMessagesCache.ChannelHandshake { + for k, v := range c { + switch eventType { + case chantypes.EventTypeChannelOpenInit, chantypes.EventTypeChannelOpenAck, chantypes.EventTypeChannelCloseInit: + if _, ok := pathEnd1Cache.IBCMessagesCache.ChannelHandshake[eventType]; !ok { + pathEnd1Cache.IBCMessagesCache.ChannelHandshake[eventType] = make(ChannelMessageCache) + } + if order, ok := pp.pathEnd1.channelOrderCache[k.ChannelID]; ok { + v.Order = order + } + if order, ok := pp.pathEnd2.channelOrderCache[k.CounterpartyChannelID]; ok { + v.Order = order + } + // TODO this is insanely hacky, need to figure out how to handle the ordering dilemma on ordered chans + if v.Order == chantypes.NONE { + v.Order = chantypes.ORDERED + } + pathEnd1Cache.IBCMessagesCache.ChannelHandshake[eventType][k] = v + case chantypes.EventTypeChannelOpenTry, chantypes.EventTypeChannelOpenConfirm, chantypes.EventTypeChannelCloseConfirm: + if _, ok := pathEnd2Cache.IBCMessagesCache.ChannelHandshake[eventType]; !ok { + pathEnd2Cache.IBCMessagesCache.ChannelHandshake[eventType] = make(ChannelMessageCache) + } + if order, ok := pp.pathEnd2.channelOrderCache[k.ChannelID]; ok { + v.Order = order + } + if order, ok := pp.pathEnd1.channelOrderCache[k.CounterpartyChannelID]; ok { + v.Order = order + } + + pathEnd2Cache.IBCMessagesCache.ChannelHandshake[eventType][k] = v + default: + pp.log.Error("Invalid IBC channel event type", zap.String("event_type", eventType)) + } + } + } + + channelStateCache1 := make(map[ChannelKey]ChannelState) + channelStateCache2 := make(map[ChannelKey]ChannelState) + + // split up data and send lower channel-id data to pathEnd2 and higher channel-id data to pathEnd1. + for k, v := range cacheData.ChannelStateCache { + chan1, err := chantypes.ParseChannelSequence(k.ChannelID) + chan2, secErr := chantypes.ParseChannelSequence(k.CounterpartyChannelID) + + if err != nil && secErr != nil { + continue + } + + // error parsing counterparty chan ID so write chan state to src cache. + // this should indicate that the chan handshake has not progressed past the TRY so, + // counterparty chan id has not been initialized yet. + if secErr != nil && err == nil { + channelStateCache1[k] = v + continue + } + + if chan1 > chan2 { + channelStateCache2[k] = v + } else { + channelStateCache1[k] = v + } + } + + pathEnd1Cache.ChannelStateCache = channelStateCache1 + pathEnd2Cache.ChannelStateCache = channelStateCache2 + + pp.pathEnd1.incomingCacheData <- pathEnd1Cache + pp.pathEnd2.incomingCacheData <- pathEnd2Cache +} diff --git a/relayer/processor/path_processor_internal.go b/relayer/processor/path_processor_internal.go index 040808103..58bbcc4a5 100644 --- a/relayer/processor/path_processor_internal.go +++ b/relayer/processor/path_processor_internal.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "errors" + "fmt" "sort" "sync" @@ -25,40 +26,159 @@ const ( // getMessagesToSend returns only the lowest sequence message (if it should be sent) for ordered channels, // otherwise returns all which should be sent. func (pp *PathProcessor) getMessagesToSend( + ctx context.Context, msgs []packetIBCMessage, src, dst *pathEndRuntime, ) (srcMsgs []packetIBCMessage, dstMsgs []packetIBCMessage) { if len(msgs) == 0 { return } - if msgs[0].info.ChannelOrder == chantypes.ORDERED.String() { - // for packet messages on ordered channels, only handle the lowest sequence number now. - sort.SliceStable(msgs, func(i, j int) bool { - return msgs[i].info.Sequence < msgs[j].info.Sequence - }) - firstMsg := msgs[0] - switch firstMsg.eventType { - case chantypes.EventTypeRecvPacket: - if dst.shouldSendPacketMessage(firstMsg, src) { - dstMsgs = append(dstMsgs, firstMsg) + + ordered := false + + // channelStateCache most likely has the ordering information. + if cs, ok := src.channelStateCache[packetInfoChannelKey(msgs[0].info)]; ok && cs.Order == chantypes.ORDERED { + ordered = true + } + + // if packet info has the order defined, use that. + if msgs[0].info.ChannelOrder != "" && msgs[0].info.ChannelOrder != chantypes.NONE.String() { + ordered = msgs[0].info.ChannelOrder == chantypes.ORDERED.String() + } + + if ordered { + eventMessages := make(map[string][]packetIBCMessage) + lowestSeq := make(map[string]uint64) + + for _, m := range msgs { + eventMessages[m.eventType] = append(eventMessages[m.eventType], m) + switch m.eventType { + case chantypes.EventTypeRecvPacket: + dstChan, dstPort := m.info.DestChannel, m.info.DestPort + res, err := dst.chainProvider.QueryNextSeqRecv(ctx, 0, dstChan, dstPort) + if err != nil { + dst.log.Error("Failed to query next sequence recv", + zap.String("channel_id", dstChan), + zap.String("port_id", dstPort), + zap.Error(err), + ) + return + } + lowestSeq[chantypes.EventTypeRecvPacket] = res.NextSequenceReceive + case chantypes.EventTypeAcknowledgePacket: + srcChan, srcPort := m.info.SourceChannel, m.info.SourcePort + res, err := src.chainProvider.QueryNextSeqAck(ctx, 0, srcChan, srcPort) + if err != nil { + src.log.Error("Failed to query next sequence ack", + zap.String("channel_id", srcChan), + zap.String("port_id", srcPort), + zap.Error(err), + ) + return + } + lowestSeq[chantypes.EventTypeAcknowledgePacket] = res.NextSequenceReceive } - default: - if src.shouldSendPacketMessage(firstMsg, dst) { - srcMsgs = append(srcMsgs, firstMsg) + } + + for e, m := range eventMessages { + m := m + sort.SliceStable(m, func(i, j int) bool { + return m[i].info.Sequence < m[j].info.Sequence + }) + + foundFirst := false + MsgLoop: + for _, msg := range m { + if e == chantypes.EventTypeRecvPacket || e == chantypes.EventTypeAcknowledgePacket { + if msg.info.Sequence < lowestSeq[e] { + // TODO prune these from caches + continue MsgLoop + } else if msg.info.Sequence > lowestSeq[e] && !foundFirst { + switch e { + case chantypes.EventTypeRecvPacket: + dst.log.Debug("Not yet ready to relay this recv sequence", + zap.String("channel_id", msg.info.DestChannel), + zap.String("port_id", msg.info.DestPort), + zap.Uint64("expected", lowestSeq[e]), + zap.Uint64("actual", msg.info.Sequence), + ) + case chantypes.EventTypeAcknowledgePacket: + src.log.Debug("Not yet ready to relay this ack sequence", + zap.String("channel_id", msg.info.SourceChannel), + zap.String("port_id", msg.info.SourcePort), + zap.Uint64("expected", lowestSeq[e]), + zap.Uint64("actual", msg.info.Sequence), + ) + } + + break MsgLoop + } + } + + switch e { + case chantypes.EventTypeRecvPacket: + if len(dstMsgs) > 0 && dstMsgs[len(dstMsgs)-1].eventType == e && dstMsgs[len(dstMsgs)-1].info.Sequence != msg.info.Sequence-1 { + dst.log.Debug("Skipping non-consecutive packet(s)", + zap.String("event_type", e), + zap.String("channel_id", msg.info.DestChannel), + zap.String("port_id", msg.info.DestChannel), + zap.Uint64("seq", msg.info.Sequence), + zap.Uint64("prior_seq", dstMsgs[len(dstMsgs)-1].info.Sequence), + ) + break MsgLoop + } + if uint64(len(dstMsgs)) <= pp.maxMsgs && dst.shouldSendPacketMessage(msg, src) { + dst.log.Debug("Appending packet", + zap.String("event_type", e), + zap.String("channel_id", msg.info.DestChannel), + zap.String("port_id", msg.info.DestChannel), + zap.Uint64("seq", msg.info.Sequence), + ) + dstMsgs = append(dstMsgs, msg) + if e == chantypes.EventTypeRecvPacket && msg.info.Sequence == lowestSeq[e] { + foundFirst = true + } + } + default: + if len(srcMsgs) > 0 && srcMsgs[len(srcMsgs)-1].eventType == e && srcMsgs[len(srcMsgs)-1].info.Sequence != msg.info.Sequence-1 { + src.log.Debug("Skipping non-consecutive packet(s)", + zap.String("event_type", e), + zap.String("channel_id", msg.info.SourceChannel), + zap.String("port_id", msg.info.SourcePort), + zap.Uint64("seq", msg.info.Sequence), + zap.Uint64("prior_seq", srcMsgs[len(srcMsgs)-1].info.Sequence), + ) + break MsgLoop + } + + if uint64(len(srcMsgs)) <= pp.maxMsgs && src.shouldSendPacketMessage(msg, dst) { + src.log.Debug("Appending packet", + zap.String("event_type", e), + zap.String("channel_id", msg.info.SourceChannel), + zap.String("port_id", msg.info.SourcePort), + zap.Uint64("seq", msg.info.Sequence), + ) + srcMsgs = append(srcMsgs, msg) + if e == chantypes.EventTypeAcknowledgePacket && msg.info.Sequence == lowestSeq[e] { + foundFirst = true + } + } + } } } + return srcMsgs, dstMsgs } - // for unordered channels, can handle multiple simultaneous packets. + // for unordered channels, don't need to worry about sequence ordering. for _, msg := range msgs { switch msg.eventType { case chantypes.EventTypeRecvPacket: - if dst.shouldSendPacketMessage(msg, src) { + if uint64(len(dstMsgs)) <= pp.maxMsgs && dst.shouldSendPacketMessage(msg, src) { dstMsgs = append(dstMsgs, msg) } default: - if src.shouldSendPacketMessage(msg, dst) { + if uint64(len(srcMsgs)) <= pp.maxMsgs && src.shouldSendPacketMessage(msg, dst) { srcMsgs = append(srcMsgs, msg) } } @@ -211,7 +331,12 @@ func (pp *PathProcessor) unrelayedPacketFlowMessages( msgs = append(msgs, msgTransfer) } - res.SrcMessages, res.DstMessages = pp.getMessagesToSend(msgs, pathEndPacketFlowMessages.Src, pathEndPacketFlowMessages.Dst) + res.SrcMessages, res.DstMessages = pp.getMessagesToSend( + ctx, + msgs, + pathEndPacketFlowMessages.Src, + pathEndPacketFlowMessages.Dst, + ) return res } @@ -445,6 +570,7 @@ func (pp *PathProcessor) unrelayedChannelHandshakeMessages( eventType: chantypes.EventTypeChannelOpenTry, info: info, } + if pathEndChannelHandshakeMessages.Dst.shouldSendChannelMessage( msgOpenTry, pathEndChannelHandshakeMessages.Src, ) { @@ -734,13 +860,13 @@ func (pp *PathProcessor) queuePreInitMessages(cancel func()) { return } - for k, open := range pp.pathEnd1.channelStateCache { + for k, cs := range pp.pathEnd1.channelStateCache { if k.ChannelID == m.SrcChannelID && k.PortID == m.SrcPortID && k.CounterpartyChannelID != "" && k.CounterpartyPortID != "" { - if open { + if cs.Open { // channel is still open on pathEnd1 break } - if counterpartyOpen, ok := pp.pathEnd2.channelStateCache[k.Counterparty()]; ok && !counterpartyOpen { + if counterpartyState, ok := pp.pathEnd2.channelStateCache[k.Counterparty()]; ok && !counterpartyState.Open { pp.log.Info("Channel already closed on both sides") cancel() return @@ -760,13 +886,13 @@ func (pp *PathProcessor) queuePreInitMessages(cancel func()) { } } - for k, open := range pp.pathEnd2.channelStateCache { + for k, cs := range pp.pathEnd2.channelStateCache { if k.CounterpartyChannelID == m.SrcChannelID && k.CounterpartyPortID == m.SrcPortID && k.ChannelID != "" && k.PortID != "" { - if open { + if cs.Open { // channel is still open on pathEnd2 break } - if counterpartyChanState, ok := pp.pathEnd1.channelStateCache[k.Counterparty()]; ok && !counterpartyChanState { + if counterpartyChanState, ok := pp.pathEnd1.channelStateCache[k.Counterparty()]; ok && !counterpartyChanState.Open { pp.log.Info("Channel already closed on both sides") cancel() return @@ -951,11 +1077,11 @@ func (pp *PathProcessor) processLatestMessages(ctx context.Context, cancel func( // if sending messages fails to one pathEnd, we don't need to halt sending to the other pathEnd. var eg errgroup.Group eg.Go(func() error { - mp := newMessageProcessor(pp.log, pp.metrics, pp.memo, pp.clientUpdateThresholdTime) + mp := newMessageProcessor(pp.log, pp.metrics, pp.memo, pp.clientUpdateThresholdTime, pp.isLocalhost) return mp.processMessages(ctx, pathEnd1Messages, pp.pathEnd2, pp.pathEnd1) }) eg.Go(func() error { - mp := newMessageProcessor(pp.log, pp.metrics, pp.memo, pp.clientUpdateThresholdTime) + mp := newMessageProcessor(pp.log, pp.metrics, pp.memo, pp.clientUpdateThresholdTime, pp.isLocalhost) return mp.processMessages(ctx, pathEnd2Messages, pp.pathEnd1, pp.pathEnd2) }) return eg.Wait() @@ -1073,7 +1199,14 @@ func queryPacketCommitments( } } -func queuePendingRecvAndAcks( +// skippedPackets is used to track the number of packets skipped during a flush. +type skippedPackets struct { + Recv uint64 + Ack uint64 +} + +// queuePendingRecvAndAcks returns the number of packets skipped during a flush (nil if none). +func (pp *PathProcessor) queuePendingRecvAndAcks( ctx context.Context, src, dst *pathEndRuntime, k ChannelKey, @@ -1082,124 +1215,199 @@ func queuePendingRecvAndAcks( dstCache ChannelPacketMessagesCache, srcMu sync.Locker, dstMu sync.Locker, -) func() error { - return func() error { - if len(seqs) == 0 { - src.log.Debug("Nothing to flush", zap.String("channel", k.ChannelID), zap.String("port", k.PortID)) - return nil - } +) (*skippedPackets, error) { - dstChan, dstPort := k.CounterpartyChannelID, k.CounterpartyPortID + if len(seqs) == 0 { + src.log.Debug("Nothing to flush", zap.String("channel", k.ChannelID), zap.String("port", k.PortID)) + return nil, nil + } + + dstChan, dstPort := k.CounterpartyChannelID, k.CounterpartyPortID + + unrecv, err := dst.chainProvider.QueryUnreceivedPackets(ctx, dst.latestBlock.Height, dstChan, dstPort, seqs) + if err != nil { + return nil, err + } - unrecv, err := dst.chainProvider.QueryUnreceivedPackets(ctx, dst.latestBlock.Height, dstChan, dstPort, seqs) + dstHeight := int64(dst.latestBlock.Height) + + var order chantypes.Order + + if len(unrecv) > 0 { + channel, err := dst.chainProvider.QueryChannel(ctx, dstHeight, dstChan, dstPort) if err != nil { - return err + return nil, err } - dstHeight := int64(dst.latestBlock.Height) + order = channel.Channel.Ordering - if len(unrecv) > 0 { - channel, err := dst.chainProvider.QueryChannel(ctx, dstHeight, dstChan, dstPort) + if channel.Channel.Ordering == chantypes.ORDERED { + nextSeqRecv, err := dst.chainProvider.QueryNextSeqRecv(ctx, dstHeight, dstChan, dstPort) if err != nil { - return err + return nil, err } - if channel.Channel.Ordering == chantypes.ORDERED { - nextSeqRecv, err := dst.chainProvider.QueryNextSeqRecv(ctx, dstHeight, dstChan, dstPort) - if err != nil { - return err + var newUnrecv []uint64 + + for _, seq := range unrecv { + if seq >= nextSeqRecv.NextSequenceReceive { + newUnrecv = append(newUnrecv, seq) } + } - var newUnrecv []uint64 + unrecv = newUnrecv - for _, seq := range unrecv { - if seq >= nextSeqRecv.NextSequenceReceive { - newUnrecv = append(newUnrecv, seq) - break - } - } + sort.SliceStable(unrecv, func(i, j int) bool { + return unrecv[i] < unrecv[j] + }) + } + } - unrecv = newUnrecv - } + var eg errgroup.Group + + var skipped *skippedPackets + + for i, seq := range unrecv { + srcMu.Lock() + if srcCache.IsCached(chantypes.EventTypeSendPacket, k, seq) { + continue // already cached } + srcMu.Unlock() - if len(unrecv) > 0 { - src.log.Debug("Will flush MsgRecvPacket", - zap.String("channel", k.ChannelID), - zap.String("port", k.PortID), - zap.Uint64s("sequences", unrecv), - ) - } else { - src.log.Debug("No MsgRecvPacket to flush", - zap.String("channel", k.ChannelID), - zap.String("port", k.PortID), - ) + if i >= int(pp.maxMsgs) { + if skipped == nil { + skipped = new(skippedPackets) + } + skipped.Recv = uint64(len(unrecv) - i) + break } - for _, seq := range unrecv { + src.log.Debug("Querying send packet", + zap.String("channel", k.ChannelID), + zap.String("port", k.PortID), + zap.Uint64("sequence", seq), + ) + + seq := seq + + eg.Go(func() error { sendPacket, err := src.chainProvider.QuerySendPacket(ctx, k.ChannelID, k.PortID, seq) if err != nil { return err } + sendPacket.ChannelOrder = order.String() srcMu.Lock() - if _, ok := srcCache[k]; !ok { - srcCache[k] = make(PacketMessagesCache) - } - if _, ok := srcCache[k][chantypes.EventTypeSendPacket]; !ok { - srcCache[k][chantypes.EventTypeSendPacket] = make(PacketSequenceCache) - } - srcCache[k][chantypes.EventTypeSendPacket][seq] = sendPacket + srcCache.Cache(chantypes.EventTypeSendPacket, k, seq, sendPacket) srcMu.Unlock() - } - var unacked []uint64 + src.log.Debug("Cached send packet", + zap.String("channel", k.ChannelID), + zap.String("port", k.PortID), + zap.String("ctrpty_channel", k.CounterpartyChannelID), + zap.String("ctrpty_port", k.CounterpartyPortID), + zap.Uint64("sequence", seq), + ) - SeqLoop: - for _, seq := range seqs { - for _, unrecvSeq := range unrecv { - if seq == unrecvSeq { - continue SeqLoop - } + return nil + }) + } + + if err := eg.Wait(); err != nil { + return skipped, err + } + + if len(unrecv) > 0 { + src.log.Debug("Will flush MsgRecvPacket", + zap.String("channel", k.ChannelID), + zap.String("port", k.PortID), + zap.Uint64s("sequences", unrecv), + ) + } else { + src.log.Debug("No MsgRecvPacket to flush", + zap.String("channel", k.ChannelID), + zap.String("port", k.PortID), + ) + } + + var unacked []uint64 + +SeqLoop: + for _, seq := range seqs { + for _, unrecvSeq := range unrecv { + if seq == unrecvSeq { + continue SeqLoop } - // does not exist in unrecv, so this is an ack that must be written - unacked = append(unacked, seq) } + // does not exist in unrecv, so this is an ack that must be written + unacked = append(unacked, seq) + } - if len(unacked) > 0 { - src.log.Debug("Will flush MsgAcknowledgement", zap.Object("channel", k), zap.Uint64s("sequences", unacked)) - } else { - src.log.Debug("No MsgAcknowledgement to flush", zap.String("channel", k.ChannelID), zap.String("port", k.PortID)) + for i, seq := range unacked { + dstMu.Lock() + ck := k.Counterparty() + if dstCache.IsCached(chantypes.EventTypeRecvPacket, ck, seq) && + dstCache.IsCached(chantypes.EventTypeWriteAck, ck, seq) { + continue // already cached } + dstMu.Unlock() - for _, seq := range unacked { + if i >= int(pp.maxMsgs) { + if skipped == nil { + skipped = new(skippedPackets) + } + skipped.Ack = uint64(len(unacked) - i) + break + } + + seq := seq + + dst.log.Debug("Querying recv packet", + zap.String("channel", k.CounterpartyChannelID), + zap.String("port", k.CounterpartyPortID), + zap.Uint64("sequence", seq), + ) + + eg.Go(func() error { recvPacket, err := dst.chainProvider.QueryRecvPacket(ctx, k.CounterpartyChannelID, k.CounterpartyPortID, seq) if err != nil { return err } - dstMu.Lock() - ck := k.Counterparty() - if _, ok := dstCache[ck]; !ok { - dstCache[ck] = make(PacketMessagesCache) - } - if _, ok := dstCache[ck][chantypes.EventTypeRecvPacket]; !ok { - dstCache[ck][chantypes.EventTypeRecvPacket] = make(PacketSequenceCache) - } - if _, ok := dstCache[ck][chantypes.EventTypeWriteAck]; !ok { - dstCache[ck][chantypes.EventTypeWriteAck] = make(PacketSequenceCache) - } - dstCache[ck][chantypes.EventTypeRecvPacket][seq] = recvPacket - dstCache[ck][chantypes.EventTypeWriteAck][seq] = recvPacket + recvPacket.ChannelOrder = order.String() + dstMu.Lock() + dstCache.Cache(chantypes.EventTypeRecvPacket, ck, seq, recvPacket) + dstCache.Cache(chantypes.EventTypeWriteAck, ck, seq, recvPacket) dstMu.Unlock() - } - return nil + + return nil + }) } + + if err := eg.Wait(); err != nil { + return skipped, err + } + + if len(unacked) > 0 { + dst.log.Debug( + "Will flush MsgAcknowledgement", + zap.Object("channel", k), + zap.Uint64s("sequences", unacked), + ) + } else { + dst.log.Debug( + "No MsgAcknowledgement to flush", + zap.String("channel", k.CounterpartyChannelID), + zap.String("port", k.CounterpartyPortID), + ) + } + + return skipped, nil } // flush runs queries to relay any pending messages which may have been // in blocks before the height that the chain processors started querying. -func (pp *PathProcessor) flush(ctx context.Context) { +func (pp *PathProcessor) flush(ctx context.Context) error { var ( commitments1 = make(map[ChannelKey][]uint64) commitments2 = make(map[ChannelKey][]uint64) @@ -1212,8 +1420,8 @@ func (pp *PathProcessor) flush(ctx context.Context) { // Query remaining packet commitments on both chains var eg errgroup.Group - for k, open := range pp.pathEnd1.channelStateCache { - if !open { + for k, cs := range pp.pathEnd1.channelStateCache { + if !cs.Open { continue } if !pp.pathEnd1.info.ShouldRelayChannel(ChainChannelKey{ @@ -1225,8 +1433,8 @@ func (pp *PathProcessor) flush(ctx context.Context) { } eg.Go(queryPacketCommitments(ctx, pp.pathEnd1, k, commitments1, &commitments1Mu)) } - for k, open := range pp.pathEnd2.channelStateCache { - if !open { + for k, cs := range pp.pathEnd2.channelStateCache { + if !cs.Open { continue } if !pp.pathEnd2.info.ShouldRelayChannel(ChainChannelKey{ @@ -1240,27 +1448,74 @@ func (pp *PathProcessor) flush(ctx context.Context) { } if err := eg.Wait(); err != nil { - pp.log.Error("Failed to query packet commitments", zap.Error(err)) + return fmt.Errorf("failed to query packet commitments: %w", err) } // From remaining packet commitments, determine if: // 1. Packet commitment is on source, but MsgRecvPacket has not yet been relayed to destination // 2. Packet commitment is on source, and MsgRecvPacket has been relayed to destination, but MsgAcknowledgement has not been written to source to clear the packet commitment. // Based on above conditions, enqueue MsgRecvPacket and MsgAcknowledgement messages + skipped := make(map[string]map[ChannelKey]skippedPackets) for k, seqs := range commitments1 { - eg.Go(queuePendingRecvAndAcks(ctx, pp.pathEnd1, pp.pathEnd2, k, seqs, pathEnd1Cache.PacketFlow, pathEnd2Cache.PacketFlow, &pathEnd1CacheMu, &pathEnd2CacheMu)) + k := k + seqs := seqs + eg.Go(func() error { + s, err := pp.queuePendingRecvAndAcks(ctx, pp.pathEnd1, pp.pathEnd2, k, seqs, pathEnd1Cache.PacketFlow, pathEnd2Cache.PacketFlow, &pathEnd1CacheMu, &pathEnd2CacheMu) + if err != nil { + return err + } + if s != nil { + if _, ok := skipped[pp.pathEnd1.info.ChainID]; !ok { + skipped[pp.pathEnd1.info.ChainID] = make(map[ChannelKey]skippedPackets) + } + skipped[pp.pathEnd1.info.ChainID][k] = *s + } + return nil + }) } for k, seqs := range commitments2 { - eg.Go(queuePendingRecvAndAcks(ctx, pp.pathEnd2, pp.pathEnd1, k, seqs, pathEnd2Cache.PacketFlow, pathEnd1Cache.PacketFlow, &pathEnd2CacheMu, &pathEnd1CacheMu)) + k := k + seqs := seqs + eg.Go(func() error { + s, err := pp.queuePendingRecvAndAcks(ctx, pp.pathEnd2, pp.pathEnd1, k, seqs, pathEnd2Cache.PacketFlow, pathEnd1Cache.PacketFlow, &pathEnd2CacheMu, &pathEnd1CacheMu) + if err != nil { + return err + } + if s != nil { + if _, ok := skipped[pp.pathEnd2.info.ChainID]; !ok { + skipped[pp.pathEnd2.info.ChainID] = make(map[ChannelKey]skippedPackets) + } + skipped[pp.pathEnd2.info.ChainID][k] = *s + } + return nil + }) } if err := eg.Wait(); err != nil { - pp.log.Error("Failed to enqueue pending messages for flush", zap.Error(err)) + return fmt.Errorf("failed to enqueue pending messages for flush: %w", err) } pp.pathEnd1.mergeMessageCache(pathEnd1Cache, pp.pathEnd2.info.ChainID, pp.pathEnd2.inSync) pp.pathEnd2.mergeMessageCache(pathEnd2Cache, pp.pathEnd1.info.ChainID, pp.pathEnd1.inSync) + + if len(skipped) > 0 { + skippedPacketsString := "" + for chainID, chainSkipped := range skipped { + for channelKey, skipped := range chainSkipped { + skippedPacketsString += fmt.Sprintf( + "{ %s %s %s recv: %d, ack: %d } ", + chainID, channelKey.ChannelID, channelKey.PortID, skipped.Recv, skipped.Ack, + ) + } + } + return fmt.Errorf( + "flush was successful, but packets are still pending. %s", + skippedPacketsString, + ) + } + + return nil } // shouldTerminateForFlushComplete will determine if the relayer should exit @@ -1270,7 +1525,7 @@ func (pp *PathProcessor) shouldTerminateForFlushComplete() bool { return false } for k, packetMessagesCache := range pp.pathEnd1.messageCache.PacketFlow { - if open, ok := pp.pathEnd1.channelStateCache[k]; !ok || !open { + if cs, ok := pp.pathEnd1.channelStateCache[k]; !ok || !cs.Open { continue } for _, c := range packetMessagesCache { @@ -1294,7 +1549,7 @@ func (pp *PathProcessor) shouldTerminateForFlushComplete() bool { } } for k, packetMessagesCache := range pp.pathEnd2.messageCache.PacketFlow { - if open, ok := pp.pathEnd1.channelStateCache[k]; !ok || !open { + if cs, ok := pp.pathEnd1.channelStateCache[k]; !ok || !cs.Open { continue } for _, c := range packetMessagesCache { diff --git a/relayer/processor/types.go b/relayer/processor/types.go index 3f4059b7b..a5db23c9b 100644 --- a/relayer/processor/types.go +++ b/relayer/processor/types.go @@ -159,6 +159,12 @@ type ChannelKey struct { CounterpartyPortID string } +// ChannelState is used for caching channel open state and a lookup for the channel order. +type ChannelState struct { + Order chantypes.Order + Open bool +} + // Counterparty flips a ChannelKey for the perspective of the counterparty chain func (k ChannelKey) Counterparty() ChannelKey { return ChannelKey{ @@ -250,7 +256,23 @@ func (k ConnectionKey) MarshalLogObject(enc zapcore.ObjectEncoder) error { } // ChannelStateCache maintains channel open state for multiple channels. -type ChannelStateCache map[ChannelKey]bool +type ChannelStateCache map[ChannelKey]ChannelState + +// SetOpen sets the open state for a channel, and also the order if it is not NONE. +func (c ChannelStateCache) SetOpen(k ChannelKey, open bool, order chantypes.Order) { + if s, ok := c[k]; ok { + s.Open = open + if order != chantypes.NONE { + s.Order = order + } + c[k] = s + return + } + c[k] = ChannelState{ + Open: open, + Order: order, + } +} // FilterForClient returns a filtered copy of channels on top of an underlying clientID so it can be used by other goroutines. func (c ChannelStateCache) FilterForClient(clientID string, channelConnections map[string]string, connectionClients map[string]string) ChannelStateCache { @@ -322,6 +344,36 @@ func (c PacketMessagesCache) DeleteMessages(toDelete ...map[string][]uint64) { } } +// IsCached returns true if a sequence for a channel key and event type is already cached. +func (c ChannelPacketMessagesCache) IsCached(eventType string, k ChannelKey, sequence uint64) bool { + if _, ok := c[k]; !ok { + return false + } + if _, ok := c[k][eventType]; !ok { + return false + } + if _, ok := c[k][eventType][sequence]; !ok { + return false + } + return true +} + +// Cache stores packet info safely, generating intermediate maps along the way if necessary. +func (c ChannelPacketMessagesCache) Cache( + eventType string, + k ChannelKey, + sequence uint64, + packetInfo provider.PacketInfo, +) { + if _, ok := c[k]; !ok { + c[k] = make(PacketMessagesCache) + } + if _, ok := c[k][eventType]; !ok { + c[k][eventType] = make(PacketSequenceCache) + } + c[k][eventType][sequence] = packetInfo +} + // Merge merges another ChannelPacketMessagesCache into this one. func (c ChannelPacketMessagesCache) Merge(other ChannelPacketMessagesCache) { for channelKey, messageCache := range other { diff --git a/relayer/processor/types_internal.go b/relayer/processor/types_internal.go index d526ed70a..d135f123c 100644 --- a/relayer/processor/types_internal.go +++ b/relayer/processor/types_internal.go @@ -8,10 +8,16 @@ import ( conntypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" chantypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" "github.com/cosmos/relayer/v2/relayer/provider" "go.uber.org/zap/zapcore" ) +var _ zapcore.ObjectMarshaler = packetIBCMessage{} +var _ zapcore.ObjectMarshaler = channelIBCMessage{} +var _ zapcore.ObjectMarshaler = connectionIBCMessage{} +var _ zapcore.ObjectMarshaler = clientICQMessage{} + // pathEndMessages holds the different IBC messages that // will attempt to be sent to the pathEnd. type pathEndMessages struct { @@ -77,6 +83,9 @@ func (msg packetIBCMessage) assemble( default: return nil, fmt.Errorf("unexepected packet message eventType for message assembly: %s", msg.eventType) } + if src.clientState.ClientID == ibcexported.LocalhostClientID { + packetProof = src.localhostSentinelProofPacket + } ctx, cancel := context.WithTimeout(ctx, packetProofQueryTimeout) defer cancel() @@ -166,6 +175,10 @@ func (msg channelIBCMessage) assemble( default: return nil, fmt.Errorf("unexepected channel message eventType for message assembly: %s", msg.eventType) } + if src.clientState.ClientID == ibcexported.LocalhostClientID { + chanProof = src.localhostSentinelProofChannel + } + var proof provider.ChannelProof var err error if chanProof != nil { @@ -238,6 +251,7 @@ func (msg connectionIBCMessage) assemble( default: return nil, fmt.Errorf("unexepected connection message eventType for message assembly: %s", msg.eventType) } + var proof provider.ConnectionProof var err error if connProof != nil { @@ -246,6 +260,7 @@ func (msg connectionIBCMessage) assemble( return nil, fmt.Errorf("error querying connection proof: %w", err) } } + return assembleMessage(msg.info, proof) } diff --git a/relayer/provider/provider.go b/relayer/provider/provider.go index ec6239c8c..2bce8c2c4 100644 --- a/relayer/provider/provider.go +++ b/relayer/provider/provider.go @@ -216,6 +216,7 @@ type KeyProvider interface { CreateKeystore(path string) error KeystoreCreated(path string) bool AddKey(name string, coinType uint32, signingAlgorithm string) (output *KeyOutput, err error) + UseKey(key string) error RestoreKey(name, mnemonic string, coinType uint32, signingAlgorithm string) (address string, err error) ShowAddress(name string) (address string, err error) ListAddresses() (map[string]string, error) @@ -391,11 +392,10 @@ type ChainProvider interface { memo string, asyncCtx context.Context, - asyncCallback func(*RelayerTxResponse, error), + asyncCallbacks []func(*RelayerTxResponse, error), ) error - MsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayeeAddr string) (RelayerMessage,error) - + MsgRegisterCounterpartyPayee(portID, channelID, relayerAddr, counterpartyPayeeAddr string) (RelayerMessage, error) ChainName() string ChainId() string @@ -458,6 +458,7 @@ type QueryProvider interface { QueryUnreceivedPackets(ctx context.Context, height uint64, channelid, portid string, seqs []uint64) ([]uint64, error) QueryUnreceivedAcknowledgements(ctx context.Context, height uint64, channelid, portid string, seqs []uint64) ([]uint64, error) QueryNextSeqRecv(ctx context.Context, height int64, channelid, portid string) (recvRes *chantypes.QueryNextSequenceReceiveResponse, err error) + QueryNextSeqAck(ctx context.Context, height int64, channelid, portid string) (recvRes *chantypes.QueryNextSequenceReceiveResponse, err error) QueryPacketCommitment(ctx context.Context, height int64, channelid, portid string, seq uint64) (comRes *chantypes.QueryPacketCommitmentResponse, err error) QueryPacketAcknowledgement(ctx context.Context, height int64, channelid, portid string, seq uint64) (ackRes *chantypes.QueryPacketAcknowledgementResponse, err error) QueryPacketReceipt(ctx context.Context, height int64, channelid, portid string, seq uint64) (recRes *chantypes.QueryPacketReceiptResponse, err error) @@ -566,3 +567,8 @@ func (h TendermintIBCHeader) TMHeader() (*tendermint.Header, error) { TrustedValidators: trustedVals, }, nil } + +type ExtensionOption struct { + Type string `json:"type"` + Value string `json:"value"` +} diff --git a/relayer/query.go b/relayer/query.go index 24c40672a..fa59dba14 100644 --- a/relayer/query.go +++ b/relayer/query.go @@ -2,7 +2,9 @@ package relayer import ( "context" + "encoding/json" "fmt" + "strconv" "strings" "time" @@ -272,39 +274,80 @@ func QueryBalance(ctx context.Context, chain *Chain, address string, showDenoms return out, nil } -func QueryClientExpiration(ctx context.Context, src, dst *Chain) (time.Time, error) { +func QueryClientExpiration(ctx context.Context, src, dst *Chain) (time.Time, ClientStateInfo, error) { latestHeight, err := src.ChainProvider.QueryLatestHeight(ctx) if err != nil { - return time.Time{}, err + return time.Time{}, ClientStateInfo{}, err } clientStateRes, err := src.ChainProvider.QueryClientStateResponse(ctx, latestHeight, src.ClientID()) if err != nil { - return time.Time{}, err + return time.Time{}, ClientStateInfo{}, err } clientInfo, err := ClientInfoFromClientState(clientStateRes.ClientState) if err != nil { - return time.Time{}, err + return time.Time{}, ClientStateInfo{}, err } clientTime, err := dst.ChainProvider.BlockTime(ctx, int64(clientInfo.LatestHeight.GetRevisionHeight())) if err != nil { - return time.Time{}, err + return time.Time{}, ClientStateInfo{}, err } - return clientTime.Add(clientInfo.TrustingPeriod), nil + return clientTime.Add(clientInfo.TrustingPeriod), clientInfo, nil } -func SPrintClientExpiration(chain *Chain, expiration time.Time) string { +func SPrintClientExpiration(chain *Chain, expiration time.Time, clientInfo ClientStateInfo) string { now := time.Now() remainingTime := expiration.Sub(now) expirationFormatted := expiration.Format(time.RFC822) - if remainingTime < 0 { - return fmt.Sprintf("client %s (%s) is already expired (%s)\n", - chain.ClientID(), chain.ChainID(), expirationFormatted) + var status string + if remainingTime <= 0 { + status = "EXPIRED" + } else { + status = "GOOD" } - return fmt.Sprintf("client %s (%s) expires in %s (%s)\n", - chain.ClientID(), chain.ChainID(), remainingTime.Round(time.Second), expirationFormatted) + + legacyOutput := fmt.Sprintf(` + client: %s (%s) + HEALTH: %s + TIME: %s (%s) + LAST UPDATE HEIGHT: %d + TRUSTING PERIOD: %s + `, + chain.ClientID(), chain.ChainID(), status, expirationFormatted, remainingTime.Round(time.Second), clientInfo.LatestHeight.GetRevisionHeight(), clientInfo.TrustingPeriod.String()) + + return legacyOutput + +} + +// Returns clientExpiration data in JSON format. +func SPrintClientExpirationJson(chain *Chain, expiration time.Time, clientInfo ClientStateInfo) string { + now := time.Now() + remainingTime := expiration.Sub(now) + expirationFormatted := expiration.Format(time.RFC822) + + var status string + if remainingTime <= 0 { + status = "EXPIRED" + } else { + status = "GOOD" + } + + data := map[string]string{ + "client": fmt.Sprintf("%s (%s)", chain.ClientID(), chain.ChainID()), + "HEALTH": status, + "TIME": fmt.Sprintf("%s (%s)", expirationFormatted, remainingTime.Round(time.Second)), + "LAST UPDATE HEIGHT": strconv.FormatUint(clientInfo.LatestHeight.GetRevisionHeight(), 10), + "TRUSTING PERIOD": clientInfo.TrustingPeriod.String(), + } + + jsonOutput, err := json.Marshal(data) + if err != nil { + jsonOutput = []byte{} + } + + return string(jsonOutput) } diff --git a/relayer/query_test.go b/relayer/query_test.go index fb67c60d1..ea7e4b71d 100644 --- a/relayer/query_test.go +++ b/relayer/query_test.go @@ -1,74 +1,136 @@ package relayer import ( - "github.com/cosmos/relayer/v2/relayer/chains/cosmos" "testing" "time" + "github.com/cosmos/relayer/v2/relayer/chains/cosmos" + + clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" "github.com/stretchr/testify/require" ) func TestSPrintClientExpiration_PrintChainId(t *testing.T) { previousTime := time.Now().Add(10 * time.Hour) + mockHeight := clienttypes.NewHeight(1, 100) + trustingPeriod := time.Duration(1 * time.Hour) chain := mockChain("expected-chain-id", "test-client-id") - expiration := SPrintClientExpiration(chain, previousTime) + clientStateInfo := mockClientStateInfo("test-chain-id", trustingPeriod, mockHeight) + expiration := SPrintClientExpiration(chain, previousTime, *clientStateInfo) require.Contains(t, expiration, "expected-chain-id") } func TestSPrintClientExpiration_PrintClientId(t *testing.T) { previousTime := time.Now().Add(10 * time.Hour) + mockHeight := clienttypes.NewHeight(1, 100) + trustingPeriod := time.Duration(1 * time.Hour) chain := mockChain("test-chain-id", "expected-client-id") - expiration := SPrintClientExpiration(chain, previousTime) + clientStateInfo := mockClientStateInfo("test-chain-id", trustingPeriod, mockHeight) + expiration := SPrintClientExpiration(chain, previousTime, *clientStateInfo) + expirationJson := SPrintClientExpirationJson(chain, previousTime, *clientStateInfo) require.Contains(t, expiration, "expected-client-id") + require.Contains(t, expirationJson, "expected-client-id") } -func TestSPrintClientExpiration_PrintIsAlreadyExpired_WhenTimeIsInPast(t *testing.T) { +func TestSPrintClientExpiration_PrintExpired_WhenTimeIsInPast(t *testing.T) { previousTime := time.Now().Add(-10 * time.Hour) + mockHeight := clienttypes.NewHeight(1, 100) + trustingPeriod := time.Duration(1 * time.Hour) chain := mockChain("test-chain-id", "test-client-id") - expiration := SPrintClientExpiration(chain, previousTime) + clientStateInfo := mockClientStateInfo("test-chain-id", trustingPeriod, mockHeight) + expiration := SPrintClientExpiration(chain, previousTime, *clientStateInfo) + expirationJson := SPrintClientExpirationJson(chain, previousTime, *clientStateInfo) - require.Contains(t, expiration, "is already expired") + require.Contains(t, expiration, "EXPIRED") + require.Contains(t, expirationJson, "EXPIRED") } func TestSPrintClientExpiration_PrintRFC822FormattedTime_WhenTimeIsInPast(t *testing.T) { pastTime := time.Now().Add(-10 * time.Hour) + mockHeight := clienttypes.NewHeight(1, 100) + trustingPeriod := time.Duration(1 * time.Hour) - chain := mockChain("test-chain-id", "test-client-id") - expiration := SPrintClientExpiration(chain, pastTime) + chain := mockChain("expected-chain-id", "test-client-id") + clientStateInfo := mockClientStateInfo("test-chain-id", trustingPeriod, mockHeight) + expiration := SPrintClientExpiration(chain, pastTime, *clientStateInfo) + expirationJson := SPrintClientExpirationJson(chain, pastTime, *clientStateInfo) require.Contains(t, expiration, pastTime.Format(time.RFC822)) + require.Contains(t, expirationJson, pastTime.Format(time.RFC822)) } -func TestSPrintClientExpiration_PrintExpiresIn_WhenTimeIsInFuture(t *testing.T) { +func TestSPrintClientExpiration_PrintGood_WhenTimeIsInFuture(t *testing.T) { previousTime := time.Now().Add(10 * time.Hour) + mockHeight := clienttypes.NewHeight(1, 100) + trustingPeriod := time.Duration(1 * time.Hour) chain := mockChain("test-chain-id", "test-client-id") - expiration := SPrintClientExpiration(chain, previousTime) + clientStateInfo := mockClientStateInfo("test-chain-id", trustingPeriod, mockHeight) + expiration := SPrintClientExpiration(chain, previousTime, *clientStateInfo) + expirationJson := SPrintClientExpirationJson(chain, previousTime, *clientStateInfo) - require.Contains(t, expiration, "expires in") + require.Contains(t, expiration, "GOOD") + require.Contains(t, expirationJson, "GOOD") } func TestSPrintClientExpiration_PrintRFC822FormattedTime_WhenTimeIsInFuture(t *testing.T) { futureTime := time.Now().Add(10 * time.Hour) + mockHeight := clienttypes.NewHeight(1, 100) + trustingPeriod := time.Duration(1 * time.Hour) chain := mockChain("test-chain-id", "test-client-id") - expiration := SPrintClientExpiration(chain, futureTime) + clientStateInfo := mockClientStateInfo("test-chain-id", trustingPeriod, mockHeight) + expiration := SPrintClientExpiration(chain, futureTime, *clientStateInfo) + expirationJson := SPrintClientExpirationJson(chain, futureTime, *clientStateInfo) require.Contains(t, expiration, futureTime.Format(time.RFC822)) + require.Contains(t, expirationJson, futureTime.Format(time.RFC822)) } func TestSPrintClientExpiration_PrintRemainingTime_WhenTimeIsInFuture(t *testing.T) { futureTime := time.Now().Add(10 * time.Hour) + mockHeight := clienttypes.NewHeight(1, 100) + trustingPeriod := time.Duration(1 * time.Hour) chain := mockChain("test-chain-id", "test-client-id") - expiration := SPrintClientExpiration(chain, futureTime) + clientStateInfo := mockClientStateInfo("test-chain-id", trustingPeriod, mockHeight) + expiration := SPrintClientExpiration(chain, futureTime, *clientStateInfo) + expirationJson := SPrintClientExpirationJson(chain, futureTime, *clientStateInfo) require.Contains(t, expiration, "10h0m0s") + require.Contains(t, expirationJson, "10h0m0s") +} + +func TestSPrintClientExpiration_TrustingPeriod(t *testing.T) { + previousTime := time.Now().Add(10 * time.Hour) + mockHeight := clienttypes.NewHeight(1, 100) + trustingPeriod := time.Duration(1 * time.Hour) + + chain := mockChain("expected-chain-id", "test-client-id") + clientStateInfo := mockClientStateInfo("test-chain-id", trustingPeriod, mockHeight) + expiration := SPrintClientExpiration(chain, previousTime, *clientStateInfo) + expirationJson := SPrintClientExpirationJson(chain, previousTime, *clientStateInfo) + + require.Contains(t, expiration, "1h0m0s") + require.Contains(t, expirationJson, "1h0m0s") +} + +func TestSPrintClientExpiration_LastUpdateHeight(t *testing.T) { + previousTime := time.Now().Add(10 * time.Hour) + mockHeight := clienttypes.NewHeight(1, 100) + trustingPeriod := time.Duration(1 * time.Hour) + + chain := mockChain("expected-chain-id", "test-client-id") + clientStateInfo := mockClientStateInfo("test-chain-id", trustingPeriod, mockHeight) + expiration := SPrintClientExpiration(chain, previousTime, *clientStateInfo) + + require.Contains(t, expiration, "100") } func mockChain(chainId string, clientId string) *Chain { @@ -85,3 +147,12 @@ func mockChain(chainId string, clientId string) *Chain { }, } } + +func mockClientStateInfo(chainID string, trustingPeriod time.Duration, latestHeight ibcexported.Height) *ClientStateInfo { + mockHeight := clienttypes.NewHeight(1, 100) + return &ClientStateInfo{ + ChainID: chainID, + TrustingPeriod: time.Duration(1 * time.Hour), + LatestHeight: mockHeight, + } +} diff --git a/relayer/strategies.go b/relayer/strategies.go index 511f09905..fd2856aad 100644 --- a/relayer/strategies.go +++ b/relayer/strategies.go @@ -8,6 +8,8 @@ import ( "sync" "time" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/avast/retry-go/v4" "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" "github.com/cosmos/relayer/v2/relayer/chains/cosmos" @@ -27,6 +29,8 @@ const ( ProcessorLegacy = "legacy" DefaultClientUpdateThreshold = 0 * time.Millisecond DefaultFlushInterval = 5 * time.Minute + DefaultMaxMsgLength = 5 + TwoMB = 2 * 1024 * 1024 ) // StartRelayer starts the main relaying loop and returns a channel that will contain any control-flow related errors. @@ -35,7 +39,7 @@ func StartRelayer( log *zap.Logger, chains map[string]*Chain, paths []NamedPath, - maxTxSize, maxMsgLength uint64, + maxMsgLength uint64, memo string, clientUpdateThresholdTime time.Duration, flushInterval time.Duration, @@ -44,6 +48,8 @@ func StartRelayer( initialBlockHistory uint64, metrics *processor.PrometheusMetrics, ) chan error { + //prevent incorrect bech32 address prefixed addresses when calling AccAddress.String() + sdk.SetAddrCacheEnabled(false) errorChan := make(chan error, 1) switch processorType { @@ -80,7 +86,6 @@ func StartRelayer( chainProcessors, ePaths, initialBlockHistory, - maxTxSize, maxMsgLength, memo, messageLifecycle, @@ -98,7 +103,7 @@ func StartRelayer( src, dst := chains[p.Src.ChainID], chains[p.Dst.ChainID] src.PathEnd = p.Src dst.PathEnd = p.Dst - go relayerStartLegacy(ctx, log, src, dst, p.Filter, maxTxSize, maxMsgLength, memo, errorChan) + go relayerStartLegacy(ctx, log, src, dst, p.Filter, TwoMB, maxMsgLength, memo, errorChan) return errorChan default: panic(fmt.Errorf("unexpected processor type: %s, supports one of: [%s, %s]", processorType, ProcessorEvents, ProcessorLegacy)) @@ -132,7 +137,6 @@ func relayerStartEventProcessor( chainProcessors []processor.ChainProcessor, paths []path, initialBlockHistory uint64, - maxTxSize, maxMsgLength uint64, memo string, messageLifecycle processor.MessageLifecycle, @@ -155,6 +159,7 @@ func relayerStartEventProcessor( memo, clientUpdateThresholdTime, flushInterval, + maxMsgLength, )) } diff --git a/scripts/protocgen.sh b/scripts/protocgen.sh index 725d881a7..ae4f20240 100755 --- a/scripts/protocgen.sh +++ b/scripts/protocgen.sh @@ -24,4 +24,5 @@ buf generate --template proto/buf.gen.penumbra.yaml buf.build/penumbra-zone/penu rm -r github.com/cosmos/relayer/v2/relayer/chains/penumbra/client rm -r github.com/cosmos/relayer/v2/relayer/chains/penumbra/narsil cp -r github.com/cosmos/relayer/v2/* ./ +cp -r github.com/cosmos/relayer/relayer/* relayer/ rm -rf github.com