diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..c416bbfea --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,2 @@ +# The next team will be requested to review when someone opens a pull request. +* @CoreumFoundation/team-backend diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index d8786d6f4..000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,40 +0,0 @@ -## Description - -Closes: #XXXX - - - ---- - -### Author Checklist - -*All items are required. Please add a note to the item if the item is not applicable and -please add links to any relevant follow up issues.* - -I have... - -- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title -- [ ] added `!` to the type prefix if API or client breaking change -- [ ] targeted the correct branch -- [ ] provided a link to the relevant issue or specification -- [ ] added a changelog entry to `CHANGELOG.md` -- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc) -- [ ] updated the relevant documentation or specification -- [ ] reviewed "Files changed" and left comments if necessary -- [ ] confirmed all CI checks have passed - -### Reviewers Checklist - -*All items are required. Please add a note if the item is not applicable and please add -your handle next to the items reviewed if you only reviewed selected items.* - -I have... - -- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title -- [ ] confirmed `!` in the type prefix if API or client breaking change -- [ ] confirmed all author checklist items have been addressed -- [ ] reviewed API design and naming -- [ ] reviewed documentation is accurate -- [ ] reviewed tests and test coverage -- [ ] manually tested (if applicable) \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..81d03a4a1 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,23 @@ +name: ci + +on: + push: + branches: + - chains/coreum-v0.50.x + pull_request: + branches: + - chains/coreum-v0.50.x + +jobs: + ci: + name: CI + runs-on: ubuntu-latest + steps: + - name: Go version used to build builder + run: go version + - name: Checkout callisto + uses: actions/checkout@v4 + with: + persist-credentials: false + - name: Run test + run: make test diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml deleted file mode 100644 index fa1c33859..000000000 --- a/.github/workflows/docker-build.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: docker-build - -on: - push: - branches: - - cosmos/*/* - - chains/*/* - -jobs: - docker: - runs-on: ubuntu-latest - steps: - - name: Checkout ๐Ÿ›Ž๏ธ - uses: actions/checkout@v4 - - - name: Set Callisto chain name ๐Ÿ”ง - shell: bash - run: echo "CHAIN_NAME=$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//_/g')" >> $GITHUB_ENV - - - name: Set Callisto version ๐Ÿ”ง - shell: bash - run: echo "GITHUB_VERSION=$(git describe --tags)" >> $GITHUB_ENV - - - name: Prepare tags ๐Ÿท๏ธ - id: prep - run: | - DOCKER_IMAGE=${{ secrets.DOCKERHUB_BDJUNO_REPO }} - CHAIN_NAME="${{env.CHAIN_NAME}}" - VERSION="${{env.GITHUB_VERSION}}" - TAGS="${DOCKER_IMAGE}:${CHAIN_NAME}-${VERSION}" - echo ::set-output name=version::${VERSION} - echo ::set-output name=tags::${TAGS} - echo ::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ') - - - name: Determine Dockerfile to use ๐Ÿ” - run: | - if [[ -f Dockerfile.cosmwasm ]]; then - export DOCKERFILE=Dockerfile.cosmwasm - else - export DOCKERFILE=Dockerfile.default - fi - echo "DOCKERFILE=${DOCKERFILE}" >> $GITHUB_ENV - - - name: Set up Docker Buildx ๐Ÿงฐ - uses: docker/setup-buildx-action@v3 - - - name: Login to DockerHub ๐Ÿ‘ค - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and push ๐Ÿ“ค - uses: docker/build-push-action@v5 - with: - context: . - file: "./${{ env.DOCKERFILE }}" - push: true - tags: ${{ steps.prep.outputs.tags }} diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 000000000..0d3441215 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,26 @@ +name: Build and Push to DockerHub + +on: + push: + branches: + - chains/coreum-v0.50.x + +jobs: + build-publish-docker: + name: Build and Push to DockerHub + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and publish images + run: make release-images \ No newline at end of file diff --git a/.github/workflows/lint-pr.yml b/.github/workflows/lint-pr.yml deleted file mode 100644 index e5dba3136..000000000 --- a/.github/workflows/lint-pr.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: "Lint PR" - -on: - pull_request_target: - types: - - opened - - edited - - synchronize - -jobs: - main: - runs-on: ubuntu-latest - steps: - - uses: amannn/action-semantic-pull-request@v5.4.0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index fba316c05..000000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Lint -# Lint runs golangci-lint over the entire Desmos repository. -# This workflow is run on every pull request and push to master. -# The `golangci` will pass without running if no *.{go, mod, sum} files have been changed. -on: - pull_request: - push: - branches: - - chains/* - - cosmos/* - -jobs: - GolangCI: - name: golangci-lint - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - name: Checkout ๐Ÿ›Ž๏ธ - uses: actions/checkout@v4 - - - name: Setup Go ๐Ÿงฐ - uses: actions/setup-go@v5 - with: - go-version: "1.20" - - - name: Compute diff ๐Ÿ“œ - uses: technote-space/get-diff-action@v6.1.2 - with: - SUFFIX_FILTER: | - .go - .mod - .sum - - - name: Run lint โœ… - if: "env.GIT_DIFF != ''" - run: make lint diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 2bced486f..000000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Tests -# Tests / Code Coverage workflow runs unit tests and uploads a code coverage report. -# This workflow is run on pushes to master & every Pull Requests where a .go, .mod, .sum have been changed. -on: - pull_request: - push: - branches: - - chains/* - - cosmos/* - -jobs: - Cleanup-runs: - runs-on: ubuntu-latest - steps: - - uses: rokroskar/workflow-run-cleanup-action@master - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - if: "!startsWith(github.ref, 'refs/tags/') && !startsWith(github.ref, 'refs/tags/cosmos')" - - Unit-tests: - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - name: Checkout ๐Ÿ›Ž๏ธ - uses: actions/checkout@v4 - - - name: Setup Go ๐Ÿงฐ - uses: actions/setup-go@v5 - with: - go-version: "1.20" - - - name: Compute diff ๐Ÿ“œ - uses: technote-space/get-diff-action@v6.1.2 - id: git_diff - with: - SUFFIX_FILTER: | - .go - .mod - .sum - - - name: Build ๐Ÿ”จ - if: "env.GIT_DIFF != ''" - run: make build - - - name: Test & Coverage report creation ๐Ÿงช - run: make test-unit stop-docker-test - - - name: Upload coverage ๐Ÿ“ค - if: "env.GIT_DIFF != ''" - uses: codecov/codecov-action@v4.0.1 - with: - file: ./coverage.txt diff --git a/.gitignore b/.gitignore index 4123aebe2..9d6de9394 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,12 @@ .idea/ -build/ vendor/ +/bin # Configuration *.toml *.json config.yaml +.callisto # Coverage coverage.* diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fc98af55..8bf36f3e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## Unreleased - ([\#610](https://github.com/forbole/bdjuno/pull/610)) Add support for gov `v1` proposals -- ([\#652](https://github.com/forbole/bdjuno/pull/652)) Update gov module parsing +- ([\#652](https://github.com/forbole/bdjuno/pull/652)) Update gov module parsing - ([\#702](https://github.com/forbole/bdjuno/pull/702)) Add `message_type` module and store msg types inside `message_type` table, add `messages_by_type` function to allow to query messages by their types - ([\#704](https://github.com/forbole/bdjuno/pull/704)) Update `BDJuno` name to `Callisto` @@ -28,7 +28,7 @@ This version is thought to be used with Cosmos SDK `v0.47.x`. - ([\#499](https://github.com/forbole/bdjuno/pull/499)) Check if proposal has passed voting end time before marking it invalid - ([\#523](https://github.com/forbole/bdjuno/pull/523)) Update proposal snapshots handling on block - ([\#681](https://github.com/forbole/bdjuno/pull/681)) Handle proposal status change from deposit to voting -- +- #### Daily refetch - ([\#454](https://github.com/forbole/bdjuno/pull/454)) Added `daily refetch` module to refetch missing blocks every day @@ -47,7 +47,7 @@ This version is thought to be used with Cosmos SDK `v0.47.x`. #### Gov module - ([\#401](https://github.com/forbole/bdjuno/pull/401)) Update the proposal status to the latest in `bdjuno parse gov proposal [id]` command -- ([\#430](https://github.com/forbole/bdjuno/pull/430)) Update the proposals that have invalid status but can still be in voting or deposit periods +- ([\#430](https://github.com/forbole/bdjuno/pull/430)) Update the proposals that have invalid status but can still be in voting or deposit periods ### Dependencies - ([\#440](https://github.com/forbole/bdjuno/pull/440)) Updated Juno to `v3.3.0` @@ -56,7 +56,7 @@ This version is thought to be used with Cosmos SDK `v0.47.x`. ### Dependencies - Updated Juno to `v3.2.0` -### Changes +### Changes #### Hasura - ([\#395](https://github.com/forbole/bdjuno/pull/395)) Remove time label from Hasura Prometheus monitoring @@ -71,7 +71,7 @@ This version is thought to be used with Cosmos SDK `v0.47.x`. ### Notes This version introduces breaking changes to `transaction` and `message` PostgreSQL tables. It implements PostgreSQL table partitioning to fix slow data retrieval from database that stores large amount of transactions and messages. Read more details about [migrating to v3.0.0](https://docs.bigdipper.live/cosmos-based/parser/migrations/v2.0.0) -### New features +### New features #### CLI - ([\#356](https://github.com/forbole/bdjuno/pull/356)) Implemented `migrate` command to perform easy migration to higher BDJuno versions - ([\#356](https://github.com/forbole/bdjuno/pull/356)) Updated `parse-genesis` command to parse genesis file without accessing the node @@ -80,10 +80,10 @@ This version introduces breaking changes to `transaction` and `message` PostgreS - ([\#356](https://github.com/forbole/bdjuno/pull/356)) Added PostgreSQL table partition to `transaction` and `message` table - ([\#356](https://github.com/forbole/bdjuno/pull/356)) Created new `messages_by_address` function -### Changes +### Changes #### Hasura - ([\#377](https://github.com/forbole/bdjuno/pull/377)) Updated Hasura metadata -- ([\#381](https://github.com/forbole/bdjuno/pull/381)) Hasura actions are now a module +- ([\#381](https://github.com/forbole/bdjuno/pull/381)) Hasura actions are now a module ### Dependencies - ([\#356](https://github.com/forbole/bdjuno/pull/356)) Updated Juno to `v3.0.0` @@ -96,41 +96,41 @@ This version introduces breaking changes to certain address-specific data that i #### CLI - ([\#257](https://github.com/forbole/bdjuno/pull/257)) Added `parse-genesis` command to parse the genesis file - ([\#228](https://github.com/forbole/bdjuno/pull/228)) ([\#248](https://github.com/forbole/bdjuno/pull/248)) Added `fix` command: - - `auth`: fix vesting accounts details - - `blocks`: fix missing blocks and transactions from given start height - - `gov`: fix proposal with given proposal ID - - `staking`: fix validators info at the latest height + - `auth`: fix vesting accounts details + - `blocks`: fix missing blocks and transactions from given start height + - `gov`: fix proposal with given proposal ID + - `staking`: fix validators info at the latest height #### Hasura Actions - ([\#329](https://github.com/forbole/bdjuno/pull/329)) Implemented Hasura Actions service to replace periodic queries. If you are using GraphQL queries on your application, you should updated the old queries to use the below new actions instead. Here's a list of data acquired through Hasura Actions: - Of a certain address/delegator: - - Account balance (`action_account_balance`) - - Delegation rewards (`action_delegation_reward`) - - Delegator withdraw address (`action_delegator_withdraw_address`) - - Delegations (`action_delegation`) - - Total delegations amount (`action_delegation_total`) - - Unbonding delegations (`action_unbonding_delegation`) - - Total unbonding delegations amount (`action_unbonding_delegation_total`) - - Redelegations (`action_redelegation`) + - Account balance (`action_account_balance`) + - Delegation rewards (`action_delegation_reward`) + - Delegator withdraw address (`action_delegator_withdraw_address`) + - Delegations (`action_delegation`) + - Total delegations amount (`action_delegation_total`) + - Unbonding delegations (`action_unbonding_delegation`) + - Total unbonding delegations amount (`action_unbonding_delegation_total`) + - Redelegations (`action_redelegation`) - Of a certain validator: - - Commission amount (`action_validator_commission_amount`) - - Delegations to this validator (`action_validator_delegations`) - - Redelegations from this validator (`action_validator_redelegations_from`) - - Unbonding delegations (`action_validator_unbonding_delegations`) + - Commission amount (`action_validator_commission_amount`) + - Delegations to this validator (`action_validator_delegations`) + - Redelegations from this validator (`action_validator_redelegations_from`) + - Unbonding delegations (`action_validator_unbonding_delegations`) - ([\#352](https://github.com/forbole/bdjuno/pull/352)) Added prometheus monitoring to hasura actions #### Local node support - Added the support for `node.type = "local"` for parsing a static local node without the usage gRPC queries: [config reference](https://docs.bigdipper.live/cosmos-based/parser/config/config#node). #### Modules -- ([\#232](https://github.com/forbole/bdjuno/pull/232)) Updated the `x/auth` module support to handle and store `vesting accounts` and `vesting periods` inside the database. +- ([\#232](https://github.com/forbole/bdjuno/pull/232)) Updated the `x/auth` module support to handle and store `vesting accounts` and `vesting periods` inside the database. - ([\#276](https://github.com/forbole/bdjuno/pull/276)) Added the support for the `x/feegrant` module (v0.44.x) -### Changes +### Changes #### CLI -- ([\#351](https://github.com/forbole/bdjuno/pull/351)) Fixed version display for `bdjuno version` cmd +- ([\#351](https://github.com/forbole/bdjuno/pull/351)) Fixed version display for `bdjuno version` cmd #### Database - ([\#300](https://github.com/forbole/bdjuno/pull/300)) Changed `bonded_tokens` and `not_bonded_tokens` type inside `staking_pool` table to `TEXT` to avoid value overflow diff --git a/Dockerfile.cosmwasm b/Dockerfile.cosmwasm deleted file mode 100644 index 841c6dafc..000000000 --- a/Dockerfile.cosmwasm +++ /dev/null @@ -1,22 +0,0 @@ - - -FROM golang:1.20-alpine AS builder -RUN apk update && apk add --no-cache make git -WORKDIR /go/src/github.com/forbole/callisto -COPY . ./ - -RUN apk update && apk add --no-cache ca-certificates build-base git -ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.1.1/libwasmvm_muslc.aarch64.a /lib/libwasmvm_muslc.aarch64.a -ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.1.1/libwasmvm_muslc.x86_64.a /lib/libwasmvm_muslc.x86_64.a -RUN sha256sum /lib/libwasmvm_muslc.aarch64.a | grep 9ecb037336bd56076573dc18c26631a9d2099a7f2b40dc04b6cae31ffb4c8f9a -RUN sha256sum /lib/libwasmvm_muslc.x86_64.a | grep 6e4de7ba9bad4ae9679c7f9ecf7e283dd0160e71567c6a7be6ae47c81ebe7f32 -## Copy the library you want to the final location that will be found by the linker flag `-lwasmvm_muslc` -RUN cp /lib/libwasmvm_muslc.$(uname -m).a /lib/libwasmvm_muslc.a -RUN go mod download -RUN LINK_STATICALLY=true BUILD_TAGS="muslc" make build - -FROM alpine:latest -RUN apk update && apk add --no-cache ca-certificates build-base -WORKDIR /callisto -COPY --from=builder /go/src/github.com/forbole/callisto/build/callisto /usr/bin/callisto -CMD [ "callisto" ] \ No newline at end of file diff --git a/Dockerfile.default b/Dockerfile.default deleted file mode 100644 index 935226c2e..000000000 --- a/Dockerfile.default +++ /dev/null @@ -1,11 +0,0 @@ -FROM golang:1.20-alpine AS builder -RUN apk update && apk add --no-cache make git -WORKDIR /go/src/github.com/forbole/callisto -COPY . ./ -RUN go mod download -RUN make build - -FROM alpine:latest -WORKDIR /callisto -COPY --from=builder /go/src/github.com/forbole/callisto/build/callisto /usr/bin/callisto -CMD [ "callisto" ] \ No newline at end of file diff --git a/Makefile b/Makefile index b1ba105a2..e005932cf 100644 --- a/Makefile +++ b/Makefile @@ -1,94 +1,36 @@ -VERSION := $(shell echo $(shell git describe --tags) | sed 's/^v//') -COMMIT := $(shell git log -1 --format='%H') +BUILDER = ./bin/callisto-builder -export GO111MODULE = on +.PHONY: znet-start +znet-start: + $(BUILDER) znet start --profiles=monitoring -############################################################################### -### All ### -############################################################################### +.PHONY: znet-remove +znet-remove: + $(BUILDER) znet remove -all: lint build test-unit +.PHONY: test +test: + docker run --name callisto-test-db -e POSTGRES_USER=callisto -e POSTGRES_PASSWORD=password -e POSTGRES_DB=callisto -d -p 6433:5432 postgres + $(BUILDER) test + docker stop callisto-test-db + docker rm callisto-test-db -############################################################################### -### Build flags ### -############################################################################### - -LD_FLAGS = -X github.com/forbole/juno/v5/cmd.Version=$(VERSION) \ - -X github.com/forbole/juno/v5/cmd.Commit=$(COMMIT) -BUILD_FLAGS := -ldflags '$(LD_FLAGS)' - -ifeq ($(LINK_STATICALLY),true) - LD_FLAGS += -linkmode=external -extldflags "-Wl,-z,muldefs -static" -endif - -build_tags += $(BUILD_TAGS) -build_tags := $(strip $(build_tags)) - -BUILD_FLAGS := -ldflags '$(LD_FLAGS)' -tags "$(build_tags)" - -############################################################################### -### Build ### -############################################################################### - -build: go.sum -ifeq ($(OS),Windows_NT) - @echo "building callisto binary..." - @go build -mod=readonly $(BUILD_FLAGS) -o build/callisto.exe ./cmd/callisto -else - @echo "building callisto binary..." - @go build -mod=readonly $(BUILD_FLAGS) -o build/callisto ./cmd/callisto -endif .PHONY: build +build: + $(BUILDER) build -############################################################################### -### Install ### -############################################################################### - -install: go.sum - @echo "installing callisto binary..." - @go install -mod=readonly $(BUILD_FLAGS) ./cmd/callisto -.PHONY: install - -############################################################################### -### Tests & Simulation ### -############################################################################### - -stop-docker-test: - @echo "Stopping Docker container..." - @docker stop callisto-test-db || true && docker rm callisto-test-db || true -.PHONY: stop-docker-test - -start-docker-test: stop-docker-test - @echo "Starting Docker container..." - @docker run --name callisto-test-db -e POSTGRES_USER=callisto -e POSTGRES_PASSWORD=password -e POSTGRES_DB=callisto -d -p 6433:5432 postgres -.PHONY: start-docker-test - -test-unit: start-docker-test - @echo "Executing unit tests..." - @go test -mod=readonly -v -coverprofile coverage.txt ./... -.PHONY: test-unit - -############################################################################### -### Linting ### -############################################################################### -golangci_lint_cmd=github.com/golangci/golangci-lint/cmd/golangci-lint - -lint: - @echo "--> Running linter" - @go run $(golangci_lint_cmd) run --timeout=10m - -lint-fix: - @echo "--> Running linter" - @go run $(golangci_lint_cmd) run --fix --out-format=tab --issues-exit-code=0 +.PHONY: build/arm64 +build/arm64: + $(BUILDER) build/arm64 -.PHONY: lint lint-fix +.PHONY: build/amd64 +build/amd64: + $(BUILDER) build/amd64 -format: - find . -name '*.go' -type f -not -path "*.git*" -not -name '*.pb.go' -not -name '*_mocks.go' | xargs gofmt -w -s - find . -name '*.go' -type f -not -path "*.git*" -not -name '*.pb.go' -not -name '*_mocks.go' | xargs misspell -w - find . -name '*.go' -type f -not -path "*.git*" -not -name '*.pb.go' -not -name '*_mocks.go' | xargs goimports -w -local github.com/forbole/callisto -.PHONY: format +.PHONY: images +images: + $(BUILDER) images -clean: - rm -f tools-stamp ./build/** -.PHONY: clean +.PHONY: release-images +release-images: + $(BUILDER) release/images \ No newline at end of file diff --git a/README.md b/README.md index d3422a17f..ca14c3bb3 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,13 @@ # Callisto -[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/forbole/bdjuno/Tests)](https://github.com/forbole/bdjuno/actions?query=workflow%3ATests) -[![Go Report Card](https://goreportcard.com/badge/github.com/forbole/bdjuno)](https://goreportcard.com/report/github.com/forbole/bdjuno) -![Codecov branch](https://img.shields.io/codecov/c/github/forbole/bdjuno/cosmos/v0.40.x) -Callisto (formerly BDJuno) is the [Juno](https://github.com/forbole/juno) implementation -for [Big Dipper](https://github.com/forbole/big-dipper). +[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/forbole/callisto/Tests)](https://github.com/forbole/callisto/actions?query=workflow%3ATests) +[![Go Report Card](https://goreportcard.com/badge/github.com/forbole/callisto)](https://goreportcard.com/report/github.com/forbole/callisto) +![Codecov branch](https://img.shields.io/codecov/c/github/forbole/callisto/cosmos/v0.40.x) -It extends the custom Juno behavior by adding different handlers and custom operations to make it easier for Big Dipper +Callisto (shorthand for BigDipper Juno) is the [Juno](https://github.com/forbole/juno) implementation +for [BigDipper](https://github.com/forbole/big-dipper). + +It extends the custom Juno behavior by adding different handlers and custom operations to make it easier for BigDipper showing the data inside the UI. All the chains' data that are queried from the RPC and gRPC endpoints are stored inside @@ -14,20 +15,78 @@ a [PostgreSQL](https://www.postgresql.org/) database on top of which [GraphQL](h created using [Hasura](https://hasura.io/). ## Usage + To know how to setup and run Callisto, please refer to the [docs website](https://docs.bigdipper.live/cosmos-based/parser/overview/). ## Testing + If you want to test the code, you can do so by running ```shell -$ make test-unit +$ make test ``` **Note**: Requires [Docker](https://docker.com). This will: + 1. Create a Docker container running a PostgreSQL database. 2. Run all the tests using that database as support. +## Local launch in docker compose + +1. Create `.callisto` directory in the root of the repo and put there next two files: + 1. `config.yaml` which you can copy from `config-sample.yaml`. Do next change there: + 1. Replace `YOUR_CHAIN_ACC_PREFIX` with your account prefix(`coredev` is an example for devnet, you can use it + too). This will let you have separate accounts with the same private keys for different chains. + 2. Replace `YOUR_NODE_IP` with `cored` address. + 2. `genesis.json` which you can find at cored `/genesis` endpoint(`http://127.0.0.1:26557/genesis?` for example). + Take nested object: + ```json + { + "genesis": {this object} + } + ``` + +2. Build and start + +```bash +make images +docker-compose up +``` + +* Open [hasura UI](http://localhost:8080/console) and check that it works correctly. + The password is defined in docker-compose.yaml and set to "myadminsecretkey" by default. + +### Remarks + +In case you run the callisto with the connection to old-running node you might face the error in the logs + +``` +error while getting staking pool: rpc error: code = Internal desc = UnmarshalJSON cannot decode empty bytes +``` + +This is expected since the node doesn't store all staking pool for all heights. + +## Custom params integration + +In case you want to integrate the indexing if the custom types, for example parameters, +that [PR](https://github.com/CoreumFoundation/callisto/pull/4) +can be taken as a reference implementation. + +## Hasura API + +### GraphQL Schema + +The GraphQL schema is located [here](./hasura/api/schema.graphql). It describes all supported queries. + +In order to export it you can run the hasura locally and execute script + +``` +npm install -g graphqurl # install the gq +gq http://localhost:8080/v1/graphql -H "X-Hasura-Admin-Secret: myadminsecretkey" --introspect > schema.graphql # export schema +``` +Pay attention that `myadminsecretkey` is the secret set for this repo local environment, and can be different for +others. diff --git a/VERSION b/VERSION new file mode 100644 index 000000000..7fb8c0065 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.44.1 \ No newline at end of file diff --git a/bin/callisto-builder b/bin/callisto-builder new file mode 100755 index 000000000..ddfb1d686 --- /dev/null +++ b/bin/callisto-builder @@ -0,0 +1,41 @@ +#!/bin/bash + +set -e + +# go to root dir of repository +pushd "$(dirname "${BASH_SOURCE[0]}")/.." > /dev/null + +VERSION=$(git rev-parse --short HEAD) +REPO=$(pwd) +BUILD_BIN="$REPO/bin/.cache/build-$VERSION" + +if [ ! -f "$BUILD_BIN" ]; then + rm -f ./bin/.cache/build-* + + pushd build > /dev/null + go build -trimpath -o "$BUILD_BIN" ./cmd/builder + popd > /dev/null + + "$BUILD_BIN" build/me +fi + +case "$1" in + + "znet") + MODULE="github.com/CoreumFoundation/crust" + VERSION_TMPL='{{ if or (.Replace) (eq .Version "") }}devel{{ else }}{{ .Version }}{{ end }}' + ZNET_VERSION=`go list -m -f "$VERSION_TMPL" "$MODULE"` + ZNET_BIN="$REPO/bin/.cache/znet-${ZNET_VERSION}" + + if [ ! -f "$ZNET_BIN" ]; then + "$BUILD_BIN" build/znet + fi + + shift 1 + exec "$ZNET_BIN" "$@" + ;; + + *) + exec "$BUILD_BIN" "$@" + ;; +esac diff --git a/build/callisto/build.go b/build/callisto/build.go new file mode 100644 index 000000000..1bfd78663 --- /dev/null +++ b/build/callisto/build.go @@ -0,0 +1,37 @@ +package callisto + +import ( + "context" + "path/filepath" + + "github.com/CoreumFoundation/crust/build/golang" + "github.com/CoreumFoundation/crust/build/tools" + "github.com/CoreumFoundation/crust/build/types" +) + +const ( + repoPath = "." + binaryName = "callisto" +) + +// Build builds callisto in docker. +func Build(ctx context.Context, deps types.DepsFunc) error { + return buildCallisto(ctx, deps, tools.TargetPlatformLinuxLocalArchInDocker) +} + +func BuildAMD64(ctx context.Context, deps types.DepsFunc) error { + return buildCallisto(ctx, deps, tools.TargetPlatformLinuxAMD64InDocker) +} + +func BuildARM64(ctx context.Context, deps types.DepsFunc) error { + return buildCallisto(ctx, deps, tools.TargetPlatformLinuxARM64InDocker) +} + +func buildCallisto(ctx context.Context, deps types.DepsFunc, targetPlatform tools.TargetPlatform) error { + return golang.Build(ctx, deps, golang.BinaryBuildConfig{ + TargetPlatform: targetPlatform, + PackagePath: filepath.Join(repoPath, "cmd", "callisto"), + BinOutputPath: filepath.Join("bin", ".cache", binaryName, targetPlatform.String(), "bin", binaryName), + CGOEnabled: false, + }) +} diff --git a/build/callisto/image/Dockerfile.tmpl b/build/callisto/image/Dockerfile.tmpl new file mode 100644 index 000000000..ce479873f --- /dev/null +++ b/build/callisto/image/Dockerfile.tmpl @@ -0,0 +1,13 @@ +FROM {{ .From }} + +# This is needed because we use psql to load schema. +RUN apk update && apk add postgresql + +ARG TARGETARCH +WORKDIR /callisto +COPY {{ .BinaryPath }} /usr/bin/{{ .BinaryName }} +COPY {{ .DBSchemaPath }} /var/lib/postgresql/schema +RUN chmod a+rx /var/lib/postgresql && \ + chmod a+rx /var/lib/postgresql/schema + +CMD [ "{{ .BinaryName }}", "start" ] \ No newline at end of file diff --git a/build/callisto/image/template.go b/build/callisto/image/template.go new file mode 100644 index 000000000..fdb2916ce --- /dev/null +++ b/build/callisto/image/template.go @@ -0,0 +1,37 @@ +package image + +import ( + "bytes" + _ "embed" + "text/template" +) + +var ( + //go:embed Dockerfile.tmpl + tmpl string + dockerfile = template.Must(template.New("dockerfile").Parse(tmpl)) +) + +// Data is the structure containing fields required by the template. +type Data struct { + // From is the tag of the base image + From string + + // Binary is the path to the binary file + BinaryPath string + + // Binary is the name of faucet binary file to copy from build context + BinaryName string + + // DBSchemaPath is the path to the database schema + DBSchemaPath string +} + +// Execute executes dockerfile template and returns complete dockerfile. +func Execute(data Data) ([]byte, error) { + buf := &bytes.Buffer{} + if err := dockerfile.Execute(buf, data); err != nil { + return nil, err + } + return buf.Bytes(), nil +} diff --git a/build/callisto/images.go b/build/callisto/images.go new file mode 100644 index 000000000..596cfa87f --- /dev/null +++ b/build/callisto/images.go @@ -0,0 +1,54 @@ +package callisto + +import ( + "context" + "path/filepath" + + "github.com/CoreumFoundation/callisto/build/callisto/image" + "github.com/CoreumFoundation/crust/build/config" + "github.com/CoreumFoundation/crust/build/docker" + "github.com/CoreumFoundation/crust/build/tools" + "github.com/CoreumFoundation/crust/build/types" +) + +// BuildDockerImage builds docker image. +func BuildDockerImage(ctx context.Context, deps types.DepsFunc) error { + return buildDockerImage(ctx, deps, false) +} + +// ReleaseDockerImage releases docker image. +func ReleaseDockerImage(ctx context.Context, deps types.DepsFunc) error { + return buildDockerImage(ctx, deps, true) +} + +func buildDockerImage(ctx context.Context, deps types.DepsFunc, push bool) error { + deps(Build) + + dockerfile, err := image.Execute(image.Data{ + From: docker.AlpineImage, + BinaryPath: filepath.Join("bin", ".cache", binaryName, tools.TargetPlatformLinuxLocalArchInDocker.String(), "bin", binaryName), + BinaryName: binaryName, + DBSchemaPath: filepath.Join("database", "schema"), + }) + if err != nil { + return err + } + + var action docker.Action + if push { + action = docker.ActionPush + } else { + action = docker.ActionLoad + } + + return docker.BuildImage(ctx, docker.BuildImageConfig{ + ContextDir: ".", + ImageName: config.DockerHubUsername + "/" + binaryName, + TargetPlatforms: []tools.TargetPlatform{tools.TargetPlatformLinuxLocalArchInDocker}, + Dockerfile: dockerfile, + Action: action, + Versions: []string{ + "latest", + }, + }) +} diff --git a/build/cmd/builder/main.go b/build/cmd/builder/main.go new file mode 100644 index 000000000..e20e61a3d --- /dev/null +++ b/build/cmd/builder/main.go @@ -0,0 +1,10 @@ +package main + +import ( + selfBuild "github.com/CoreumFoundation/callisto/build" + "github.com/CoreumFoundation/crust/build" +) + +func main() { + build.Main(selfBuild.Commands) +} diff --git a/build/cmd/znet/main.go b/build/cmd/znet/main.go new file mode 100644 index 000000000..e6a5048b5 --- /dev/null +++ b/build/cmd/znet/main.go @@ -0,0 +1,9 @@ +package main + +import ( + "github.com/CoreumFoundation/crust/znet/pkg/znet" +) + +func main() { + znet.Main() +} diff --git a/build/go.mod b/build/go.mod new file mode 100644 index 000000000..4d173b32d --- /dev/null +++ b/build/go.mod @@ -0,0 +1,244 @@ +module github.com/CoreumFoundation/callisto/build + +go 1.23.3 + +// Crust replacements +replace github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 + +require github.com/CoreumFoundation/crust v0.0.0-20250404130536-23de310e6eb8 + +require github.com/CoreumFoundation/crust/znet v0.0.0-20250404130536-23de310e6eb8 + +require ( + cel.dev/expr v0.19.0 // indirect + cloud.google.com/go v0.116.0 // indirect + cloud.google.com/go/auth v0.13.0 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.6 // indirect + cloud.google.com/go/compute/metadata v0.6.0 // indirect + cloud.google.com/go/iam v1.2.2 // indirect + cloud.google.com/go/monitoring v1.21.2 // indirect + cloud.google.com/go/storage v1.49.0 // indirect + cosmossdk.io/api v0.7.6 // indirect + cosmossdk.io/collections v0.4.0 // indirect + cosmossdk.io/core v0.11.1 // indirect + cosmossdk.io/depinject v1.1.0 // indirect + cosmossdk.io/errors v1.0.1 // indirect + cosmossdk.io/log v1.5.0 // indirect + cosmossdk.io/math v1.5.0 // indirect + cosmossdk.io/store v1.1.1 // indirect + cosmossdk.io/x/evidence v0.1.1 // indirect + cosmossdk.io/x/feegrant v0.1.1 // indirect + cosmossdk.io/x/tx v0.13.7 // indirect + cosmossdk.io/x/upgrade v0.1.4 // indirect + filippo.io/edwards25519 v1.1.0 // indirect + github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect + github.com/99designs/keyring v1.2.2 // indirect + github.com/CoreumFoundation/coreum-tools v0.4.1-0.20241202115740-dbc6962a4d0a // indirect + github.com/CoreumFoundation/coreum/v5 v5.0.0-20250325092415-36505c89c3fb // indirect + github.com/CosmWasm/wasmd v0.54.0 // indirect + github.com/CosmWasm/wasmvm/v2 v2.2.2 // indirect + github.com/DataDog/datadog-go v4.8.3+incompatible // indirect + github.com/DataDog/zstd v1.5.6 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/aws/aws-sdk-go v1.54.15 // 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.2.0 // indirect + github.com/bits-and-blooms/bitset v1.13.0 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect + github.com/bytedance/sonic v1.12.3 // indirect + github.com/bytedance/sonic/loader v0.2.0 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect + github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/chzyer/readline v1.5.1 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/cloudwego/iasm v0.2.0 // indirect + github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect + github.com/cockroachdb/apd/v3 v3.2.1 // indirect + github.com/cockroachdb/errors v1.11.3 // indirect + github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 // indirect + github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 // indirect + github.com/cockroachdb/pebble v1.1.4 // indirect + github.com/cockroachdb/redact v1.1.6 // indirect + github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect + github.com/cometbft/cometbft v0.38.17 // indirect + github.com/cometbft/cometbft-db v0.14.1 // indirect + github.com/cosmos/btcutil v1.0.5 // indirect + github.com/cosmos/cosmos-db v1.1.1 // indirect + github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect + github.com/cosmos/cosmos-sdk v0.50.13 // indirect + github.com/cosmos/go-bip39 v1.0.0 // indirect + github.com/cosmos/gogogateway v1.2.0 // indirect + github.com/cosmos/gogoproto v1.7.0 // indirect + github.com/cosmos/iavl v1.2.4 // indirect + github.com/cosmos/ibc-go/modules/capability v1.0.1 // indirect + github.com/cosmos/ibc-go/v8 v8.7.0 // indirect + github.com/cosmos/ics23/go v0.11.0 // indirect + github.com/cosmos/ledger-cosmos-go v0.14.0 // indirect + github.com/danieljoos/wincred v1.2.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect + github.com/desertbit/timer v1.0.1 // indirect + github.com/dgraph-io/badger/v4 v4.2.0 // indirect + github.com/dgraph-io/ristretto v0.1.1 // indirect + github.com/distribution/reference v0.6.0 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/dvsekhvalnov/jose2go v1.7.0 // indirect + github.com/emicklei/dot v1.6.4 // indirect + github.com/envoyproxy/go-control-plane v0.13.1 // indirect + github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect + github.com/fatih/color v1.17.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/getsentry/sentry-go v0.31.1 // indirect + github.com/go-kit/kit v0.13.0 // indirect + github.com/go-kit/log v0.2.1 // indirect + github.com/go-logfmt/logfmt v0.6.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-viper/mapstructure/v2 v2.2.1 // 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.3 // indirect + github.com/golang/glog v1.2.4 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/mock v1.6.0 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect + github.com/google/btree v1.1.3 // indirect + github.com/google/flatbuffers v24.3.25+incompatible // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/orderedcode v0.0.1 // indirect + github.com/google/s2a-go v0.1.8 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect + github.com/googleapis/gax-go/v2 v2.14.1 // indirect + github.com/gorilla/handlers v1.5.2 // indirect + github.com/gorilla/mux v1.8.1 // indirect + github.com/gorilla/websocket v1.5.3 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect + github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect + github.com/hashicorp/go-cleanhttp v0.5.2 // indirect + github.com/hashicorp/go-getter v1.7.5 // indirect + github.com/hashicorp/go-hclog v1.6.3 // indirect + github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-metrics v0.5.3 // indirect + github.com/hashicorp/go-plugin v1.6.1 // indirect + github.com/hashicorp/go-safetemp v1.0.0 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect + github.com/hashicorp/golang-lru v1.0.2 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect + github.com/hashicorp/yamux v0.1.1 // indirect + github.com/hdevalence/ed25519consensus v0.2.0 // indirect + github.com/huandu/skiplist v1.2.0 // indirect + github.com/iancoleman/strcase v0.3.0 // indirect + github.com/improbable-eng/grpc-web v0.15.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jackc/chunkreader/v2 v2.0.1 // indirect + github.com/jackc/pgconn v1.14.3 // indirect + github.com/jackc/pgio v1.0.0 // indirect + github.com/jackc/pgpassfile v1.0.0 // indirect + github.com/jackc/pgproto3/v2 v2.3.3 // indirect + github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect + github.com/jackc/pgtype v1.14.0 // indirect + github.com/jackc/pgx/v4 v4.18.2 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/jmhodges/levigo v1.0.0 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/klauspost/cpuid/v2 v2.2.4 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/lib/pq v1.10.9 // indirect + github.com/linxGnu/grocksdb v1.9.8 // indirect + github.com/manifoldco/promptui v0.9.0 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/minio/highwayhash v1.0.3 // indirect + github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mitchellh/go-testing-interface v1.14.1 // indirect + github.com/mtibben/percent v0.2.1 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect + github.com/oklog/run v1.1.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.3 // indirect + github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect + github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.62.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + github.com/rs/cors v1.11.1 // indirect + github.com/rs/zerolog v1.33.0 // indirect + github.com/rubblelabs/ripple v0.0.0-20240109131116-f99dee0aa0f3 // indirect + github.com/sagikazarmark/locafero v0.7.0 // indirect + github.com/sasha-s/go-deadlock v0.3.5 // indirect + github.com/shamaton/msgpack/v2 v2.2.2 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.12.0 // indirect + github.com/spf13/cast v1.7.1 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/viper v1.20.0 // indirect + github.com/stretchr/testify v1.10.0 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect + github.com/tendermint/go-amino v0.16.0 // indirect + github.com/tidwall/btree v1.7.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ulikunitz/xz v0.5.12 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect + go.etcd.io/bbolt v1.4.0-alpha.1 // indirect + go.opencensus.io v0.24.0 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.32.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect + golang.org/x/arch v0.3.0 // indirect + golang.org/x/crypto v0.35.0 // indirect + golang.org/x/net v0.36.0 // indirect + golang.org/x/oauth2 v0.25.0 // indirect + golang.org/x/sync v0.11.0 // indirect + golang.org/x/sys v0.30.0 // indirect + golang.org/x/term v0.29.0 // indirect + golang.org/x/text v0.22.0 // indirect + golang.org/x/time v0.8.0 // indirect + google.golang.org/api v0.215.0 // indirect + google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241223144023-3abc09e42ca8 // indirect + google.golang.org/grpc v1.70.0 // indirect + google.golang.org/protobuf v1.36.5 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + gotest.tools/v3 v3.5.1 // indirect + nhooyr.io/websocket v1.8.11 // indirect + pgregory.net/rapid v1.1.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect +) + +require ( + github.com/pkg/errors v0.9.1 // indirect + github.com/samber/lo v1.49.1 // indirect + github.com/spf13/pflag v1.0.6 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.27.0 // indirect + // Make sure to not bump x/exp dependency without cosmos-sdk updated because their breaking change is not compatible + // with cosmos-sdk v0.47. + // Details: https://github.com/cosmos/cosmos-sdk/issues/18415 + golang.org/x/exp v0.0.0-20250215185904-eff6e970281f // indirect + golang.org/x/mod v0.23.0 // indirect +) diff --git a/build/go.sum b/build/go.sum new file mode 100644 index 000000000..7bda803a5 --- /dev/null +++ b/build/go.sum @@ -0,0 +1,1858 @@ +cel.dev/expr v0.19.0 h1:lXuo+nDhpyJSpWxpPVi5cPUwzKb+dsdOiw6IreM5yt0= +cel.dev/expr v0.19.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= +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= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= +cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= +cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= +cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +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.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= +cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= +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= +cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= +cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= +cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= +cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= +cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= +cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= +cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= +cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= +cloud.google.com/go/auth v0.13.0 h1:8Fu8TZy167JkW8Tj3q7dIkr2v4cndv41ouecJx0PAHs= +cloud.google.com/go/auth v0.13.0/go.mod h1:COOjD9gwfKNKz+IIduatIhYJQIc0mG3H102r/EMxX6Q= +cloud.google.com/go/auth/oauth2adapt v0.2.6 h1:V6a6XDu2lTwPZWOawrAa9HUK+DB2zfJyTuciBG5hFkU= +cloud.google.com/go/auth/oauth2adapt v0.2.6/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= +cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= +cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= +cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= +cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= +cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= +cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= +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/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I= +cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg= +cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= +cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= +cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= +cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= +cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= +cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= +cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= +cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= +cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= +cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= +cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= +cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= +cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= +cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= +cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= +cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= +cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= +cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= +cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= +cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +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 v1.2.2 h1:ozUSofHUGf/F4tCNy/mu9tHLTaxZFLOUiKzjcgWHGIA= +cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY= +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/logging v1.12.0 h1:ex1igYcGFd4S/RZWOCU51StlIEuey5bjqwH9ZYjHibk= +cloud.google.com/go/logging v1.12.0/go.mod h1:wwYBt5HlYP1InnrtYI0wtwttpVU1rifnMT7RejksUAM= +cloud.google.com/go/longrunning v0.6.2 h1:xjDfh1pQcWPEvnfjZmwjKQEcHnpz6lHjfy7Fo0MK+hc= +cloud.google.com/go/longrunning v0.6.2/go.mod h1:k/vIs83RN4bE3YCswdXC5PFfWVILjm3hpEUlSko4PiI= +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= +cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= +cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/monitoring v1.21.2 h1:FChwVtClH19E7pJ+e0xUhJPGksctZNVOk2UhMmblmdU= +cloud.google.com/go/monitoring v1.21.2/go.mod h1:hS3pXvaG8KgWTSz+dAdyzPrGUYmi2Q+WFX8g2hqVEZU= +cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= +cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= +cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= +cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= +cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= +cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= +cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= +cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= +cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= +cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= +cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= +cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= +cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= +cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= +cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= +cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= +cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= +cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= +cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= +cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= +cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= +cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= +cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +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.49.0 h1:zenOPBOWHCnojRd9aJZAyQXBYqkJkdQS42dxL55CIMw= +cloud.google.com/go/storage v1.49.0/go.mod h1:k1eHhhpLvrPjVGfo0mOUPEJ4Y2+a/Hv5PiwehZI9qGU= +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/trace v1.11.2 h1:4ZmaBdL8Ng/ajrgKqY5jfvzqMXbrDcBsUGXOT9aqTtI= +cloud.google.com/go/trace v1.11.2/go.mod h1:bn7OwXd4pd5rFuAnTrzBuoZ4ax2XQeG3qNgYmfCy0Io= +cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= +cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= +cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= +cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= +cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= +cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +cosmossdk.io/api v0.7.6 h1:PC20PcXy1xYKH2KU4RMurVoFjjKkCgYRbVAD4PdqUuY= +cosmossdk.io/api v0.7.6/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/client/v2 v2.0.0-beta.3 h1:+TTuH0DwQYsUq2JFAl3fDZzKq5gQG7nt3dAattkjFDU= +cosmossdk.io/client/v2 v2.0.0-beta.3/go.mod h1:CZcL41HpJPOOayTCO28j8weNBQprG+SRiKX39votypo= +cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= +cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= +cosmossdk.io/core v0.11.1 h1:h9WfBey7NAiFfIcUhDVNS503I2P2HdZLebJlUIs8LPA= +cosmossdk.io/core v0.11.1/go.mod h1:OJzxcdC+RPrgGF8NJZR2uoQr56tc7gfBKhiKeDO7hH0= +cosmossdk.io/depinject v1.1.0 h1:wLan7LG35VM7Yo6ov0jId3RHWCGRhe8E8bsuARorl5E= +cosmossdk.io/depinject v1.1.0/go.mod h1:kkI5H9jCGHeKeYWXTqYdruogYrEeWvBQCw1Pj4/eCFI= +cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= +cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= +cosmossdk.io/log v1.5.0 h1:dVdzPJW9kMrnAYyMf1duqacoidB9uZIl+7c6z0mnq0g= +cosmossdk.io/log v1.5.0/go.mod h1:Tr46PUJjiUthlwQ+hxYtUtPn4D/oCZXAkYevBeh5+FI= +cosmossdk.io/math v1.5.0 h1:sbOASxee9Zxdjd6OkzogvBZ25/hP929vdcYcBJQbkLc= +cosmossdk.io/math v1.5.0/go.mod h1:AAwwBmUhqtk2nlku174JwSll+/DepUXW3rWIXN5q+Nw= +cosmossdk.io/store v1.1.1 h1:NA3PioJtWDVU7cHHeyvdva5J/ggyLDkyH0hGHl2804Y= +cosmossdk.io/store v1.1.1/go.mod h1:8DwVTz83/2PSI366FERGbWSH7hL6sB7HbYp8bqksNwM= +cosmossdk.io/x/circuit v0.1.1 h1:KPJCnLChWrxD4jLwUiuQaf5mFD/1m7Omyo7oooefBVQ= +cosmossdk.io/x/circuit v0.1.1/go.mod h1:B6f/urRuQH8gjt4eLIXfZJucrbreuYrKh5CSjaOxr+Q= +cosmossdk.io/x/evidence v0.1.1 h1:Ks+BLTa3uftFpElLTDp9L76t2b58htjVbSZ86aoK/E4= +cosmossdk.io/x/evidence v0.1.1/go.mod h1:OoDsWlbtuyqS70LY51aX8FBTvguQqvFrt78qL7UzeNc= +cosmossdk.io/x/feegrant v0.1.1 h1:EKFWOeo/pup0yF0svDisWWKAA9Zags6Zd0P3nRvVvw8= +cosmossdk.io/x/feegrant v0.1.1/go.mod h1:2GjVVxX6G2fta8LWj7pC/ytHjryA6MHAJroBWHFNiEQ= +cosmossdk.io/x/nft v0.1.1 h1:pslAVS8P5NkW080+LWOamInjDcq+v2GSCo+BjN9sxZ8= +cosmossdk.io/x/nft v0.1.1/go.mod h1:Kac6F6y2gsKvoxU+fy8uvxRTi4BIhLOor2zgCNQwVgY= +cosmossdk.io/x/tx v0.13.7 h1:8WSk6B/OHJLYjiZeMKhq7DK7lHDMyK0UfDbBMxVmeOI= +cosmossdk.io/x/tx v0.13.7/go.mod h1:V6DImnwJMTq5qFjeGWpXNiT/fjgE4HtmclRmTqRVM3w= +cosmossdk.io/x/upgrade v0.1.4 h1:/BWJim24QHoXde8Bc64/2BSEB6W4eTydq0X/2f8+g38= +cosmossdk.io/x/upgrade v0.1.4/go.mod h1:9v0Aj+fs97O+Ztw+tG3/tp5JSlrmT7IcFhAebQHmOPo= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= +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/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/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/CoreumFoundation/coreum-tools v0.4.1-0.20241202115740-dbc6962a4d0a h1:1vgtS45y86pyFZ/n2RBHjKQhHRDK1VQek7NHbkPfkGU= +github.com/CoreumFoundation/coreum-tools v0.4.1-0.20241202115740-dbc6962a4d0a/go.mod h1:VD93vCHkxYaT/RhOesXTFgd/GQDW54tr0BqGi5JU1c0= +github.com/CoreumFoundation/coreum/v5 v5.0.0-20250325092415-36505c89c3fb h1:YJ6lB5hucWhuU/vItPMtwivPn7OtR7nOYY8MQprWaOM= +github.com/CoreumFoundation/coreum/v5 v5.0.0-20250325092415-36505c89c3fb/go.mod h1:zrehSs/igxYQrqFdIo8jTMvLAgOYbRoEFU+3RZEKFWM= +github.com/CoreumFoundation/crust v0.0.0-20250404130536-23de310e6eb8 h1:Hed06EDU5Lt6P89Sgfs/gKt0SIGJOpqt7NCKyGDsiiM= +github.com/CoreumFoundation/crust v0.0.0-20250404130536-23de310e6eb8/go.mod h1:6upahk1765UAryMA55OskmSDVoP98MMEAF4A+TFDyJI= +github.com/CoreumFoundation/crust/znet v0.0.0-20250404130536-23de310e6eb8 h1:0tWqlNkHNzb2TrZEBa3RjWknVVWoHahQDVPNRIVBlCs= +github.com/CoreumFoundation/crust/znet v0.0.0-20250404130536-23de310e6eb8/go.mod h1:XVapwHb6v63p46hUZ7+Yfelm0/lA8xBiTqFkDlH/acM= +github.com/CosmWasm/wasmd v0.54.0 h1:/txsBehV1xnAi46H1xwuuY6D4NySujBy+wa5+ryItS8= +github.com/CosmWasm/wasmd v0.54.0/go.mod h1:8Zu/rj6RHbJ8Gx0WdqsGeHvgnEQb0rqchpqhgMxASRU= +github.com/CosmWasm/wasmvm/v2 v2.2.2 h1:MaQMtaZN8L08N0uAlBlOICP+GWolibJsajHGo3fQ03w= +github.com/CosmWasm/wasmvm/v2 v2.2.2/go.mod h1:bMhLQL4Yp9CzJi9A83aR7VO9wockOsSlZbT4ztOl6bg= +github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/datadog-go v4.8.3+incompatible h1:fNGaYSuObuQb5nzeTQqowRAd9bpDIRRV4/gUtIBjh8Q= +github.com/DataDog/datadog-go v4.8.3+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 h1:UQ0AhxogsIRZDkElkblfnwjc3IaltCm2HUMvezQaL7s= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1/go.mod h1:jyqM3eLpJ3IbIFDTKVz2rF9T/xWGW0rIriGwnz8l9Tk= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.48.1 h1:oTX4vsorBZo/Zdum6OKPA4o7544hm6smoRv1QjpTwGo= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.48.1/go.mod h1:0wEl7vrAD8mehJyohS9HZy+WyEOaQO2mJx86Cvh93kM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 h1:8nn+rsCvTq9axyEh382S0PFLBeaFwNsT43IrPWzctRU= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1/go.mod h1:viRWSEhtMZqz1rhwmOVKkWl6SwmVowfL9O2YR5gI2PE= +github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= +github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +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/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/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.6 h1:k1/zc2jNfeiZBA5aFTRy37jlBIuCkXCm0XmvpzCKI9I= +github.com/adlio/schema v1.3.6/go.mod h1:qkxwLgPBd1FgLRHYVCmQT/rrBr3JH38J9LjmVzWNudg= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= +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/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= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +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/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= +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.54.15 h1:ErgCEVbzuSfuZl9nR+g8FFnzjgeJ/AqAGOEWn6tgAHo= +github.com/aws/aws-sdk-go v1.54.15/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +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= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= +github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bgentry/speakeasy v0.2.0 h1:tgObeVOf8WAvtuAX6DhJ4xks4CFNwPDZiqzGqIHE51E= +github.com/bgentry/speakeasy v0.2.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= +github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/btcsuite/btcd/btcec/v2 v2.3.4 h1:3EJjcN70HCu/mwqlUsGK8GcNVyLVxFDlWurTXGPFfiQ= +github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcutil v1.1.6 h1:zFL2+c3Lb9gEgqKNzowKUPQNb8jV7v5Oaodi/AYFd6c= +github.com/btcsuite/btcd/btcutil v1.1.6/go.mod h1:9dFymx8HpuLqBnsPELrImQeTQfKBQqzqGbbV3jK55aE= +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/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28/ZlunY= +github.com/bufbuild/protocompile v0.6.0/go.mod h1:YNP35qEYoYGme7QMtz5SBCoN4kL4g12jTtjuzRNdjpE= +github.com/bytedance/sonic v1.12.3 h1:W2MGa7RCU1QTeYRTPE3+88mVC0yXmsRQRChiyVocVjU= +github.com/bytedance/sonic v1.12.3/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM= +github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +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= +github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= +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.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +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= +github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= +github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= +github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= +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/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/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= +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= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +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/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= +github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= +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.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg= +github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= +github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= +github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 h1:pU88SPhIFid6/k0egdR5V6eALQYq2qbSmukrkgIh/0A= +github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= +github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 h1:ASDL+UJcILMqgNeV5jiqR4j+sTuvQNHdf2chuKj1M5k= +github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506/go.mod h1:Mw7HqKr2kdtu6aYGn3tPmAftiP3QPX63LdK/zcariIo= +github.com/cockroachdb/pebble v1.1.4 h1:5II1uEP4MyHLDnsrbv/EZ36arcb9Mxg3n+owhZ3GrG8= +github.com/cockroachdb/pebble v1.1.4/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= +github.com/cockroachdb/redact v1.1.6 h1:zXJBwDZ84xJNlHl1rMyCojqyIxv+7YUpQiJLQ7n4314= +github.com/cockroachdb/redact v1.1.6/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= +github.com/cometbft/cometbft v0.38.17 h1:FkrQNbAjiFqXydeAO81FUzriL4Bz0abYxN/eOHrQGOk= +github.com/cometbft/cometbft v0.38.17/go.mod h1:5l0SkgeLRXi6bBfQuevXjKqML1jjfJJlvI1Ulp02/o4= +github.com/cometbft/cometbft-db v0.14.1 h1:SxoamPghqICBAIcGpleHbmoPqy+crij/++eZz3DlerQ= +github.com/cometbft/cometbft-db v0.14.1/go.mod h1:KHP1YghilyGV/xjD5DP3+2hyigWx0WTp9X+0Gnx0RxQ= +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/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 v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/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-db v1.1.1 h1:FezFSU37AlBC8S98NlSagL76oqBRWq/prTPvFcEJNCM= +github.com/cosmos/cosmos-db v1.1.1/go.mod h1:AghjcIPqdhSLP/2Z0yha5xPH3nLnskz81pBx3tcVSAw= +github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= +github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= +github.com/cosmos/cosmos-sdk v0.50.13 h1:xQ32hhzVy7agEe7behMdZN0ezWhPss3KoLZsF9KoBnw= +github.com/cosmos/cosmos-sdk v0.50.13/go.mod h1:hrWEFMU1eoXqLJeE6VVESpJDQH67FS1nnMrQIjO2daw= +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.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fro= +github.com/cosmos/gogoproto v1.7.0/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0= +github.com/cosmos/iavl v1.2.4 h1:IHUrG8dkyueKEY72y92jajrizbkZKPZbMmG14QzsEkw= +github.com/cosmos/iavl v1.2.4/go.mod h1:GiM43q0pB+uG53mLxLDzimxM9l/5N9UuSY3/D0huuVw= +github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.1.1 h1:+EGYrTsQ2hu8pBwCWAgqc0g/zSklvBFehda9URLfvOU= +github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.1.1/go.mod h1:8sbOclBgOCgBPesufd3ZlLRHvJ3dOeN9+dXhn3KbKOc= +github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 v8.0.0-20240626224216-94190a9816cc h1:6cdr91BRCuR799DZrATxRt/QQHhA4VIVXO9YRShW8fA= +github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 v8.0.0-20240626224216-94190a9816cc/go.mod h1:9+Z14xz3Y+5uEn5i1CvLcDN1aTthEhYUdI7pphySkY8= +github.com/cosmos/ibc-go/modules/capability v1.0.1 h1:ibwhrpJ3SftEEZRxCRkH0fQZ9svjthrX2+oXdZvzgGI= +github.com/cosmos/ibc-go/modules/capability v1.0.1/go.mod h1:rquyOV262nGJplkumH+/LeYs04P3eV8oB7ZM4Ygqk4E= +github.com/cosmos/ibc-go/v8 v8.7.0 h1:HqhVOkO8bDpClXE81DFQgFjroQcTvtpm0tCS7SQVKVY= +github.com/cosmos/ibc-go/v8 v8.7.0/go.mod h1:G2z+Q6ZQSMcyHI2+BVcJdvfOupb09M2h/tgpXOEdY6k= +github.com/cosmos/ics23/go v0.11.0 h1:jk5skjT0TqX5e5QJbEnwXIS2yI2vnmLOgpQPeM5RtnU= +github.com/cosmos/ics23/go v0.11.0/go.mod h1:A8OjxPE67hHST4Icw94hOxxFEJMBG031xIGF/JHNIY0= +github.com/cosmos/ledger-cosmos-go v0.14.0 h1:WfCHricT3rPbkPSVKRH+L4fQGKYHuGOK9Edpel8TYpE= +github.com/cosmos/ledger-cosmos-go v0.14.0/go.mod h1:E07xCWSBl3mTGofZ2QnL4cIUzMbbGVyik84QYKbX3RA= +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.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +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/danieljoos/wincred v1.2.1 h1:dl9cBrupW8+r5250DYkYxocLeZ1Y4vB1kxgtjxw8GQs= +github.com/danieljoos/wincred v1.2.1/go.mod h1:uGaFL9fDn3OLTvzCGulzE+SzjEe5NGlh5FdCcyfPwps= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= +github.com/desertbit/timer v1.0.1 h1:yRpYNn5Vaaj6QXecdLMPMJsW81JLiI1eokUft5nBmeo= +github.com/desertbit/timer v1.0.1/go.mod h1:htRrYeY5V/t4iu1xCJ5XsQvp4xve8QulXXctAzxqcwE= +github.com/dgraph-io/badger/v4 v4.2.0 h1:kJrlajbXXL9DFTNuhhu9yCx7JJa4qpYWxtE8BzuWsEs= +github.com/dgraph-io/badger/v4 v4.2.0/go.mod h1:qfCqhPoWDFJRx1gp5QwwyGo8xk1lbHUxvK9nK0OGAak= +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 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/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +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/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= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/dvsekhvalnov/jose2go v1.7.0 h1:bnQc8+GMnidJZA8zc6lLEAb4xNrIqHwO+9TzqvtQZPo= +github.com/dvsekhvalnov/jose2go v1.7.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +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/emicklei/dot v1.6.4 h1:cG9ycT67d9Yw22G+mAb4XiuUz6E6H1S0zePp/5Cwe/c= +github.com/emicklei/dot v1.6.4/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= +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= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/go-control-plane v0.13.1 h1:vPfJZCkob6yTMEgS+0TwfTUfbHjfy/6vOJ8hUWX/uXE= +github.com/envoyproxy/go-control-plane v0.13.1/go.mod h1:X45hY0mufo6Fd0KW3rqsGvQMw58jvjymeCzBU3mWyHw= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= +github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/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.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/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.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/getsentry/sentry-go v0.31.1 h1:ELVc0h7gwyhnXHDouXkhqTFSO5oslsRDk0++eyE0KJ4= +github.com/getsentry/sentry-go v0.31.1/go.mod h1:CYNcMMz73YigoHljQRG+qPF+eMq8gG72XcGN/p71BAY= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +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/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-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= +github.com/go-kit/kit v0.13.0 h1:OoneCcHKHQ03LfBpoQCUfCluwd2Vt3ohz+kvbJneZAU= +github.com/go-kit/kit v0.13.0/go.mod h1:phqEHMMUbyrCFCTgH48JueqrM3md2HcAZ8N3XE4FKDg= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/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 v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= +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-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= +github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +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/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= +github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +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= +github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc= +github.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/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= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81AtFUxJM+yDthflgJGkI= +github.com/google/flatbuffers v24.3.25+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +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.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9Fc= +github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0= +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= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +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.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= +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/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= +github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= +github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= +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.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q= +github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= +github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +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 v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= +github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= +github.com/gorilla/mux v1.6.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.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +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.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +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= +github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= +github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= +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 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.5 h1:dT58k9hQ/vbxNMwoI5+xFYAJuv6152UNvdHokfI5wE4= +github.com/hashicorp/go-getter v1.7.5/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= +github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +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-metrics v0.5.3 h1:M5uADWMOGCTUNU1YuC4hfknOeHNaX54LDm4oYSucoNE= +github.com/hashicorp/go-metrics v0.5.3/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-plugin v1.6.1 h1:P7MR2UP6gNKGPp+y7EZw2kOiq4IR9WiqLvp0XOsVdwI= +github.com/hashicorp/go-plugin v1.6.1/go.mod h1:XPHFku2tFo3o3QKFgSYo+cghcUhw1NA1hZyMK0PWAw0= +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= +github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= +github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= +github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/hdevalence/ed25519consensus v0.2.0 h1:37ICyZqdyj0lAZ8P4D1d1id3HqbbG1N3iBb1Tb4rdcU= +github.com/hdevalence/ed25519consensus v0.2.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3c= +github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= +github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw= +github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= +github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= +github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc= +github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJDkXXS7VoV7XGE= +github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= +github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/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.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/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= +github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= +github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= +github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= +github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= +github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= +github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= +github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= +github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= +github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= +github.com/jackc/pgconn v1.14.3 h1:bVoTr12EGANZz66nZPkMInAV/KHD2TxH9npjXXgiB3w= +github.com/jackc/pgconn v1.14.3/go.mod h1:RZbme4uasqzybK2RK5c65VsHxoyaml09lx3tXOcO/VM= +github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= +github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= +github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= +github.com/jackc/pgmock v0.0.0-20201204152224-4fe30f7445fd/go.mod h1:hrBW0Enj2AZTNpt/7Y5rr2xe/9Mn757Wtb2xeBzPv2c= +github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65 h1:DadwsjnMwFjfWc9y5Wi/+Zz7xoE5ALHsRQlOctkOiHc= +github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65/go.mod h1:5R2h2EEX+qri8jOWMbJCtaPWkrrNc7OHwsp2TCqp7ak= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= +github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= +github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= +github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= +github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= +github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.3.3 h1:1HLSx5H+tXR9pW3in3zaztoEwQYRC9SQaYUHjTSUOag= +github.com/jackc/pgproto3/v2 v2.3.3/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= +github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= +github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= +github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= +github.com/jackc/pgtype v1.14.0 h1:y+xUdabmyMkJLyApYuPj38mW+aAIqCe5uuBB51rH3Vw= +github.com/jackc/pgtype v1.14.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= +github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= +github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= +github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= +github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= +github.com/jackc/pgx/v4 v4.18.2 h1:xVpYkNR5pk5bMCZGfClbO962UIqVABcAGt7ha1s/FeU= +github.com/jackc/pgx/v4 v4.18.2/go.mod h1:Ey4Oru5tH5sB6tV7hDmfWFahwF15Eb7DNXlRKx2CkVw= +github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jhump/protoreflect v1.15.3 h1:6SFRuqU45u9hIZPJAoZ8c28T3nK64BNdp9w6jFonzls= +github.com/jhump/protoreflect v1.15.3/go.mod h1:4ORHmSBmlCW8fh3xHmJMGyul1zNqZK4Elxc8qKP+p1k= +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= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +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/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/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/juju/loggo v0.0.0-20200526014432-9ce3a2e09b5e h1:FdDd7bdI6cjq5vaoYlK1mfQYfF9sF2VZw8VEZMsl5t8= +github.com/juju/loggo v0.0.0-20200526014432-9ce3a2e09b5e/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= +github.com/juju/mgo/v2 v2.0.0-20210302023703-70d5d206e208 h1:/WiCm+Vpj87e4QWuWwPD/bNE9kDrWCLvPBHOQNcG2+A= +github.com/juju/mgo/v2 v2.0.0-20210302023703-70d5d206e208/go.mod h1:0OChplkvPTZ174D2FYZXg4IB9hbEwyHkD+zT+/eK+Fg= +github.com/juju/testing v0.0.0-20210324180055-18c50b0c2098 h1:yrhek184cGp0IRyHg0uV1khLaorNg6GtDLkry4oNNjE= +github.com/juju/testing v0.0.0-20210324180055-18c50b0c2098/go.mod h1:7lxZW0B50+xdGFkvhAb8bwAGt6IU87JB1H9w4t8MNVM= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.10.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.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= +github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +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/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/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= +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/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +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.9.8 h1:vOIKv9/+HKiqJAElJIEYv3ZLcihRxyP7Suu/Mu8Dxjs= +github.com/linxGnu/grocksdb v1.9.8/go.mod h1:C3CNe9UYc9hlEM2pC82AqiGS3LRW537u9LFV4wIZuHk= +github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +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.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-colorable v0.1.6/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.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.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +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/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/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/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/highwayhash v1.0.3 h1:kbnuUMoHYyVl7szWjSxJnxw11k2U709jqFPPmIUyD6Q= +github.com/minio/highwayhash v1.0.3/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= +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= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= +github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= +github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= +github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +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/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= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +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/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/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a h1:dlRvE5fWabOchtH7znfiFCcOvmIYgOeAS5ifBXBlh9Q= +github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s= +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/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= +github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +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= +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 v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= +github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= +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.2.0-rc.3 h1:5vQhejBp4S5w1DwFZ7L3CSOQX9cmcc8JKFy/mOBTJlo= +github.com/opencontainers/runc v1.2.0-rc.3/go.mod h1:HADgqJU4nqAmOpe+uYBTJ4ZRvjks3ptCjKXp1pHqmCc= +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= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +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/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= +github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= +github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= +github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 h1:Dx7Ovyv/SFnMFw3fD4oEoeorXc6saIiQ23LrGLth0Gw= +github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7/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= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +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 v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +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.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +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= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +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.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= +github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= +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= +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.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +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/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/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/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= +github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= +github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rubblelabs/ripple v0.0.0-20240109131116-f99dee0aa0f3 h1:k36Tsf3+NWcqS4GWeu4cjictjJaHyDvU3V+Q6gIfEMM= +github.com/rubblelabs/ripple v0.0.0-20240109131116-f99dee0aa0f3/go.mod h1:fMkR1lFpPmqtrRLsnAT86pDLUlOBqcfot815LgiAqjQ= +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/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= +github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= +github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew= +github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o= +github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= +github.com/sasha-s/go-deadlock v0.3.5 h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU= +github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/shamaton/msgpack/v2 v2.2.2 h1:GOIg0c9LV04VwzOOqZSrmsv/JzjNOOMxnS/HvOHGdgs= +github.com/shamaton/msgpack/v2 v2.2.2/go.mod h1:6khjYnkx73f7VQU7wjcFS9DFjs+59naVWJv1TB7qdOI= +github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= +github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= +github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +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.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= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/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= +github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= +github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.20.0 h1:zrxIyR3RQIOsarIrgL8+sAvALXul9jeEPa06Y0Ph6vY= +github.com/spf13/viper v1.20.0/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= +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.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/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +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= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.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.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +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/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.7.0 h1:L1fkJH/AuEh5zBnnBbmTwQ5Lt+bRJ5A8EWecslvo9iI= +github.com/tidwall/btree v1.7.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= +github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +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/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.4.0-alpha.1 h1:3yrqQzbRRPFPdOMWS/QQIVxVnzSkAZQYeWlZFv1kbj4= +go.etcd.io/bbolt v1.4.0-alpha.1/go.mod h1:S/Z/Nm3iuOnyO1W4XuFfPci51Gj6F1Hv0z8hisyYYOw= +go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= +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= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/detectors/gcp v1.32.0 h1:P78qWqkLSShicHmAzfECaTgvslqHxblNE9j62Ws1NK8= +go.opentelemetry.io/contrib/detectors/gcp v1.32.0/go.mod h1:TVqo0Sda4Cv8gCIixd7LuLwW4EylumVWfhjZJjDD4DU= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 h1:WDdP9acbMYjbKIyJUhTvtzj601sVJOqgWdUxSdR/Ysc= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +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.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +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.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +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.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +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.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +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.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= +golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/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-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +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-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +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-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= +golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= +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= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +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-20250215185904-eff6e970281f h1:oFMYAjX0867ZD2jcNiLBrI9BdpmEkvPyi5YrBGXbamg= +golang.org/x/exp v0.0.0-20250215185904-eff6e970281f/go.mod h1:BHOTPb3L19zxehTsLoJXVaTktb06DFgmdW6Wb9s8jqk= +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= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +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.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= +golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +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-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= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +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-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-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-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= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-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-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-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-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= +golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +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.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= +golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= +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= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +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.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= +golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +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= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +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.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +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= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/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-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-20191026070338-33540a1f6037/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-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-20200122134326-e047566fdf82/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-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= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-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-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/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-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= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +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-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-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= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/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-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220315194320-039c03cc5b86/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/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/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-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.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= +golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +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.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= +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.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +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-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= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/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-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/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= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-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-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-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-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= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +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= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +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= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= +google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= +google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= +google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= +google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= +google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= +google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= +google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +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.215.0 h1:jdYF4qnyczlEz2ReWIsosNLDuzXyvFHJtI5gcr0J7t0= +google.golang.org/api v0.215.0/go.mod h1:fta3CVtuJYOEdugLNWm6WodzOS8KdFckABwN4I40hzY= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/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-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= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +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-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= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200324203455-a04cca1dde73/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +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-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-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= +google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= +google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= +google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= +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-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241223144023-3abc09e42ca8 h1:TqExAhdPaB60Ux47Cn0oLV07rGnxZzIsaRhQaqS666A= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241223144023-3abc09e42ca8/go.mod h1:lcTa1sDdWEIHMWlITnIczmw5w60CF9ffkb8Z+DVmmjA= +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= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +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.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= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +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.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ= +google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw= +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= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +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.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +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= +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/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +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= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +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/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/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= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +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= +nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +nhooyr.io/websocket v1.8.11 h1:f/qXNc2/3DpoSZkHt1DQu6rj4zGC8JmkkLkWss0MgN0= +nhooyr.io/websocket v1.8.11/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= +pgregory.net/rapid v1.1.0/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/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= +sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/build/hasura/Dockerfile b/build/hasura/Dockerfile new file mode 100644 index 000000000..28a74d82c --- /dev/null +++ b/build/hasura/Dockerfile @@ -0,0 +1,4 @@ +FROM --platform=$TARGETPLATFORM hasura/graphql-engine:v2.35.0.cli-migrations-v3 +COPY hasura hasura +WORKDIR hasura + diff --git a/build/hasura/images.go b/build/hasura/images.go new file mode 100644 index 000000000..8735f1dd6 --- /dev/null +++ b/build/hasura/images.go @@ -0,0 +1,43 @@ +package hasura + +import ( + "context" + _ "embed" + + "github.com/CoreumFoundation/crust/build/config" + "github.com/CoreumFoundation/crust/build/docker" + "github.com/CoreumFoundation/crust/build/tools" + "github.com/CoreumFoundation/crust/build/types" +) + +//go:embed Dockerfile +var dockerfile []byte + +// BuildDockerImage builds docker image. +func BuildDockerImage(ctx context.Context, deps types.DepsFunc) error { + return buildDockerImage(ctx, false) +} + +// ReleaseDockerImage builds and releases docker image. +func ReleaseDockerImage(ctx context.Context, deps types.DepsFunc) error { + return buildDockerImage(ctx, true) +} + +func buildDockerImage(ctx context.Context, push bool) error { + var action docker.Action + if push { + action = docker.ActionPush + } else { + action = docker.ActionLoad + } + return docker.BuildImage(ctx, docker.BuildImageConfig{ + ContextDir: ".", // TODO (wojciech): Later on, move `hasura` dir here + ImageName: config.DockerHubUsername + "/hasura", + TargetPlatforms: []tools.TargetPlatform{tools.TargetPlatformLinuxLocalArchInDocker}, + Dockerfile: dockerfile, + Action: action, + Versions: []string{ + "latest", + }, + }) +} diff --git a/build/index.go b/build/index.go new file mode 100644 index 000000000..f546f63ff --- /dev/null +++ b/build/index.go @@ -0,0 +1,30 @@ +package build + +import ( + "context" + + "github.com/CoreumFoundation/callisto/build/callisto" + "github.com/CoreumFoundation/callisto/build/hasura" + "github.com/CoreumFoundation/crust/build/crust" + "github.com/CoreumFoundation/crust/build/golang" + "github.com/CoreumFoundation/crust/build/types" +) + +// Commands is a definition of commands available in build system. +var Commands = map[string]types.Command{ + "build/me": {Fn: crust.BuildBuilder, Description: "Builds the builder"}, + "build/znet": {Fn: crust.BuildZNet, Description: "Builds znet binary"}, + "build": {Fn: callisto.Build, Description: "Builds callisto binary"}, + "build/amd64": {Fn: callisto.BuildAMD64, Description: "Builds callisto binary for arm64 platform"}, + "build/arm64": {Fn: callisto.BuildARM64, Description: "Builds callisto binary for amd64 platform"}, + "images": {Fn: func(ctx context.Context, deps types.DepsFunc) error { + deps(callisto.BuildDockerImage, hasura.BuildDockerImage) + return nil + }, Description: "Builds callisto and hasura docker images"}, + "release/images": {Fn: func(ctx context.Context, deps types.DepsFunc) error { + deps(callisto.ReleaseDockerImage, hasura.ReleaseDockerImage) + return nil + }, Description: "Builds callisto and hasura docker images and releases them"}, + "test": {Fn: golang.Test, Description: "Runs unit tests"}, + "tidy": {Fn: golang.Tidy, Description: "Runs go mod tidy"}, +} diff --git a/cmd/callisto/main.go b/cmd/callisto/main.go index 75f66e58c..392f335b5 100644 --- a/cmd/callisto/main.go +++ b/cmd/callisto/main.go @@ -1,32 +1,27 @@ package main import ( - "github.com/cosmos/cosmos-sdk/types/module" - "github.com/forbole/juno/v5/cmd" - initcmd "github.com/forbole/juno/v5/cmd/init" - parsetypes "github.com/forbole/juno/v5/cmd/parse/types" - startcmd "github.com/forbole/juno/v5/cmd/start" - "github.com/forbole/juno/v5/modules/messages" - migratecmd "github.com/forbole/callisto/v4/cmd/migrate" parsecmd "github.com/forbole/callisto/v4/cmd/parse" - - "github.com/forbole/callisto/v4/types/config" - - "cosmossdk.io/simapp" - "github.com/forbole/callisto/v4/database" "github.com/forbole/callisto/v4/modules" + "github.com/forbole/callisto/v4/types/config" + "github.com/forbole/callisto/v4/utils" + "github.com/forbole/juno/v6/cmd" + initcmd "github.com/forbole/juno/v6/cmd/init" + parsetypes "github.com/forbole/juno/v6/cmd/parse/types" + startcmd "github.com/forbole/juno/v6/cmd/start" + "github.com/forbole/juno/v6/modules/messages" ) func main() { initCfg := initcmd.NewConfig(). WithConfigCreator(config.Creator) + cdc := utils.GetCodec() parseCfg := parsetypes.NewConfig(). - WithDBBuilder(database.Builder). - WithEncodingConfigBuilder(config.MakeEncodingConfig(getBasicManagers())). - WithRegistrar(modules.NewRegistrar(getAddressesParser())) + WithDBBuilder(database.Builder(cdc)). + WithRegistrar(modules.NewRegistrar(getAddressesParser(), cdc)) cfg := cmd.NewConfig("callisto"). WithInitConfig(initCfg). @@ -38,7 +33,7 @@ func main() { rootCmd.AddCommand( cmd.VersionCmd(), initcmd.NewInitCmd(cfg.GetInitConfig()), - parsecmd.NewParseCmd(cfg.GetParseConfig()), + parsecmd.NewParseCmd(cfg.GetParseConfig(), getAddressesParser()), migratecmd.NewMigrateCmd(cfg.GetName(), cfg.GetParseConfig()), startcmd.NewStartCmd(cfg.GetParseConfig()), ) @@ -50,15 +45,6 @@ func main() { } } -// getBasicManagers returns the various basic managers that are used to register the encoding to -// support custom messages. -// This should be edited by custom implementations if needed. -func getBasicManagers() []module.BasicManager { - return []module.BasicManager{ - simapp.ModuleBasics, - } -} - // getAddressesParser returns the messages parser that should be used to get the users involved in // a specific message. // This should be edited by custom implementations if needed. diff --git a/cmd/migrate/cmd.go b/cmd/migrate/cmd.go index e5c2b67f5..b2b67f5fc 100644 --- a/cmd/migrate/cmd.go +++ b/cmd/migrate/cmd.go @@ -4,21 +4,18 @@ import ( "fmt" "os" - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/spf13/cobra" - v3 "github.com/forbole/callisto/v4/cmd/migrate/v3" v5 "github.com/forbole/callisto/v4/cmd/migrate/v5" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/spf13/cobra" ) type Migrator func(parseCfg *parsecmdtypes.Config) error -var ( - migrations = map[string]Migrator{ - "v3": v3.RunMigration, - "v5": v5.RunMigration, - } -) +var migrations = map[string]Migrator{ + "v3": v3.RunMigration, + "v5": v5.RunMigration, +} func getVersions() []string { var versions []string diff --git a/cmd/migrate/v3/migrate.go b/cmd/migrate/v3/migrate.go index e0f9c1575..d101bab54 100644 --- a/cmd/migrate/v3/migrate.go +++ b/cmd/migrate/v3/migrate.go @@ -5,13 +5,10 @@ import ( "os" "github.com/forbole/callisto/v4/modules/actions" - - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - + junov4 "github.com/forbole/juno/v6/cmd/migrate/v4" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/types/config" "gopkg.in/yaml.v3" - - junov4 "github.com/forbole/juno/v5/cmd/migrate/v4" - "github.com/forbole/juno/v5/types/config" ) // RunMigration runs the migrations from v2 to v3 diff --git a/cmd/migrate/v3/types.go b/cmd/migrate/v3/types.go index 69fd3ef3b..95a90d2a8 100644 --- a/cmd/migrate/v3/types.go +++ b/cmd/migrate/v3/types.go @@ -1,9 +1,8 @@ package v3 import ( - v3 "github.com/forbole/juno/v5/cmd/migrate/v3" - "github.com/forbole/callisto/v4/modules/actions" + v3 "github.com/forbole/juno/v6/cmd/migrate/v3" ) type Config struct { diff --git a/cmd/migrate/v3/utils.go b/cmd/migrate/v3/utils.go index 37fc66f09..3870e5c9f 100644 --- a/cmd/migrate/v3/utils.go +++ b/cmd/migrate/v3/utils.go @@ -5,7 +5,7 @@ import ( "os" "path" - "github.com/forbole/juno/v5/types/config" + "github.com/forbole/juno/v6/types/config" "gopkg.in/yaml.v3" ) diff --git a/cmd/migrate/v5/migrate.go b/cmd/migrate/v5/migrate.go index c8910bd3d..cc4473f8f 100644 --- a/cmd/migrate/v5/migrate.go +++ b/cmd/migrate/v5/migrate.go @@ -4,10 +4,10 @@ import ( "fmt" v5db "github.com/forbole/callisto/v4/database/migrate/v5" - parse "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/database" - "github.com/forbole/juno/v5/database/postgresql" - "github.com/forbole/juno/v5/types/config" + parse "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/database" + "github.com/forbole/juno/v6/database/postgresql" + "github.com/forbole/juno/v6/types/config" ) // RunMigration runs the migrations to v5 @@ -27,11 +27,8 @@ func RunMigration(parseConfig *parse.Config) error { } func migrateDb(cfg config.Config, parseConfig *parse.Config) error { - // Build the codec - encodingConfig := parseConfig.GetEncodingConfigBuilder()() - // Get the db - databaseCtx := database.NewContext(cfg.Database, encodingConfig, parseConfig.GetLogger()) + databaseCtx := database.NewContext(cfg.Database, parseConfig.GetLogger()) db, err := postgresql.Builder(databaseCtx) if err != nil { return fmt.Errorf("error while building the db: %s", err) diff --git a/cmd/migrate/v5/utils.go b/cmd/migrate/v5/utils.go index 2ae2f3c0e..a435fd57a 100644 --- a/cmd/migrate/v5/utils.go +++ b/cmd/migrate/v5/utils.go @@ -5,7 +5,7 @@ import ( "os" "path" - "github.com/forbole/juno/v5/types/config" + "github.com/forbole/juno/v6/types/config" "gopkg.in/yaml.v3" ) diff --git a/cmd/parse/auth/cmd.go b/cmd/parse/auth/cmd.go index f91f6ced6..bed66b494 100644 --- a/cmd/parse/auth/cmd.go +++ b/cmd/parse/auth/cmd.go @@ -1,7 +1,7 @@ package auth import ( - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" "github.com/spf13/cobra" ) diff --git a/cmd/parse/auth/vesting.go b/cmd/parse/auth/vesting.go index 82ff2d439..f5403de55 100644 --- a/cmd/parse/auth/vesting.go +++ b/cmd/parse/auth/vesting.go @@ -4,13 +4,12 @@ import ( "encoding/json" "fmt" - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/types/config" - "github.com/spf13/cobra" - "github.com/forbole/callisto/v4/database" authutils "github.com/forbole/callisto/v4/modules/auth" "github.com/forbole/callisto/v4/utils" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/types/config" + "github.com/spf13/cobra" ) // vestingCmd returns a Cobra command that allows to fix the vesting data for the accounts @@ -38,7 +37,7 @@ func vestingCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { return fmt.Errorf("error unmarshalling genesis doc: %s", err) } - vestingAccounts, err := authutils.GetGenesisVestingAccounts(appState, parseCtx.EncodingConfig.Codec) + vestingAccounts, err := authutils.GetGenesisVestingAccounts(appState, utils.GetCodec()) if err != nil { return fmt.Errorf("error while gestting vesting accounts: %s", err) } diff --git a/cmd/parse/bank/cmd.go b/cmd/parse/bank/cmd.go index 94d3ae68b..ea78ddd11 100644 --- a/cmd/parse/bank/cmd.go +++ b/cmd/parse/bank/cmd.go @@ -1,7 +1,7 @@ package bank import ( - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" "github.com/spf13/cobra" ) diff --git a/cmd/parse/bank/supply.go b/cmd/parse/bank/supply.go index 526ff48d3..a6832954a 100644 --- a/cmd/parse/bank/supply.go +++ b/cmd/parse/bank/supply.go @@ -3,14 +3,13 @@ package bank import ( "fmt" - modulestypes "github.com/forbole/callisto/v4/modules/types" - - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/types/config" - "github.com/spf13/cobra" - "github.com/forbole/callisto/v4/database" "github.com/forbole/callisto/v4/modules/bank" + modulestypes "github.com/forbole/callisto/v4/modules/types" + "github.com/forbole/callisto/v4/utils" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/types/config" + "github.com/spf13/cobra" ) // supplyCmd returns the Cobra command allowing to refresh x/bank total supply @@ -24,7 +23,7 @@ func supplyCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { return err } - sources, err := modulestypes.BuildSources(config.Cfg.Node, parseCtx.EncodingConfig) + sources, err := modulestypes.BuildSources(config.Cfg.Node, utils.GetCodec()) if err != nil { return err } @@ -33,7 +32,7 @@ func supplyCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { db := database.Cast(parseCtx.Database) // Build bank module - bankModule := bank.NewModule(nil, sources.BankSource, parseCtx.EncodingConfig.Codec, db) + bankModule := bank.NewModule(nil, sources.BankSource, utils.GetCodec(), db, config.Cfg.Chain.Bech32Prefix) err = bankModule.UpdateSupply() if err != nil { diff --git a/cmd/parse/dex/cmd.go b/cmd/parse/dex/cmd.go new file mode 100644 index 000000000..0d8a90938 --- /dev/null +++ b/cmd/parse/dex/cmd.go @@ -0,0 +1,20 @@ +package dex + +import ( + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/spf13/cobra" +) + +// NewDexCmd returns the Cobra command allowing to fix various things related to the x/dex module +func NewDexCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { + cmd := &cobra.Command{ + Use: "dex", + Short: "Fix things related to the x/dex module", + } + + cmd.AddCommand( + paramsCmd(parseConfig), + ) + + return cmd +} diff --git a/cmd/parse/dex/params.go b/cmd/parse/dex/params.go new file mode 100644 index 000000000..d3cecc9c2 --- /dev/null +++ b/cmd/parse/dex/params.go @@ -0,0 +1,55 @@ +package dex + +import ( + "github.com/cosmos/cosmos-sdk/codec" + "github.com/forbole/callisto/v4/database" + "github.com/forbole/callisto/v4/modules/dex" + modulestypes "github.com/forbole/callisto/v4/modules/types" + "github.com/forbole/callisto/v4/utils" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/types/config" + "github.com/spf13/cobra" +) + +func paramsCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { + return &cobra.Command{ + Use: "params", + Short: "Get the current parameters of the dex module", + RunE: func(cmd *cobra.Command, args []string) error { + parseCtx, err := parsecmdtypes.GetParserContext(config.Cfg, parseConfig) + if err != nil { + return err + } + + cdc := utils.GetCodec() + sources, err := modulestypes.BuildSources(config.Cfg.Node, cdc) + if err != nil { + return err + } + + // Get the database + db := database.Cast(parseCtx.Database) + dexModule := buildDEXModule(sources, cdc, db) + height, err := parseCtx.Node.LatestHeight() + if err != nil { + return err + } + + return dexModule.UpdateParams(height) + }, + } +} + +func buildDEXModule( + sources *modulestypes.Sources, + cdc codec.Codec, + db *database.Db, +) *dex.Module { + // Build the dex module + dexModule := dex.NewModule( + sources.DEXSource, + cdc, + db, + ) + return dexModule +} diff --git a/cmd/parse/distribution/cmd.go b/cmd/parse/distribution/cmd.go index 086a9fe99..5d664bc89 100644 --- a/cmd/parse/distribution/cmd.go +++ b/cmd/parse/distribution/cmd.go @@ -1,7 +1,7 @@ package distribution import ( - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" "github.com/spf13/cobra" ) diff --git a/cmd/parse/distribution/communitypool.go b/cmd/parse/distribution/communitypool.go index f1f4dbdd8..f0907d696 100644 --- a/cmd/parse/distribution/communitypool.go +++ b/cmd/parse/distribution/communitypool.go @@ -3,13 +3,13 @@ package distribution import ( "fmt" - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/types/config" - "github.com/spf13/cobra" - "github.com/forbole/callisto/v4/database" "github.com/forbole/callisto/v4/modules/distribution" modulestypes "github.com/forbole/callisto/v4/modules/types" + "github.com/forbole/callisto/v4/utils" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/types/config" + "github.com/spf13/cobra" ) // communityPoolCmd returns the Cobra command allowing to refresh community pool @@ -23,7 +23,7 @@ func communityPoolCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { return err } - sources, err := modulestypes.BuildSources(config.Cfg.Node, parseCtx.EncodingConfig) + sources, err := modulestypes.BuildSources(config.Cfg.Node, utils.GetCodec()) if err != nil { return err } @@ -32,7 +32,7 @@ func communityPoolCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { db := database.Cast(parseCtx.Database) // Build distribution module - distrModule := distribution.NewModule(sources.DistrSource, parseCtx.EncodingConfig.Codec, db) + distrModule := distribution.NewModule(sources.DistrSource, utils.GetCodec(), db) err = distrModule.GetLatestCommunityPool() if err != nil { diff --git a/cmd/parse/feegrant/allowance.go b/cmd/parse/feegrant/allowance.go index f359ce64b..48414bf2f 100644 --- a/cmd/parse/feegrant/allowance.go +++ b/cmd/parse/feegrant/allowance.go @@ -5,20 +5,15 @@ import ( "fmt" "sort" - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/types/config" - + feegranttypes "cosmossdk.io/x/feegrant" + tmctypes "github.com/cometbft/cometbft/rpc/core/types" + "github.com/forbole/callisto/v4/database" "github.com/forbole/callisto/v4/modules/feegrant" "github.com/forbole/callisto/v4/utils" - - "github.com/spf13/cobra" - - "github.com/forbole/callisto/v4/database" - - tmctypes "github.com/cometbft/cometbft/rpc/core/types" - - feegranttypes "github.com/cosmos/cosmos-sdk/x/feegrant" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/types/config" "github.com/rs/zerolog/log" + "github.com/spf13/cobra" ) // allowanceCmd returns the Cobra command allowing to fix all things related to fee grant allowance @@ -36,7 +31,7 @@ func allowanceCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { db := database.Cast(parseCtx.Database) // Build feegrant module - feegrantModule := feegrant.NewModule(parseCtx.EncodingConfig.Codec, db) + feegrantModule := feegrant.NewModule(utils.GetCodec(), db) // Get the accounts // Collect all the transactions @@ -71,15 +66,15 @@ func allowanceCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { } // Handle only the MsgGrantAllowance and MsgRevokeAllowance instances - for index, msg := range transaction.GetMsgs() { - _, isMsgGrantAllowance := msg.(*feegranttypes.MsgGrantAllowance) - _, isMsgRevokeAllowance := msg.(*feegranttypes.MsgRevokeAllowance) + for index, sdkMsg := range transaction.GetMsgs() { + _, isMsgGrantAllowance := sdkMsg.(*feegranttypes.MsgGrantAllowance) + _, isMsgRevokeAllowance := sdkMsg.(*feegranttypes.MsgRevokeAllowance) if !isMsgGrantAllowance && !isMsgRevokeAllowance { continue } - err = feegrantModule.HandleMsg(index, msg, transaction) + err = feegrantModule.HandleMsg(index, transaction.Body.Messages[index], transaction) if err != nil { return fmt.Errorf("error while handling feegrant module message: %s", err) } diff --git a/cmd/parse/feegrant/cmd.go b/cmd/parse/feegrant/cmd.go index d08909c4f..59405e32a 100644 --- a/cmd/parse/feegrant/cmd.go +++ b/cmd/parse/feegrant/cmd.go @@ -1,7 +1,7 @@ package feegrant import ( - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" "github.com/spf13/cobra" ) diff --git a/cmd/parse/gov/cmd.go b/cmd/parse/gov/cmd.go index d1536a7ef..e4bc204ac 100644 --- a/cmd/parse/gov/cmd.go +++ b/cmd/parse/gov/cmd.go @@ -1,20 +1,22 @@ package gov import ( - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" + "github.com/forbole/callisto/v4/modules" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/modules/messages" "github.com/spf13/cobra" ) // NewGovCmd returns the Cobra command allowing to fix various things related to the x/gov module -func NewGovCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { +func NewGovCmd(parseConfig *parsecmdtypes.Config, parser messages.MessageAddressesParser) *cobra.Command { cmd := &cobra.Command{ Use: "gov", Short: "Fix things related to the x/gov module", } cmd.AddCommand( - proposalCmd(parseConfig), - paramsCmd(parseConfig), + proposalCmd(parseConfig, modules.UniqueAddressesParser(parser)), + paramsCmd(parseConfig, modules.UniqueAddressesParser(parser)), ) return cmd diff --git a/cmd/parse/gov/params.go b/cmd/parse/gov/params.go index 55edda0d8..55db3bdb1 100644 --- a/cmd/parse/gov/params.go +++ b/cmd/parse/gov/params.go @@ -1,20 +1,28 @@ package gov import ( - "github.com/spf13/cobra" - + "github.com/cosmos/cosmos-sdk/codec" "github.com/forbole/callisto/v4/database" + "github.com/forbole/callisto/v4/modules/assetft" + "github.com/forbole/callisto/v4/modules/assetnft" + "github.com/forbole/callisto/v4/modules/auth" + "github.com/forbole/callisto/v4/modules/customparams" + "github.com/forbole/callisto/v4/modules/dex" "github.com/forbole/callisto/v4/modules/distribution" + "github.com/forbole/callisto/v4/modules/feemodel" "github.com/forbole/callisto/v4/modules/gov" "github.com/forbole/callisto/v4/modules/mint" "github.com/forbole/callisto/v4/modules/slashing" "github.com/forbole/callisto/v4/modules/staking" modulestypes "github.com/forbole/callisto/v4/modules/types" - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/types/config" + "github.com/forbole/callisto/v4/utils" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/modules/messages" + "github.com/forbole/juno/v6/types/config" + "github.com/spf13/cobra" ) -func paramsCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { +func paramsCmd(parseConfig *parsecmdtypes.Config, messageAddressParser messages.MessageAddressesParser) *cobra.Command { return &cobra.Command{ Use: "params", Short: "Get the current parameters of the gov module", @@ -24,23 +32,15 @@ func paramsCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { return err } - sources, err := modulestypes.BuildSources(config.Cfg.Node, parseCtx.EncodingConfig) + cdc := utils.GetCodec() + sources, err := modulestypes.BuildSources(config.Cfg.Node, cdc) if err != nil { return err } // Get the database db := database.Cast(parseCtx.Database) - - // Build expected modules of gov modules - distrModule := distribution.NewModule(sources.DistrSource, parseCtx.EncodingConfig.Codec, db) - mintModule := mint.NewModule(sources.MintSource, parseCtx.EncodingConfig.Codec, db) - slashingModule := slashing.NewModule(sources.SlashingSource, parseCtx.EncodingConfig.Codec, db) - stakingModule := staking.NewModule(sources.StakingSource, parseCtx.EncodingConfig.Codec, db) - - // Build the gov module - govModule := gov.NewModule(sources.GovSource, distrModule, mintModule, slashingModule, stakingModule, parseCtx.EncodingConfig.Codec, db) - + govModule := buildGovModule(sources, messageAddressParser, cdc, db) height, err := parseCtx.Node.LatestHeight() if err != nil { return err @@ -50,3 +50,40 @@ func paramsCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { }, } } + +func buildGovModule( + sources *modulestypes.Sources, + messageAddressParser messages.MessageAddressesParser, + cdc codec.Codec, + db *database.Db, +) *gov.Module { + // Build expected modules of gov modules for handleParamChangeProposal + authModule := auth.NewModule(sources.AuthSource, messageAddressParser, cdc, db) + distrModule := distribution.NewModule(sources.DistrSource, cdc, db) + mintModule := mint.NewModule(sources.MintSource, cdc, db) + slashingModule := slashing.NewModule(sources.SlashingSource, cdc, db) + stakingModule := staking.NewModule(sources.StakingSource, cdc, db) + feeModelModule := feemodel.NewModule(sources.FeeModelSource, cdc, db) + customParamsModule := customparams.NewModule(sources.CustomParamsSource, cdc, db) + assetFTModule := assetft.NewModule(sources.AssetFTSource, cdc, db) + assetNFTModule := assetnft.NewModule(sources.AssetNFTSource, cdc, db) + dexModule := dex.NewModule(sources.DEXSource, cdc, db) + + // Build the gov module + govModule := gov.NewModule( + sources.GovSource, + authModule, + distrModule, + mintModule, + slashingModule, + stakingModule, + feeModelModule, + customParamsModule, + assetFTModule, + assetNFTModule, + dexModule, + cdc, + db, + ) + return govModule +} diff --git a/cmd/parse/gov/proposal.go b/cmd/parse/gov/proposal.go index 899455972..cbf6eb327 100644 --- a/cmd/parse/gov/proposal.go +++ b/cmd/parse/gov/proposal.go @@ -5,28 +5,22 @@ import ( "fmt" "strconv" - "github.com/rs/zerolog/log" - - modulestypes "github.com/forbole/callisto/v4/modules/types" - govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/parser" - "github.com/forbole/juno/v5/types/config" - "github.com/spf13/cobra" - "github.com/forbole/callisto/v4/database" - "github.com/forbole/callisto/v4/modules/distribution" "github.com/forbole/callisto/v4/modules/gov" - "github.com/forbole/callisto/v4/modules/mint" - "github.com/forbole/callisto/v4/modules/slashing" - "github.com/forbole/callisto/v4/modules/staking" + modulestypes "github.com/forbole/callisto/v4/modules/types" "github.com/forbole/callisto/v4/utils" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/modules/messages" + "github.com/forbole/juno/v6/parser" + "github.com/forbole/juno/v6/types/config" + "github.com/rs/zerolog/log" + "github.com/spf13/cobra" ) // proposalCmd returns the Cobra command allowing to fix all things related to a proposal -func proposalCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { +func proposalCmd(parseConfig *parsecmdtypes.Config, messageAddressParser messages.MessageAddressesParser) *cobra.Command { return &cobra.Command{ Use: "proposal [id]", Short: "Get the description, votes and everything related to a proposal given its id", @@ -41,22 +35,15 @@ func proposalCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { return err } - sources, err := modulestypes.BuildSources(config.Cfg.Node, parseCtx.EncodingConfig) + cdc := utils.GetCodec() + sources, err := modulestypes.BuildSources(config.Cfg.Node, cdc) if err != nil { return err } // Get the database db := database.Cast(parseCtx.Database) - - // Build expected modules of gov modules for handleParamChangeProposal - distrModule := distribution.NewModule(sources.DistrSource, parseCtx.EncodingConfig.Codec, db) - mintModule := mint.NewModule(sources.MintSource, parseCtx.EncodingConfig.Codec, db) - slashingModule := slashing.NewModule(sources.SlashingSource, parseCtx.EncodingConfig.Codec, db) - stakingModule := staking.NewModule(sources.StakingSource, parseCtx.EncodingConfig.Codec, db) - - // Build the gov module - govModule := gov.NewModule(sources.GovSource, distrModule, mintModule, slashingModule, stakingModule, parseCtx.EncodingConfig.Codec, db) + govModule := buildGovModule(sources, messageAddressParser, cdc, db) err = refreshProposalDetails(parseCtx, proposalID, govModule) if err != nil { @@ -125,10 +112,9 @@ func refreshProposalDetails(parseCtx *parser.Context, proposalID uint64, govModu // Handle the MsgSubmitProposal messages for index, msg := range tx.GetMsgs() { - switch msg.(type) { case *govtypesv1.MsgSubmitProposal, *govtypesv1beta1.MsgSubmitProposal: - err = govModule.HandleMsg(index, msg, tx) + err = govModule.HandleMsg(index, tx.Body.Messages[index], tx) if err != nil { return fmt.Errorf("error while handling MsgSubmitProposal: %s", err) } @@ -158,7 +144,7 @@ func refreshProposalDeposits(parseCtx *parser.Context, proposalID uint64, govMod for index, msg := range junoTx.GetMsgs() { switch msg.(type) { case *govtypesv1.MsgDeposit, *govtypesv1beta1.MsgDeposit: - err = govModule.HandleMsg(index, msg, junoTx) + err = govModule.HandleMsg(index, junoTx.Body.Messages[index], junoTx) if err != nil { return fmt.Errorf("error while handling MsgDeposit: %s", err) } @@ -212,7 +198,7 @@ func refreshProposalVotes(parseCtx *parser.Context, proposalID uint64, govModule // for different proposals which can cause error if one of the proposals // info is not stored in database if proposalID == msgProposalID { - err = govModule.HandleMsg(index, msg, junoTx) + err = govModule.HandleMsg(index, junoTx.Body.Messages[index], junoTx) if err != nil { return fmt.Errorf("error while handling MsgVote: %s", err) } diff --git a/cmd/parse/mint/cmd.go b/cmd/parse/mint/cmd.go index 5c45f1faf..571da8f4b 100644 --- a/cmd/parse/mint/cmd.go +++ b/cmd/parse/mint/cmd.go @@ -1,7 +1,7 @@ package mint import ( - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" "github.com/spf13/cobra" ) diff --git a/cmd/parse/mint/inflation.go b/cmd/parse/mint/inflation.go index 547085f85..384805244 100644 --- a/cmd/parse/mint/inflation.go +++ b/cmd/parse/mint/inflation.go @@ -3,13 +3,13 @@ package mint import ( "fmt" - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/types/config" - "github.com/spf13/cobra" - "github.com/forbole/callisto/v4/database" "github.com/forbole/callisto/v4/modules/mint" modulestypes "github.com/forbole/callisto/v4/modules/types" + "github.com/forbole/callisto/v4/utils" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/types/config" + "github.com/spf13/cobra" ) // inflationCmd returns the Cobra command allowing to refresh x/mint inflation @@ -23,7 +23,8 @@ func inflationCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { return err } - sources, err := modulestypes.BuildSources(config.Cfg.Node, parseCtx.EncodingConfig) + cdc := utils.GetCodec() + sources, err := modulestypes.BuildSources(config.Cfg.Node, cdc) if err != nil { return err } @@ -32,7 +33,7 @@ func inflationCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { db := database.Cast(parseCtx.Database) // Build mint module - mintModule := mint.NewModule(sources.MintSource, parseCtx.EncodingConfig.Codec, db) + mintModule := mint.NewModule(sources.MintSource, cdc, db) err = mintModule.UpdateInflation() if err != nil { diff --git a/cmd/parse/parse.go b/cmd/parse/parse.go index be483521b..869ef6904 100644 --- a/cmd/parse/parse.go +++ b/cmd/parse/parse.go @@ -1,27 +1,25 @@ package parse import ( - parse "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/spf13/cobra" - - parseblocks "github.com/forbole/juno/v5/cmd/parse/blocks" - - parsegenesis "github.com/forbole/juno/v5/cmd/parse/genesis" - - parsetransaction "github.com/forbole/juno/v5/cmd/parse/transactions" - parseauth "github.com/forbole/callisto/v4/cmd/parse/auth" parsebank "github.com/forbole/callisto/v4/cmd/parse/bank" + parsedex "github.com/forbole/callisto/v4/cmd/parse/dex" parsedistribution "github.com/forbole/callisto/v4/cmd/parse/distribution" parsefeegrant "github.com/forbole/callisto/v4/cmd/parse/feegrant" parsegov "github.com/forbole/callisto/v4/cmd/parse/gov" parsemint "github.com/forbole/callisto/v4/cmd/parse/mint" parsepricefeed "github.com/forbole/callisto/v4/cmd/parse/pricefeed" parsestaking "github.com/forbole/callisto/v4/cmd/parse/staking" + parseblocks "github.com/forbole/juno/v6/cmd/parse/blocks" + parsegenesis "github.com/forbole/juno/v6/cmd/parse/genesis" + parsetransaction "github.com/forbole/juno/v6/cmd/parse/transactions" + parse "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/modules/messages" + "github.com/spf13/cobra" ) // NewParseCmd returns the Cobra command allowing to parse some chain data without having to re-sync the whole database -func NewParseCmd(parseCfg *parse.Config) *cobra.Command { +func NewParseCmd(parseCfg *parse.Config, parser messages.MessageAddressesParser) *cobra.Command { cmd := &cobra.Command{ Use: "parse", Short: "Parse some data without the need to re-syncing the whole database from scratch", @@ -35,11 +33,12 @@ func NewParseCmd(parseCfg *parse.Config) *cobra.Command { parsedistribution.NewDistributionCmd(parseCfg), parsefeegrant.NewFeegrantCmd(parseCfg), parsegenesis.NewGenesisCmd(parseCfg), - parsegov.NewGovCmd(parseCfg), + parsegov.NewGovCmd(parseCfg, parser), parsemint.NewMintCmd(parseCfg), parsepricefeed.NewPricefeedCmd(parseCfg), parsestaking.NewStakingCmd(parseCfg), parsetransaction.NewTransactionsCmd(parseCfg), + parsedex.NewDexCmd(parseCfg), ) return cmd diff --git a/cmd/parse/pricefeed/cmd.go b/cmd/parse/pricefeed/cmd.go index 51e705cf7..53d67b417 100644 --- a/cmd/parse/pricefeed/cmd.go +++ b/cmd/parse/pricefeed/cmd.go @@ -1,7 +1,7 @@ package pricefeed import ( - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" "github.com/spf13/cobra" ) diff --git a/cmd/parse/pricefeed/price.go b/cmd/parse/pricefeed/price.go index 308719d4a..70e8fc781 100644 --- a/cmd/parse/pricefeed/price.go +++ b/cmd/parse/pricefeed/price.go @@ -3,12 +3,12 @@ package pricefeed import ( "fmt" - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/types/config" - "github.com/spf13/cobra" - "github.com/forbole/callisto/v4/database" "github.com/forbole/callisto/v4/modules/pricefeed" + "github.com/forbole/callisto/v4/utils" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/types/config" + "github.com/spf13/cobra" ) // priceCmd returns the Cobra command allowing to refresh token price @@ -22,11 +22,13 @@ func priceCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { return err } + cdc := utils.GetCodec() + // Get the database db := database.Cast(parseCtx.Database) // Build pricefeed module - pricefeedModule := pricefeed.NewModule(config.Cfg, parseCtx.EncodingConfig.Codec, db) + pricefeedModule := pricefeed.NewModule(config.Cfg, cdc, db) err = pricefeedModule.RunAdditionalOperations() if err != nil { diff --git a/cmd/parse/pricefeed/pricehistory.go b/cmd/parse/pricefeed/pricehistory.go index aa4b210df..bf5b5e609 100644 --- a/cmd/parse/pricefeed/pricehistory.go +++ b/cmd/parse/pricefeed/pricehistory.go @@ -3,12 +3,12 @@ package pricefeed import ( "fmt" - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/types/config" - "github.com/spf13/cobra" - "github.com/forbole/callisto/v4/database" "github.com/forbole/callisto/v4/modules/pricefeed" + "github.com/forbole/callisto/v4/utils" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/types/config" + "github.com/spf13/cobra" ) // priceHistoryCmd returns the Cobra command allowing to store token price history @@ -22,11 +22,13 @@ func priceHistoryCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { return err } + cdc := utils.GetCodec() + // Get the database db := database.Cast(parseCtx.Database) // Build pricefeed module - pricefeedModule := pricefeed.NewModule(config.Cfg, parseCtx.EncodingConfig.Codec, db) + pricefeedModule := pricefeed.NewModule(config.Cfg, cdc, db) err = pricefeedModule.RunAdditionalOperations() if err != nil { diff --git a/cmd/parse/staking/cmd.go b/cmd/parse/staking/cmd.go index 7f0792f18..770401a97 100644 --- a/cmd/parse/staking/cmd.go +++ b/cmd/parse/staking/cmd.go @@ -1,7 +1,7 @@ package staking import ( - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" "github.com/spf13/cobra" ) diff --git a/cmd/parse/staking/staking.go b/cmd/parse/staking/staking.go index ff476e8e2..ae9826416 100644 --- a/cmd/parse/staking/staking.go +++ b/cmd/parse/staking/staking.go @@ -3,13 +3,13 @@ package staking import ( "fmt" - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/types/config" - "github.com/spf13/cobra" - "github.com/forbole/callisto/v4/database" "github.com/forbole/callisto/v4/modules/staking" modulestypes "github.com/forbole/callisto/v4/modules/types" + "github.com/forbole/callisto/v4/utils" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/types/config" + "github.com/spf13/cobra" ) // poolCmd returns the Cobra command allowing to refresh x/staking pool @@ -23,7 +23,9 @@ func poolCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { return err } - sources, err := modulestypes.BuildSources(config.Cfg.Node, parseCtx.EncodingConfig) + cdc := utils.GetCodec() + + sources, err := modulestypes.BuildSources(config.Cfg.Node, cdc) if err != nil { return err } @@ -32,7 +34,7 @@ func poolCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { db := database.Cast(parseCtx.Database) // Build staking module - stakingModule := staking.NewModule(sources.StakingSource, parseCtx.EncodingConfig.Codec, db) + stakingModule := staking.NewModule(sources.StakingSource, cdc, db) err = stakingModule.UpdateStakingPool() if err != nil { diff --git a/cmd/parse/staking/validators.go b/cmd/parse/staking/validators.go index 7f74209d6..f3f7eeb20 100644 --- a/cmd/parse/staking/validators.go +++ b/cmd/parse/staking/validators.go @@ -3,14 +3,13 @@ package staking import ( "fmt" - modulestypes "github.com/forbole/callisto/v4/modules/types" - - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" - "github.com/forbole/juno/v5/types/config" - "github.com/spf13/cobra" - "github.com/forbole/callisto/v4/database" "github.com/forbole/callisto/v4/modules/staking" + modulestypes "github.com/forbole/callisto/v4/modules/types" + "github.com/forbole/callisto/v4/utils" + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/types/config" + "github.com/spf13/cobra" ) // validatorsCmd returns a Cobra command that allows to fix the validator infos for all validators. @@ -24,7 +23,9 @@ func validatorsCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { return err } - sources, err := modulestypes.BuildSources(config.Cfg.Node, parseCtx.EncodingConfig) + cdc := utils.GetCodec() + + sources, err := modulestypes.BuildSources(config.Cfg.Node, cdc) if err != nil { return err } @@ -33,7 +34,7 @@ func validatorsCmd(parseConfig *parsecmdtypes.Config) *cobra.Command { db := database.Cast(parseCtx.Database) // Build the staking module - stakingModule := staking.NewModule(sources.StakingSource, parseCtx.EncodingConfig.Codec, db) + stakingModule := staking.NewModule(sources.StakingSource, cdc, db) // Get latest height height, err := parseCtx.Node.LatestHeight() diff --git a/config-sample.yaml b/config-sample.yaml new file mode 100644 index 000000000..80ec442ac --- /dev/null +++ b/config-sample.yaml @@ -0,0 +1,65 @@ +chain: + bech32_prefix: YOUR_CHAIN_ACC_PREFIX + modules: + - addresses + - assetft + - assetnft + - auth + - bank + - consensus + - customparams + - daily refetch + - dex + - distribution + - feegrant + - feemodel + - gov + - mint + - pricefeed + - slashing + - staking + - telemetry + - upgrade + +node: + type: remote + config: + rpc: + client_name: juno + address: http://YOUR_NODE_IP:26657 + max_connections: 20 + grpc: + address: YOUR_NODE_IP:9090 + insecure: true + api: + address: http://YOUR_NODE_IP:1317 +parsing: + workers: 20 + start_height: 1 + average_block_time: 5s + listen_new_blocks: true + parse_old_blocks: true + parse_genesis: true + genesis_file_path: ".callisto/genesis.json" +database: + url: postgresql://postgres:password@localhost:5432/?sslmode=disable&search_path=public + max_open_connections: 10 + max_idle_connections: 10 + partition_size: 100000 + partition_batch: 1000 + ssl_mode_enable: "false" + ssl_root_cert: "" + ssl_cert: "" + ssl_key: "" +logging: + level: debug + format: text +actions: + port: 3000 +pricefeed: + tokens: + - name: coreum + units: + - denom: coreum + exponent: 6 + price_id: coreum \ No newline at end of file diff --git a/database/assetft_params.go b/database/assetft_params.go new file mode 100644 index 000000000..49ab95909 --- /dev/null +++ b/database/assetft_params.go @@ -0,0 +1,59 @@ +package database + +import ( + "encoding/json" + "fmt" + + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" + + assetfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/ft/types" +) + +// SaveAssetFTParams allows to store the given params into the database. +func (db *Db) SaveAssetFTParams(params types.AssetFTParams) error { + paramsBz, err := json.Marshal(¶ms.Params) + if err != nil { + return fmt.Errorf("error while marshaling assetft params: %s", err) + } + + stmt := ` +INSERT INTO assetft_params (params, height) +VALUES ($1, $2) +ON CONFLICT (one_row_id) DO UPDATE + SET params = excluded.params, + height = excluded.height +WHERE assetft_params.height <= excluded.height` + + _, err = db.SQL.Exec(stmt, string(paramsBz), params.Height) + if err != nil { + return fmt.Errorf("error while storing assetft params: %s", err) + } + + return nil +} + +// GetAssetFTParams returns the types.AssetFTParams instance containing the current params +func (db *Db) GetAssetFTParams() (*types.AssetFTParams, error) { + var rows []dbtypes.AssetFTParamsRow + stmt := `SELECT * FROM assetft_params LIMIT 1` + err := db.Sqlx.Select(&rows, stmt) + if err != nil { + return nil, err + } + + if len(rows) == 0 { + return nil, fmt.Errorf("no assetft params found") + } + + var assetftParams assetfttypes.Params + err = json.Unmarshal([]byte(rows[0].Params), &assetftParams) + if err != nil { + return nil, err + } + + return &types.AssetFTParams{ + Params: assetftParams, + Height: rows[0].Height, + }, nil +} diff --git a/database/assetft_params_test.go b/database/assetft_params_test.go new file mode 100644 index 000000000..343828869 --- /dev/null +++ b/database/assetft_params_test.go @@ -0,0 +1,48 @@ +package database_test + +import ( + "encoding/json" + + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" + + assetfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/ft/types" +) + +func (suite *DbTestSuite) TestSaveAssetFTParams() { + assetFTParams := assetfttypes.DefaultParams() + err := suite.database.SaveAssetFTParams(types.NewAssetFTParams(assetFTParams, 10)) + suite.Require().NoError(err) + + var rows []dbtypes.AssetFTParamsRow + err = suite.database.Sqlx.Select(&rows, `SELECT * FROM assetft_params`) + suite.Require().NoError(err) + + suite.Require().Len(rows, 1) + + var stored assetfttypes.Params + err = json.Unmarshal([]byte(rows[0].Params), &stored) + suite.Require().NoError(err) + suite.Require().Equal(assetFTParams, stored) +} + +func (suite *DbTestSuite) TestGetAssetFTParams() { + assetFTParams := assetfttypes.DefaultParams() + + paramsBz, err := json.Marshal(&assetFTParams) + suite.Require().NoError(err) + + _, err = suite.database.SQL.Exec( + `INSERT INTO assetft_params (params, height) VALUES ($1, $2)`, + string(paramsBz), 10, + ) + suite.Require().NoError(err) + + params, err := suite.database.GetAssetFTParams() + suite.Require().NoError(err) + + suite.Require().Equal(&types.AssetFTParams{ + Params: assetFTParams, + Height: 10, + }, params) +} diff --git a/database/assetnft_params.go b/database/assetnft_params.go new file mode 100644 index 000000000..0ef7a41b9 --- /dev/null +++ b/database/assetnft_params.go @@ -0,0 +1,59 @@ +package database + +import ( + "encoding/json" + "fmt" + + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" + + assetnfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/nft/types" +) + +// SaveAssetNFTParams allows to store the given params into the database. +func (db *Db) SaveAssetNFTParams(params types.AssetNFTParams) error { + paramsBz, err := json.Marshal(¶ms.Params) + if err != nil { + return fmt.Errorf("error while marshaling assetnft params: %s", err) + } + + stmt := ` +INSERT INTO assetnft_params (params, height) +VALUES ($1, $2) +ON CONFLICT (one_row_id) DO UPDATE + SET params = excluded.params, + height = excluded.height +WHERE assetnft_params.height <= excluded.height` + + _, err = db.SQL.Exec(stmt, string(paramsBz), params.Height) + if err != nil { + return fmt.Errorf("error while storing assetnft params: %s", err) + } + + return nil +} + +// GetAssetNFTParams returns the types.AssetNFTParams instance containing the current params +func (db *Db) GetAssetNFTParams() (*types.AssetNFTParams, error) { + var rows []dbtypes.AssetNFTParamsRow + stmt := `SELECT * FROM assetnft_params LIMIT 1` + err := db.Sqlx.Select(&rows, stmt) + if err != nil { + return nil, err + } + + if len(rows) == 0 { + return nil, fmt.Errorf("no assetnft params found") + } + + var assetnftParams assetnfttypes.Params + err = json.Unmarshal([]byte(rows[0].Params), &assetnftParams) + if err != nil { + return nil, err + } + + return &types.AssetNFTParams{ + Params: assetnftParams, + Height: rows[0].Height, + }, nil +} diff --git a/database/assetnft_params_test.go b/database/assetnft_params_test.go new file mode 100644 index 000000000..20f354818 --- /dev/null +++ b/database/assetnft_params_test.go @@ -0,0 +1,48 @@ +package database_test + +import ( + "encoding/json" + + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" + + assetnfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/nft/types" +) + +func (suite *DbTestSuite) TestSaveAssetNFTParams() { + assetNFTParams := assetnfttypes.DefaultParams() + err := suite.database.SaveAssetNFTParams(types.NewAssetNFTParams(assetNFTParams, 10)) + suite.Require().NoError(err) + + var rows []dbtypes.AssetNFTParamsRow + err = suite.database.Sqlx.Select(&rows, `SELECT * FROM assetnft_params`) + suite.Require().NoError(err) + + suite.Require().Len(rows, 1) + + var stored assetnfttypes.Params + err = json.Unmarshal([]byte(rows[0].Params), &stored) + suite.Require().NoError(err) + suite.Require().Equal(assetNFTParams, stored) +} + +func (suite *DbTestSuite) TestGetAssetNFTParams() { + assetNFTParams := assetnfttypes.DefaultParams() + + paramsBz, err := json.Marshal(&assetNFTParams) + suite.Require().NoError(err) + + _, err = suite.database.SQL.Exec( + `INSERT INTO assetnft_params (params, height) VALUES ($1, $2)`, + string(paramsBz), 10, + ) + suite.Require().NoError(err) + + params, err := suite.database.GetAssetNFTParams() + suite.Require().NoError(err) + + suite.Require().Equal(&types.AssetNFTParams{ + Params: assetNFTParams, + Height: 10, + }, params) +} diff --git a/database/auth.go b/database/auth.go index 88745c594..b9e4da5cb 100644 --- a/database/auth.go +++ b/database/auth.go @@ -7,12 +7,10 @@ import ( "github.com/cosmos/cosmos-sdk/x/auth/vesting/exported" vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" "github.com/cosmos/gogoproto/proto" - "github.com/lib/pq" - dbtypes "github.com/forbole/callisto/v4/database/types" dbutils "github.com/forbole/callisto/v4/database/utils" - "github.com/forbole/callisto/v4/types" + "github.com/lib/pq" ) // SaveAccounts saves the given accounts inside the database diff --git a/database/auth_params.go b/database/auth_params.go new file mode 100644 index 000000000..726fcdce1 --- /dev/null +++ b/database/auth_params.go @@ -0,0 +1,58 @@ +package database + +import ( + "encoding/json" + "fmt" + + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" +) + +// SaveAuthParams allows to store the given params into the database. +func (db *Db) SaveAuthParams(params types.AuthParams) error { + paramsBz, err := json.Marshal(¶ms.Params) + if err != nil { + return fmt.Errorf("error while marshaling auth params: %s", err) + } + + stmt := ` +INSERT INTO auth_params (params, height) +VALUES ($1, $2) +ON CONFLICT (one_row_id) DO UPDATE + SET params = excluded.params, + height = excluded.height +WHERE auth_params.height <= excluded.height` + + _, err = db.SQL.Exec(stmt, string(paramsBz), params.Height) + if err != nil { + return fmt.Errorf("error while storing auth params: %s", err) + } + + return nil +} + +// GetAuthParams returns the types.AuthParams instance containing the current params +func (db *Db) GetAuthParams() (*types.AuthParams, error) { + var rows []dbtypes.AuthParamsRow + stmt := `SELECT * FROM auth_params LIMIT 1` + err := db.Sqlx.Select(&rows, stmt) + if err != nil { + return nil, err + } + + if len(rows) == 0 { + return nil, fmt.Errorf("no auth params found") + } + + var authParams authtypes.Params + err = json.Unmarshal([]byte(rows[0].Params), &authParams) + if err != nil { + return nil, err + } + + return &types.AuthParams{ + Params: authParams, + Height: rows[0].Height, + }, nil +} diff --git a/database/auth_params_test.go b/database/auth_params_test.go new file mode 100644 index 000000000..6c3698f1c --- /dev/null +++ b/database/auth_params_test.go @@ -0,0 +1,47 @@ +package database_test + +import ( + "encoding/json" + + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" +) + +func (suite *DbTestSuite) TestSaveAuthParams() { + authParams := authtypes.DefaultParams() + err := suite.database.SaveAuthParams(types.NewAuthParams(authParams, 10)) + suite.Require().NoError(err) + + var rows []dbtypes.AuthParamsRow + err = suite.database.Sqlx.Select(&rows, `SELECT * FROM auth_params`) + suite.Require().NoError(err) + + suite.Require().Len(rows, 1) + + var stored authtypes.Params + err = json.Unmarshal([]byte(rows[0].Params), &stored) + suite.Require().NoError(err) + suite.Require().Equal(authParams, stored) +} + +func (suite *DbTestSuite) TestGetAuthParams() { + authParams := authtypes.DefaultParams() + + paramsBz, err := json.Marshal(&authParams) + suite.Require().NoError(err) + + _, err = suite.database.SQL.Exec( + `INSERT INTO auth_params (params, height) VALUES ($1, $2)`, + string(paramsBz), 10, + ) + suite.Require().NoError(err) + + params, err := suite.database.GetAuthParams() + suite.Require().NoError(err) + + suite.Require().Equal(&types.AuthParams{ + Params: authParams, + Height: 10, + }, params) +} diff --git a/database/auth_test.go b/database/auth_test.go index 96014ddf5..599029c33 100644 --- a/database/auth_test.go +++ b/database/auth_test.go @@ -3,10 +3,8 @@ package database_test import ( sdk "github.com/cosmos/cosmos-sdk/types" authttypes "github.com/cosmos/cosmos-sdk/x/auth/types" - - "github.com/forbole/callisto/v4/types" - dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" ) func (suite *DbTestSuite) TestSaveAccount() { diff --git a/database/bank.go b/database/bank.go index 91bfa3cab..170496c19 100644 --- a/database/bank.go +++ b/database/bank.go @@ -3,9 +3,9 @@ package database import ( "fmt" - dbtypes "github.com/forbole/callisto/v4/database/types" - sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/forbole/callisto/v4/database/types" + dbtypes "github.com/forbole/callisto/v4/database/types" "github.com/lib/pq" ) @@ -26,3 +26,40 @@ WHERE supply.height <= excluded.height` return nil } + +// GetAccountDenomBalance allows to save the balance of an account for a given denom. +func (db *Db) GetAccountDenomBalance(account, denom string) (types.AccountBalance, bool, error) { + var vals []types.AccountBalance + query := ` +SELECT address, denom, amount, height FROM account_denom_balance +WHERE account_denom_balance.address=$1 AND account_denom_balance.denom=$2` + + err := db.SQL.Select(&vals, query, account, denom) + if err != nil { + return types.AccountBalance{}, false, err + } + if len(vals) == 0 { + return types.AccountBalance{}, false, nil + } + return vals[0], true, nil +} + +// SaveAccountDenomBalance allows to save the balance of an account for a given denom. +func (db *Db) SaveAccountDenomBalance(account string, coin sdk.Coin, height int64) error { + query := ` +INSERT INTO account_denom_balance (address, denom, amount, height) +VALUES ($1, $2, $3, $4) +ON CONFLICT (address,denom) DO UPDATE + SET amount = $3, height = $4 +WHERE + account_denom_balance.address = $1 + AND account_denom_balance.denom = $2 + AND account_denom_balance.height < $4` + + _, err := db.SQL.Exec(query, account, coin.Denom, coin.Amount.String(), height) + if err != nil { + return fmt.Errorf("error while storing account balance: %s", err) + } + + return nil +} diff --git a/database/bank_test.go b/database/bank_test.go index 386f68bde..ed21370b6 100644 --- a/database/bank_test.go +++ b/database/bank_test.go @@ -1,18 +1,17 @@ package database_test import ( + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - - dbtypes "github.com/forbole/callisto/v4/database/types" - bddbtypes "github.com/forbole/callisto/v4/database/types" + dbtypes "github.com/forbole/callisto/v4/database/types" ) func (suite *DbTestSuite) TestBigDipperDb_SaveSupply() { // Save the data original := sdk.NewCoins( - sdk.NewCoin("desmos", sdk.NewInt(10000)), - sdk.NewCoin("uatom", sdk.NewInt(15)), + sdk.NewCoin("desmos", math.NewInt(10000)), + sdk.NewCoin("uatom", math.NewInt(15)), ) err := suite.database.SaveSupply(original, 10) suite.Require().NoError(err) @@ -30,8 +29,8 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveSupply() { // Try updating with a lower height coins := sdk.NewCoins( - sdk.NewCoin("desmos", sdk.NewInt(10000)), - sdk.NewCoin("uatom", sdk.NewInt(15)), + sdk.NewCoin("desmos", math.NewInt(10000)), + sdk.NewCoin("uatom", math.NewInt(15)), ) err = suite.database.SaveSupply(coins, 9) suite.Require().NoError(err) @@ -46,7 +45,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveSupply() { // ---------------------------------------------------------------------------------------------------------------- // Try updating with same height - coins = sdk.NewCoins(sdk.NewCoin("uakash", sdk.NewInt(10))) + coins = sdk.NewCoins(sdk.NewCoin("uakash", math.NewInt(10))) err = suite.database.SaveSupply(coins, 10) suite.Require().NoError(err) @@ -62,7 +61,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveSupply() { // ---------------------------------------------------------------------------------------------------------------- // Try updating with higher height - coins = sdk.NewCoins(sdk.NewCoin("btc", sdk.NewInt(10))) + coins = sdk.NewCoins(sdk.NewCoin("btc", math.NewInt(10))) err = suite.database.SaveSupply(coins, 20) suite.Require().NoError(err) @@ -75,3 +74,43 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveSupply() { suite.Require().Len(rows, 1, "supply table should contain only one row") suite.Require().True(expected.Equals(rows[0])) } + +func (suite *DbTestSuite) TestBigDipperDb_AccoundDenomBalances() { + // Test query not found + balance, found, err := suite.database.GetAccountDenomBalance("", "") + suite.Require().NoError(err) + suite.Require().False(found) + // Save the data + account := "devcore1u6dycnl606n95ggeatusc3zlfd5m4xqpw66et4" + coin := sdk.NewCoin("ucore", math.NewInt(15)) + err = suite.database.SaveAccountDenomBalance(account, coin, 9) + suite.Require().NoError(err) + + // Verify the data + expected := bddbtypes.NewAccountBalance(account, coin, 9) + + var rows []bddbtypes.AccountBalance + err = suite.database.Sqlx.Select(&rows, `SELECT * FROM account_denom_balance`) + suite.Require().NoError(err) + suite.Require().Len(rows, 1, "supply table should contain only one row") + suite.Require().True(expected.Equals(rows[0])) + + balance, _, err = suite.database.GetAccountDenomBalance(account, coin.Denom) + suite.Require().True(expected.Equals(balance)) + + // ---------------------------------------------------------------------------------------------------------------- + + // Try updating with a new value + coin = sdk.NewCoin("ucore", math.NewInt(20)) + err = suite.database.SaveAccountDenomBalance(account, coin, 10) + suite.Require().NoError(err) + + // Verify the data + expected = bddbtypes.NewAccountBalance(account, coin, 10) + + rows = []bddbtypes.AccountBalance{} + err = suite.database.Sqlx.Select(&rows, `SELECT * FROM account_denom_balance`) + suite.Require().NoError(err) + suite.Require().Len(rows, 1, "supply table should contain only one row") + suite.Require().True(expected.Equals(rows[0])) +} diff --git a/database/bridge.go b/database/bridge.go new file mode 100644 index 000000000..5e6d14b01 --- /dev/null +++ b/database/bridge.go @@ -0,0 +1,172 @@ +package database + +import ( + "github.com/forbole/callisto/v4/types" + "github.com/lib/pq" +) + +func (db *Db) SaveOutgoingTransfer(tx types.BridgeTransaction) error { + stmt := ` + INSERT INTO + bridge_transaction (init_height, init_hash, counterparty, sender, recipient, amount, direction, operation_ids) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8) +` + + _, err := db.SQL.Exec( + stmt, + tx.InitHeight, + tx.InitHash, + tx.Counterparty, + tx.Sender, + tx.Recipient, + tx.Amount, + tx.Direction, + pq.Array(tx.OperationIDs), + ) + if err != nil { + return err + } + return nil +} + +func (db *Db) GetOutgoingPendingTransaction(operationIDs []uint32) (*types.BridgeTransaction, error) { + stmt := ` + SELECT init_height, init_hash, counterparty, sender, recipient, amount, direction, operation_ids + FROM bridge_transaction + WHERE operation_ids && $1 AND final_height IS NULL +` + + row := db.SQL.QueryRow(stmt, pq.Array(operationIDs)) + + var bridgeTx types.BridgeTransaction + err := row.Scan( + &bridgeTx.InitHeight, + &bridgeTx.InitHash, + &bridgeTx.Counterparty, + &bridgeTx.Sender, + &bridgeTx.Recipient, + &bridgeTx.Amount, + &bridgeTx.Direction, + &bridgeTx.OperationIDs, + ) + + if err != nil { + return nil, err + } + + return &bridgeTx, nil +} + +func (db *Db) SaveOutgoingPendingEvidence(evidence types.BridgeEvidence, operationId uint32) error { + stmt := ` + INSERT INTO bridge_evidence (tx_id, height, hash, sender, threshold_reached) + VALUES ((SELECT id FROM bridge_transaction WHERE final_height IS NULL AND operation_ids && $4), $1, $2, $3, FALSE) +` + _, err := db.SQL.Exec( + stmt, + evidence.Height, + evidence.Hash, + evidence.Relayer, + pq.Array([]uint32{operationId}), + ) + if err != nil { + return err + } + return nil +} + +func (db *Db) SaveOutgoingFinalEvidence(evidence types.BridgeEvidence, operationId uint32, txResult types.BridgeTxResult, counterpartyHash string) error { + stmt := ` + WITH updated_transaction AS ( + UPDATE bridge_transaction + SET final_height = $1, + final_hash = $2, + counterparty_hash = $5, + result = $6 + WHERE operation_ids && $4 AND final_height IS NULL + RETURNING id + ) + INSERT INTO bridge_evidence (tx_id, height, hash, sender, threshold_reached) + SELECT ut.id, $1, $2, $3, TRUE + FROM updated_transaction ut + WHERE ut.id IS NOT NULL; +` + _, err := db.SQL.Exec( + stmt, + evidence.Height, + evidence.Hash, + evidence.Relayer, + pq.Array([]uint32{operationId}), + counterpartyHash, + txResult, + ) + if err != nil { + return err + } + return nil +} + +func (db *Db) SaveIncomingPendingTxAndEvidence(tx types.BridgeTransaction, relayer string) error { + stmt := ` + WITH selected_tx AS ( + SELECT id + FROM bridge_transaction + WHERE counterparty = $3 AND counterparty_hash = $4 + ), inserted_tx AS ( + INSERT INTO bridge_transaction (init_height, init_hash, counterparty, counterparty_hash, sender, recipient, amount, direction) + SELECT $1, $2, $3, $4, $5, $6, $7, $8 + WHERE NOT EXISTS (SELECT 1 FROM selected_tx) + RETURNING id + ) + INSERT INTO bridge_evidence (tx_id, height, hash, sender, threshold_reached) + SELECT it.id, $1, $2, $9, FALSE + FROM (SELECT id FROM inserted_tx UNION ALL SELECT id FROM selected_tx) it; +` + + _, err := db.SQL.Exec( + stmt, + tx.InitHeight, + tx.InitHash, + tx.Counterparty, + tx.CounterpartyHash, + tx.Sender, + tx.Recipient, + tx.Amount, + tx.Direction, + relayer, + ) + + if err != nil { + return err + } + return nil +} + +func (db *Db) SaveIncomingFinalTxAndEvidence(evidence types.BridgeEvidence, counterparty types.Counterparty, counterpartyHash string, txResult types.BridgeTxResult) error { + stmt := ` + WITH updated_transaction AS ( + UPDATE bridge_transaction + SET final_height = $1, final_hash = $2, result = $6 + WHERE counterparty = $4 AND counterparty_hash = $5 + RETURNING id + ) + INSERT INTO bridge_evidence (tx_id, height, hash, sender, threshold_reached) + SELECT ut.id, $1, $2, $3, TRUE + FROM updated_transaction ut; +` + + _, err := db.SQL.Exec( + stmt, + evidence.Height, + evidence.Hash, + evidence.Relayer, + counterparty, + counterpartyHash, + txResult, + ) + + if err != nil { + return err + } + return nil +} diff --git a/database/consensus.go b/database/consensus.go index afb74f2ca..00292b908 100644 --- a/database/consensus.go +++ b/database/consensus.go @@ -4,9 +4,8 @@ import ( "fmt" "time" - "github.com/forbole/callisto/v4/types" - dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" ) // GetLastBlock returns the last block stored inside the database based on the heights diff --git a/database/customparams_params.go b/database/customparams_params.go new file mode 100644 index 000000000..2bf36902c --- /dev/null +++ b/database/customparams_params.go @@ -0,0 +1,54 @@ +package database + +import ( + "encoding/json" + "fmt" + + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" +) + +// SaveCustomParamsParams saves the given x/customparams parameters inside the database +func (db *Db) SaveCustomParamsParams(params *types.CustomParamsParams) error { + stakingParamsBz, err := json.Marshal(¶ms.StakingParams) + if err != nil { + return fmt.Errorf("error while marshaling staking params: %s", err) + } + + stmt := ` +INSERT INTO customparams_params(staking_params, height) +VALUES ($1, $2) +ON CONFLICT (one_row_id) DO UPDATE + SET staking_params = excluded.staking_params, + height = excluded.height +WHERE customparams_params.height <= excluded.height` + _, err = db.SQL.Exec(stmt, string(stakingParamsBz), params.Height) + if err != nil { + return fmt.Errorf("error while storing customparams params: %s", err) + } + + return nil +} + +// GetCustomParamsParams returns the most recent customparamsernance parameters +func (db *Db) GetCustomParamsParams() (*types.CustomParamsParams, error) { + var rows []dbtypes.CustomParamsParamsRow + err := db.Sqlx.Select(&rows, `SELECT * FROM customparams_params`) + if err != nil { + return nil, err + } + + if len(rows) == 0 { + return nil, nil + } + + row := rows[0] + + var stakingParams types.CustomParamsStakingParams + err = json.Unmarshal([]byte(row.StakingParams), &stakingParams) + if err != nil { + return nil, err + } + + return types.NewCustomParamsParams(stakingParams, row.Height), nil +} diff --git a/database/customparams_params_test.go b/database/customparams_params_test.go new file mode 100644 index 000000000..94053e489 --- /dev/null +++ b/database/customparams_params_test.go @@ -0,0 +1,50 @@ +package database_test + +import ( + "encoding/json" + + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" + + customparamstypes "github.com/CoreumFoundation/coreum/v5/x/customparams/types" +) + +func (suite *DbTestSuite) TestSaveCustomParamsParams() { + customParamsDefaultStakingParams := customparamstypes.DefaultStakingParams() + err := suite.database.SaveCustomParamsParams( + types.NewCustomParamsParams(types.CustomParamsStakingParams(customParamsDefaultStakingParams), 10), + ) + suite.Require().NoError(err) + + var rows []dbtypes.CustomParamsParamsRow + err = suite.database.Sqlx.Select(&rows, `SELECT * FROM customparams_params`) + suite.Require().NoError(err) + + suite.Require().Len(rows, 1) + + var storedStakingParams customparamstypes.StakingParams + err = json.Unmarshal([]byte(rows[0].StakingParams), &storedStakingParams) + suite.Require().NoError(err) + suite.Require().Equal(customParamsDefaultStakingParams, storedStakingParams) +} + +func (suite *DbTestSuite) TestGetCustomParamsParams() { + customparamsParams := customparamstypes.DefaultStakingParams() + + paramsBz, err := json.Marshal(&customparamsParams) + suite.Require().NoError(err) + + _, err = suite.database.SQL.Exec( + `INSERT INTO customparams_params (staking_params, height) VALUES ($1, $2)`, + string(paramsBz), 10, + ) + suite.Require().NoError(err) + + params, err := suite.database.GetCustomParamsParams() + suite.Require().NoError(err) + + suite.Require().Equal(&types.CustomParamsParams{ + StakingParams: types.CustomParamsStakingParams(customparamsParams), + Height: 10, + }, params) +} diff --git a/database/database.go b/database/database.go index da5d4bc10..3c60cee73 100644 --- a/database/database.go +++ b/database/database.go @@ -3,8 +3,9 @@ package database import ( "fmt" - db "github.com/forbole/juno/v5/database" - "github.com/forbole/juno/v5/database/postgresql" + codec "github.com/cosmos/cosmos-sdk/codec" + db "github.com/forbole/juno/v6/database" + "github.com/forbole/juno/v6/database/postgresql" "github.com/jmoiron/sqlx" ) @@ -15,24 +16,28 @@ var _ db.Database = &Db{} type Db struct { *postgresql.Database Sqlx *sqlx.DB + cdc codec.Codec } // Builder allows to create a new Db instance implementing the db.Builder type -func Builder(ctx *db.Context) (db.Database, error) { - database, err := postgresql.Builder(ctx) - if err != nil { - return nil, err +func Builder(cdc codec.Codec) db.Builder { + return func(ctx *db.Context) (db.Database, error) { + database, err := postgresql.Builder(ctx) + if err != nil { + return nil, err + } + + psqlDb, ok := (database).(*postgresql.Database) + if !ok { + return nil, fmt.Errorf("invalid configuration database, must be PostgreSQL") + } + + return &Db{ + Database: psqlDb, + Sqlx: sqlx.NewDb(psqlDb.SQL.DB, "postgresql"), + cdc: cdc, + }, nil } - - psqlDb, ok := (database).(*postgresql.Database) - if !ok { - return nil, fmt.Errorf("invalid configuration database, must be PostgreSQL") - } - - return &Db{ - Database: psqlDb, - Sqlx: sqlx.NewDb(psqlDb.SQL.DB, "postgresql"), - }, nil } // Cast allows to cast the given db to a Db instance diff --git a/database/database_test.go b/database/database_test.go index 402abc304..979e51d7f 100644 --- a/database/database_test.go +++ b/database/database_test.go @@ -9,26 +9,20 @@ import ( "testing" "time" - dbconfig "github.com/forbole/juno/v5/database/config" - "github.com/forbole/juno/v5/logging" - - junodb "github.com/forbole/juno/v5/database" - - "github.com/forbole/callisto/v4/database" - "github.com/forbole/callisto/v4/types" - - juno "github.com/forbole/juno/v5/types" - + "cosmossdk.io/math" tmversion "github.com/cometbft/cometbft/proto/tendermint/version" tmctypes "github.com/cometbft/cometbft/rpc/core/types" tmtypes "github.com/cometbft/cometbft/types" sdk "github.com/cosmos/cosmos-sdk/types" - - "github.com/forbole/juno/v5/types/params" - - "github.com/stretchr/testify/suite" - + "github.com/forbole/callisto/v4/database" + "github.com/forbole/callisto/v4/types" + "github.com/forbole/callisto/v4/utils" + junodb "github.com/forbole/juno/v6/database" + dbconfig "github.com/forbole/juno/v6/database/config" + "github.com/forbole/juno/v6/logging" + juno "github.com/forbole/juno/v6/types" _ "github.com/proullon/ramsql/driver" + "github.com/stretchr/testify/suite" ) func TestDatabaseTestSuite(t *testing.T) { @@ -42,9 +36,6 @@ type DbTestSuite struct { } func (suite *DbTestSuite) SetupTest() { - // Create the codec - codec := params.MakeTestEncodingConfig() - // Build the database dbCfg := dbconfig.NewDatabaseConfig( "postgresql://callisto:password@localhost:6433/callisto?sslmode=disable&search_path=public", @@ -57,7 +48,8 @@ func (suite *DbTestSuite) SetupTest() { 100000, 100, ) - db, err := database.Builder(junodb.NewContext(dbCfg, codec, logging.DefaultLogger())) + + db, err := database.Builder(utils.GetCodec())(junodb.NewContext(dbCfg, logging.DefaultLogger())) suite.Require().NoError(err) bigDipperDb, ok := (db).(*database.Db) @@ -142,8 +134,8 @@ func (suite *DbTestSuite) getBlock(height int64) *juno.Block { func (suite *DbTestSuite) getValidator(consAddr, valAddr, pubkey string) types.Validator { selfDelegation := suite.getAccount("cosmos1z4hfrxvlgl4s8u4n5ngjcw8kdqrcv43599amxs") - maxRate := sdk.NewDec(10) - maxChangeRate := sdk.NewDec(20) + maxRate := math.LegacyNewDec(10) + maxChangeRate := math.LegacyNewDec(20) validator := types.NewValidator( consAddr, diff --git a/database/dex_params.go b/database/dex_params.go new file mode 100644 index 000000000..08d97deda --- /dev/null +++ b/database/dex_params.go @@ -0,0 +1,59 @@ +package database + +import ( + "encoding/json" + "fmt" + + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" + + dextypes "github.com/CoreumFoundation/coreum/v5/x/dex/types" +) + +// SaveDEXParams allows to store the given params into the database. +func (db *Db) SaveDEXParams(params types.DEXParams) error { + paramsBz, err := json.Marshal(¶ms.Params) + if err != nil { + return fmt.Errorf("error while marshaling dex params: %s", err) + } + + stmt := ` +INSERT INTO dex_params (params, height) +VALUES ($1, $2) +ON CONFLICT (one_row_id) DO UPDATE + SET params = excluded.params, + height = excluded.height +WHERE dex_params.height <= excluded.height` + + _, err = db.SQL.Exec(stmt, string(paramsBz), params.Height) + if err != nil { + return fmt.Errorf("error while storing dex params: %s", err) + } + + return nil +} + +// GetDEXParams returns the types.DEXParams instance containing the current params +func (db *Db) GetDEXParams() (*types.DEXParams, error) { + var rows []dbtypes.DEXParamsRow + stmt := `SELECT * FROM dex_params LIMIT 1` + err := db.Sqlx.Select(&rows, stmt) + if err != nil { + return nil, err + } + + if len(rows) == 0 { + return nil, fmt.Errorf("no dex params found") + } + + var dexParams dextypes.Params + err = json.Unmarshal([]byte(rows[0].Params), &dexParams) + if err != nil { + return nil, err + } + + return &types.DEXParams{ + Params: dexParams, + Height: rows[0].Height, + }, nil +} diff --git a/database/dex_params_test.go b/database/dex_params_test.go new file mode 100644 index 000000000..1de7d4e43 --- /dev/null +++ b/database/dex_params_test.go @@ -0,0 +1,48 @@ +package database_test + +import ( + "encoding/json" + + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" + + dextypes "github.com/CoreumFoundation/coreum/v5/x/dex/types" +) + +func (suite *DbTestSuite) TestSaveDEXParams() { + dexParams := dextypes.DefaultParams() + err := suite.database.SaveDEXParams(types.NewDEXParams(dexParams, 10)) + suite.Require().NoError(err) + + var rows []dbtypes.DEXParamsRow + err = suite.database.Sqlx.Select(&rows, `SELECT * FROM dex_params`) + suite.Require().NoError(err) + + suite.Require().Len(rows, 1) + + var stored dextypes.Params + err = json.Unmarshal([]byte(rows[0].Params), &stored) + suite.Require().NoError(err) + suite.Require().Equal(dexParams, stored) +} + +func (suite *DbTestSuite) TestGetDEXParams() { + dexParams := dextypes.DefaultParams() + + paramsBz, err := json.Marshal(&dexParams) + suite.Require().NoError(err) + + _, err = suite.database.SQL.Exec( + `INSERT INTO dex_params (params, height) VALUES ($1, $2)`, + string(paramsBz), 10, + ) + suite.Require().NoError(err) + + params, err := suite.database.GetDEXParams() + suite.Require().NoError(err) + + suite.Require().Equal(&types.DEXParams{ + Params: dexParams, + Height: 10, + }, params) +} diff --git a/database/distribution.go b/database/distribution.go index 89e8caa57..67c073f87 100644 --- a/database/distribution.go +++ b/database/distribution.go @@ -4,11 +4,9 @@ import ( "encoding/json" "fmt" + sdk "github.com/cosmos/cosmos-sdk/types" dbtypes "github.com/forbole/callisto/v4/database/types" - "github.com/forbole/callisto/v4/types" - - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/lib/pq" ) diff --git a/database/distribution_test.go b/database/distribution_test.go index 356311dda..45e1150bd 100644 --- a/database/distribution_test.go +++ b/database/distribution_test.go @@ -3,19 +3,17 @@ package database_test import ( "encoding/json" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - - dbtypes "github.com/forbole/callisto/v4/database/types" - - "github.com/forbole/callisto/v4/types" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" bddbtypes "github.com/forbole/callisto/v4/database/types" + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" ) func (suite *DbTestSuite) TestBigDipperDb_SaveCommunityPool() { // Save data - original := sdk.NewDecCoins(sdk.NewDecCoin("uatom", sdk.NewInt(100))) + original := sdk.NewDecCoins(sdk.NewDecCoin("uatom", math.NewInt(100))) err := suite.database.SaveCommunityPool(original, 10) suite.Require().NoError(err) @@ -30,7 +28,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveCommunityPool() { // --------------------------------------------------------------------------------------------------------------- // Try updating with lower height - coins := sdk.NewDecCoins(sdk.NewDecCoin("uatom", sdk.NewInt(50))) + coins := sdk.NewDecCoins(sdk.NewDecCoin("uatom", math.NewInt(50))) err = suite.database.SaveCommunityPool(coins, 5) suite.Require().NoError(err) @@ -45,7 +43,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveCommunityPool() { // --------------------------------------------------------------------------------------------------------------- // Try updating with equal height - coins = sdk.NewDecCoins(sdk.NewDecCoin("uatom", sdk.NewInt(120))) + coins = sdk.NewDecCoins(sdk.NewDecCoin("uatom", math.NewInt(120))) err = suite.database.SaveCommunityPool(coins, 10) suite.Require().NoError(err) @@ -60,7 +58,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveCommunityPool() { // --------------------------------------------------------------------------------------------------------------- // Try updating with higher height - coins = sdk.NewDecCoins(sdk.NewDecCoin("uatom", sdk.NewInt(200))) + coins = sdk.NewDecCoins(sdk.NewDecCoin("uatom", math.NewInt(200))) err = suite.database.SaveCommunityPool(coins, 11) suite.Require().NoError(err) @@ -75,9 +73,9 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveCommunityPool() { func (suite *DbTestSuite) TestBigDipperDb_SaveDistributionParams() { distrParams := distrtypes.Params{ - CommunityTax: sdk.NewDecWithPrec(2, 2), - BaseProposerReward: sdk.NewDecWithPrec(1, 2), - BonusProposerReward: sdk.NewDecWithPrec(4, 2), + CommunityTax: math.LegacyNewDecWithPrec(2, 2), + BaseProposerReward: math.LegacyNewDecWithPrec(1, 2), + BonusProposerReward: math.LegacyNewDecWithPrec(4, 2), WithdrawAddrEnabled: true, } err := suite.database.SaveDistributionParams(types.NewDistributionParams(distrParams, 10)) diff --git a/database/feegrant.go b/database/feegrant.go index 7737953ee..47ee05890 100644 --- a/database/feegrant.go +++ b/database/feegrant.go @@ -4,7 +4,6 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/codec" - "github.com/forbole/callisto/v4/types" ) @@ -43,7 +42,6 @@ WHERE fee_grant_allowance.height <= excluded.height` func (db *Db) DeleteFeeGrantAllowance(allowance types.GrantRemoval) error { stmt := `DELETE FROM fee_grant_allowance WHERE grantee_address = $1 AND granter_address = $2 AND height <= $3` _, err := db.SQL.Exec(stmt, allowance.Grantee, allowance.Granter, allowance.Height) - if err != nil { return fmt.Errorf("error while deleting grant allowance: %s", err) } diff --git a/database/feegrant_test.go b/database/feegrant_test.go index a41e283b9..99dd1c307 100644 --- a/database/feegrant_test.go +++ b/database/feegrant_test.go @@ -1,9 +1,8 @@ package database_test import ( + feegranttypes "cosmossdk.io/x/feegrant" sdk "github.com/cosmos/cosmos-sdk/types" - feegranttypes "github.com/cosmos/cosmos-sdk/x/feegrant" - dbtypes "github.com/forbole/callisto/v4/database/types" "github.com/forbole/callisto/v4/types" ) @@ -35,7 +34,6 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveFeeGrantAllowance() { suite.Require().Equal(rows[0].Granter, granter.String()) suite.Require().Equal(rows[0].Grantee, grantee.String()) suite.Require().Equal(rows[0].Height, int64(121622)) - } func (suite *DbTestSuite) TestBigDipperDb_RemoveFeeGrantAllowance() { diff --git a/database/feemodel_params.go b/database/feemodel_params.go new file mode 100644 index 000000000..6ff6f92e4 --- /dev/null +++ b/database/feemodel_params.go @@ -0,0 +1,59 @@ +package database + +import ( + "encoding/json" + "fmt" + + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" + + feemodeltypes "github.com/CoreumFoundation/coreum/v5/x/feemodel/types" +) + +// SaveFeeModelParams allows to store the given params into the database. +func (db *Db) SaveFeeModelParams(params types.FeeModelParams) error { + paramsBz, err := json.Marshal(¶ms.Params) + if err != nil { + return fmt.Errorf("error while marshaling feemodel params: %s", err) + } + + stmt := ` +INSERT INTO feemodel_params (params, height) +VALUES ($1, $2) +ON CONFLICT (one_row_id) DO UPDATE + SET params = excluded.params, + height = excluded.height +WHERE feemodel_params.height <= excluded.height` + + _, err = db.SQL.Exec(stmt, string(paramsBz), params.Height) + if err != nil { + return fmt.Errorf("error while storing feemodel params: %s", err) + } + + return nil +} + +// GetFeeModelParams returns the types.FeeModelParams instance containing the current params +func (db *Db) GetFeeModelParams() (*types.FeeModelParams, error) { + var rows []dbtypes.FeeModelParamsRow + stmt := `SELECT * FROM feemodel_params LIMIT 1` + err := db.Sqlx.Select(&rows, stmt) + if err != nil { + return nil, err + } + + if len(rows) == 0 { + return nil, fmt.Errorf("no feemodel params found") + } + + var feemodelParams feemodeltypes.Params + err = json.Unmarshal([]byte(rows[0].Params), &feemodelParams) + if err != nil { + return nil, err + } + + return &types.FeeModelParams{ + Params: feemodelParams, + Height: rows[0].Height, + }, nil +} diff --git a/database/feemodel_params_test.go b/database/feemodel_params_test.go new file mode 100644 index 000000000..571b6540a --- /dev/null +++ b/database/feemodel_params_test.go @@ -0,0 +1,48 @@ +package database_test + +import ( + "encoding/json" + + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" + + feemodeltypes "github.com/CoreumFoundation/coreum/v5/x/feemodel/types" +) + +func (suite *DbTestSuite) TestSaveFeeModelParams() { + feemodelParams := feemodeltypes.DefaultParams() + err := suite.database.SaveFeeModelParams(types.NewFeeModelParams(feemodelParams, 10)) + suite.Require().NoError(err) + + var rows []dbtypes.FeeModelParamsRow + err = suite.database.Sqlx.Select(&rows, `SELECT * FROM feemodel_params`) + suite.Require().NoError(err) + + suite.Require().Len(rows, 1) + + var stored feemodeltypes.Params + err = json.Unmarshal([]byte(rows[0].Params), &stored) + suite.Require().NoError(err) + suite.Require().Equal(feemodelParams, stored) +} + +func (suite *DbTestSuite) TestGetFeeModelParams() { + feemodelParams := feemodeltypes.DefaultParams() + + paramsBz, err := json.Marshal(&feemodelParams) + suite.Require().NoError(err) + + _, err = suite.database.SQL.Exec( + `INSERT INTO feemodel_params (params, height) VALUES ($1, $2)`, + string(paramsBz), 10, + ) + suite.Require().NoError(err) + + params, err := suite.database.GetFeeModelParams() + suite.Require().NoError(err) + + suite.Require().Equal(&types.FeeModelParams{ + Params: feemodelParams, + Height: 10, + }, params) +} diff --git a/database/gov.go b/database/gov.go index f00be1925..1af324dbe 100644 --- a/database/gov.go +++ b/database/gov.go @@ -6,14 +6,12 @@ import ( "strings" "time" - "github.com/cosmos/cosmos-sdk/codec" + upgradetypes "cosmossdk.io/x/upgrade/types" codectypes "github.com/cosmos/cosmos-sdk/codec/types" govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - "github.com/lib/pq" - dbtypes "github.com/forbole/callisto/v4/database/types" "github.com/forbole/callisto/v4/types" + "github.com/lib/pq" ) // SaveGovParams saves the given x/gov parameters inside the database @@ -88,9 +86,8 @@ INSERT INTO proposal( vi+1, vi+2, vi+3, vi+4, vi+5, vi+6, vi+7, vi+8, vi+9, vi+10, vi+11) var jsonMessages []string - var protoCodec codec.ProtoCodec for _, msg := range proposal.Messages { - contentBz, err := protoCodec.MarshalJSON(msg) + contentBz, err := db.cdc.MarshalJSON(msg) if err != nil { return fmt.Errorf("error while marshalling proposal msg: %s", err) } @@ -160,7 +157,7 @@ func (db *Db) GetProposal(id uint64) (types.Proposal, error) { var messages []*codectypes.Any for _, jsonMessage := range jsonMessages { var msg codectypes.Any - err = db.Cdc.UnmarshalJSON([]byte(jsonMessage), &msg) + err = db.cdc.UnmarshalJSON([]byte(jsonMessage), &msg) if err != nil { return types.Proposal{}, err } @@ -346,7 +343,6 @@ WHERE proposal_staking_pool_snapshot.height <= excluded.height` _, err := db.SQL.Exec(stmt, snapshot.ProposalID, snapshot.Pool.BondedTokens.String(), snapshot.Pool.NotBondedTokens.String(), snapshot.Pool.Height) - if err != nil { return fmt.Errorf("error while storing proposal staking pool snapshot for proposal %d: %s", snapshot.ProposalID, err) @@ -393,7 +389,6 @@ WHERE proposal_validator_status_snapshot.height <= excluded.height` // SaveSoftwareUpgradePlan allows to save the given software upgrade plan with its proposal id func (db *Db) SaveSoftwareUpgradePlan(proposalID uint64, plan upgradetypes.Plan, height int64) error { - stmt := ` INSERT INTO software_upgrade_plan(proposal_id, plan_name, upgrade_height, info, height) VALUES ($1, $2, $3, $4, $5) diff --git a/database/gov_test.go b/database/gov_test.go index 149654dd5..e7ecae771 100644 --- a/database/gov_test.go +++ b/database/gov_test.go @@ -4,25 +4,22 @@ import ( "fmt" "time" - gov "github.com/cosmos/cosmos-sdk/x/gov/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - + "cosmossdk.io/math" + upgradetypes "cosmossdk.io/x/upgrade/types" codectypes "github.com/cosmos/cosmos-sdk/codec/types" - - "github.com/forbole/callisto/v4/testutils" - "github.com/forbole/callisto/v4/types" - sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + gov "github.com/cosmos/cosmos-sdk/x/gov/types" govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" - + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/testutils" + "github.com/forbole/callisto/v4/types" ) func (suite *DbTestSuite) TestBigDipperDb_SaveGovParams() { params := govtypesv1.Params{ - MinDeposit: []sdk.Coin{sdk.NewCoin("uatom", sdk.NewInt(1000))}, + MinDeposit: []sdk.Coin{sdk.NewCoin("uatom", math.NewInt(1000))}, MaxDepositPeriod: testutils.NewDurationPointer(time.Duration(int64(300000000000))), VotingPeriod: testutils.NewDurationPointer(time.Duration(int64(300000))), Quorum: "0.5", @@ -88,7 +85,7 @@ func (suite *DbTestSuite) getProposalRow(id int) types.Proposal { msgAny, err := codectypes.NewAnyWithValue(&govtypesv1.MsgUpdateParams{ Authority: authtypes.NewModuleAddress(gov.ModuleName).String(), Params: govtypesv1.Params{ - MinDeposit: []sdk.Coin{sdk.NewCoin("uatom", sdk.NewInt(1000))}, + MinDeposit: []sdk.Coin{sdk.NewCoin("uatom", math.NewInt(1000))}, MaxDepositPeriod: testutils.NewDurationPointer(time.Duration(int64(300000000000))), VotingPeriod: testutils.NewDurationPointer(time.Duration(int64(300000))), Quorum: "0.5", @@ -127,7 +124,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveProposals() { msgAny, err := codectypes.NewAnyWithValue(&govtypesv1.MsgUpdateParams{ Authority: authtypes.NewModuleAddress(gov.ModuleName).String(), Params: govtypesv1.Params{ - MinDeposit: []sdk.Coin{sdk.NewCoin("uatom", sdk.NewInt(1000))}, + MinDeposit: []sdk.Coin{sdk.NewCoin("uatom", math.NewInt(1000))}, MaxDepositPeriod: testutils.NewDurationPointer(time.Duration(int64(300000000000))), VotingPeriod: testutils.NewDurationPointer(time.Duration(int64(300000))), Quorum: "0.5", @@ -185,7 +182,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveProposals() { "Proposal Title 1", "Proposal Description 1", "Proposal Metadata 1", - "[{\"@type\": \"/cosmos.gov.v1.MsgUpdateParams\", \"params\": {\"quorum\": \"0.5\", \"threshold\": \"0.3\", \"min_deposit\": [{\"denom\": \"uatom\", \"amount\": \"1000\"}], \"voting_period\": \"0.000300s\", \"burn_vote_veto\": false, \"veto_threshold\": \"0.15\", \"burn_vote_quorum\": false, \"max_deposit_period\": \"300s\", \"min_initial_deposit_ratio\": \"0\", \"burn_proposal_deposit_prevote\": false}, \"authority\": \"cosmos10d07y265gmmuvt4z0w9aw880jnsr700j6zn9kn\"}]", + "[{\"@type\": \"/cosmos.gov.v1.MsgUpdateParams\", \"params\": {\"quorum\": \"0.5\", \"threshold\": \"0.3\", \"min_deposit\": [{\"denom\": \"uatom\", \"amount\": \"1000\"}], \"voting_period\": \"0.000300s\", \"burn_vote_veto\": false, \"veto_threshold\": \"0.15\", \"burn_vote_quorum\": false, \"min_deposit_ratio\": \"\", \"max_deposit_period\": \"300s\", \"expedited_threshold\": \"\", \"proposal_cancel_dest\": \"\", \"expedited_min_deposit\": [], \"proposal_cancel_ratio\": \"\", \"expedited_voting_period\": null, \"min_initial_deposit_ratio\": \"0\", \"burn_proposal_deposit_prevote\": false}, \"authority\": \"cosmos10d07y265gmmuvt4z0w9aw880jnsr700j6zn9kn\"}]", time.Date(2020, 1, 1, 00, 00, 00, 000, time.UTC), time.Date(2020, 1, 1, 01, 00, 00, 000, time.UTC), testutils.NewTimePointer(time.Date(2020, 1, 1, 02, 00, 00, 000, time.UTC)), @@ -217,7 +214,7 @@ func (suite *DbTestSuite) TestBigDipperDb_GetProposal() { msgAny, err := codectypes.NewAnyWithValue(&govtypesv1.MsgUpdateParams{ Authority: authtypes.NewModuleAddress(gov.ModuleName).String(), Params: govtypesv1.Params{ - MinDeposit: []sdk.Coin{sdk.NewCoin("uatom", sdk.NewInt(1000))}, + MinDeposit: []sdk.Coin{sdk.NewCoin("uatom", math.NewInt(1000))}, MaxDepositPeriod: testutils.NewDurationPointer(time.Duration(int64(300000000000))), VotingPeriod: testutils.NewDurationPointer(time.Duration(int64(300000))), Quorum: "0.5", @@ -360,7 +357,7 @@ func (suite *DbTestSuite) TestBigDipperDb_UpdateProposal() { "Proposal 1", "Description of proposal 1", "Metadata of proposal 1", - "[{\"@type\": \"/cosmos.gov.v1.MsgUpdateParams\", \"params\": {\"quorum\": \"0.5\", \"threshold\": \"0.3\", \"min_deposit\": [{\"denom\": \"uatom\", \"amount\": \"1000\"}], \"voting_period\": \"0.000300s\", \"burn_vote_veto\": false, \"veto_threshold\": \"0.15\", \"burn_vote_quorum\": false, \"max_deposit_period\": \"300s\", \"min_initial_deposit_ratio\": \"0\", \"burn_proposal_deposit_prevote\": false}, \"authority\": \"cosmos10d07y265gmmuvt4z0w9aw880jnsr700j6zn9kn\"}]", + "[{\"@type\": \"/cosmos.gov.v1.MsgUpdateParams\", \"params\": {\"quorum\": \"0.5\", \"threshold\": \"0.3\", \"min_deposit\": [{\"denom\": \"uatom\", \"amount\": \"1000\"}], \"voting_period\": \"0.000300s\", \"burn_vote_veto\": false, \"veto_threshold\": \"0.15\", \"burn_vote_quorum\": false, \"min_deposit_ratio\": \"\", \"max_deposit_period\": \"300s\", \"expedited_threshold\": \"\", \"proposal_cancel_dest\": \"\", \"expedited_min_deposit\": [], \"proposal_cancel_ratio\": \"\", \"expedited_voting_period\": null, \"min_initial_deposit_ratio\": \"0\", \"burn_proposal_deposit_prevote\": false}, \"authority\": \"cosmos10d07y265gmmuvt4z0w9aw880jnsr700j6zn9kn\"}]", proposal.SubmitTime, proposal.DepositEndTime, timestamp1, @@ -372,6 +369,7 @@ func (suite *DbTestSuite) TestBigDipperDb_UpdateProposal() { var stored dbtypes.ProposalRow err = suite.database.SQL.Get(&stored, `SELECT * FROM proposal LIMIT 1`) suite.Require().NoError(err) + suite.T().Logf("actual: %v\nexpected: %v", stored, expected) suite.Require().True(expected.Equals(stored)) } @@ -385,15 +383,15 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveDeposits() { proposal := suite.getProposalRow(1) depositor := suite.getAccount("cosmos1z4hfrxvlgl4s8u4n5ngjcw8kdqrcv43599amxs") - amount := sdk.NewCoins(sdk.NewCoin("desmos", sdk.NewInt(10000))) + amount := sdk.NewCoins(sdk.NewCoin("desmos", math.NewInt(10000))) txHash := "D40FE0C386FA85677FFB9B3C4CECD54CF2CD7ABECE4EF15FAEF328FCCBF4C3A8" depositor2 := suite.getAccount("cosmos184ma3twcfjqef6k95ne8w2hk80x2kah7vcwy4a") - amount2 := sdk.NewCoins(sdk.NewCoin("desmos", sdk.NewInt(30000))) + amount2 := sdk.NewCoins(sdk.NewCoin("desmos", math.NewInt(30000))) txHash2 := "40A9812A137256E88593E19428E006C01D87DB35F60F8D14739B4A46AC3C67A5" depositor3 := suite.getAccount("cosmos1gyds87lg3m52hex9yqta2mtwzw89pfukx3jl7g") - amount3 := sdk.NewCoins(sdk.NewCoin("desmos", sdk.NewInt(50000))) + amount3 := sdk.NewCoins(sdk.NewCoin("desmos", math.NewInt(50000))) txHash3 := "086CFE10741EF3800DB7F72B1666DE298DD40913BBB84C5530C87AF5EDE8027A" timestamp1 := time.Date(2020, 1, 1, 15, 00, 00, 000, time.UTC) @@ -427,7 +425,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveDeposits() { deposit = []types.Deposit{ types.NewDeposit(proposal.ID, depositor.String(), amount, timestamp1, "8E6EA32C656A6EED84132425533E897D458F1B877080DF842B068C4AS92WP01A", 9), types.NewDeposit(proposal.ID, depositor2.String(), amount2, timestamp2, txHash2, 11), - types.NewDeposit(proposal.ID, depositor3.String(), sdk.NewCoins(sdk.NewCoin("desmos", sdk.NewInt(30))), timestamp3, txHash3, 11), + types.NewDeposit(proposal.ID, depositor3.String(), sdk.NewCoins(sdk.NewCoin("desmos", math.NewInt(30))), timestamp3, txHash3, 11), } err = suite.database.SaveDeposits(deposit) @@ -437,7 +435,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveDeposits() { dbtypes.NewDepositRow(1, depositor.String(), dbtypes.NewDbCoins(amount), timestamp1, txHash, 10), dbtypes.NewDepositRow(1, depositor.String(), dbtypes.NewDbCoins(amount), timestamp1, "8E6EA32C656A6EED84132425533E897D458F1B877080DF842B068C4AS92WP01A", 9), dbtypes.NewDepositRow(1, depositor2.String(), dbtypes.NewDbCoins(amount2), timestamp2, txHash2, 11), - dbtypes.NewDepositRow(1, depositor3.String(), dbtypes.NewDbCoins(sdk.NewCoins(sdk.NewCoin("desmos", sdk.NewInt(30)))), timestamp3, txHash3, 11), + dbtypes.NewDepositRow(1, depositor3.String(), dbtypes.NewDbCoins(sdk.NewCoins(sdk.NewCoin("desmos", math.NewInt(30)))), timestamp3, txHash3, 11), } result = []dbtypes.DepositRow{} @@ -605,8 +603,8 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveProposalStakingPoolSnapshot() { // Save snapshot snapshot := types.NewProposalStakingPoolSnapshot(1, types.NewPoolSnapshot( - sdk.NewInt(100), - sdk.NewInt(200), + math.NewInt(100), + math.NewInt(200), 10, )) err := suite.database.SaveProposalStakingPoolSnapshot(snapshot) @@ -627,8 +625,8 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveProposalStakingPoolSnapshot() { // Update with lower height err = suite.database.SaveProposalStakingPoolSnapshot(types.NewProposalStakingPoolSnapshot(1, types.NewPoolSnapshot( - sdk.NewInt(200), - sdk.NewInt(500), + math.NewInt(200), + math.NewInt(500), 9, ))) suite.Require().NoError(err) @@ -648,8 +646,8 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveProposalStakingPoolSnapshot() { // Update with same height err = suite.database.SaveProposalStakingPoolSnapshot(types.NewProposalStakingPoolSnapshot(1, types.NewPoolSnapshot( - sdk.NewInt(500), - sdk.NewInt(1000), + math.NewInt(500), + math.NewInt(1000), 10, ))) suite.Require().NoError(err) @@ -669,8 +667,8 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveProposalStakingPoolSnapshot() { // Update with higher height err = suite.database.SaveProposalStakingPoolSnapshot(types.NewProposalStakingPoolSnapshot(1, types.NewPoolSnapshot( - sdk.NewInt(1000), - sdk.NewInt(2000), + math.NewInt(1000), + math.NewInt(2000), 11, ))) suite.Require().NoError(err) @@ -707,7 +705,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveProposalValidatorsStatusesSnapshot // ---------------------------------------------------------------------------------------------------------------- // Save snapshots - var snapshots = []types.ProposalValidatorStatusSnapshot{ + snapshots := []types.ProposalValidatorStatusSnapshot{ types.NewProposalValidatorStatusSnapshot( 1, validator1.GetConsAddr(), @@ -906,7 +904,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveSoftwareUpgradePlan() { // ---------------------------------------------------------------------------------------------------------------- // Save software upgrade plan at height 10 with upgrade height at 100 - var plan = upgradetypes.Plan{ + plan := upgradetypes.Plan{ Name: "name", Height: 100, Info: "info", @@ -985,7 +983,7 @@ func (suite *DbTestSuite) TestBigDipperDb_DeleteSoftwareUpgradePlan() { _ = suite.getProposalRow(1) // Save software upgrade plan at height 10 with upgrade height at 100 - var plan = upgradetypes.Plan{ + plan := upgradetypes.Plan{ Name: "name", Height: 100, Info: "info", @@ -1002,14 +1000,13 @@ func (suite *DbTestSuite) TestBigDipperDb_DeleteSoftwareUpgradePlan() { err = suite.database.Sqlx.Select(&rows, `SELECT * FROM software_upgrade_plan`) suite.Require().NoError(err) suite.Require().Len(rows, 0) - } func (suite *DbTestSuite) TestBigDipperDb_CheckSoftwareUpgradePlan() { _ = suite.getProposalRow(1) // Save software upgrade plan at height 10 with upgrade height at 100 - var plan = upgradetypes.Plan{ + plan := upgradetypes.Plan{ Name: "name", // the Height here is the upgrade height Height: 100, diff --git a/database/migrate/v5/migrator.go b/database/migrate/v5/migrator.go index 5255d88ad..6d06e407f 100644 --- a/database/migrate/v5/migrator.go +++ b/database/migrate/v5/migrator.go @@ -1,10 +1,9 @@ package v5 import ( + "github.com/forbole/juno/v6/database" + "github.com/forbole/juno/v6/database/postgresql" "github.com/jmoiron/sqlx" - - "github.com/forbole/juno/v5/database" - "github.com/forbole/juno/v5/database/postgresql" ) var _ database.Migrator = &Migrator{} diff --git a/database/mint.go b/database/mint.go index ec450dbd8..96ecf2a23 100644 --- a/database/mint.go +++ b/database/mint.go @@ -4,13 +4,12 @@ import ( "encoding/json" "fmt" - sdk "github.com/cosmos/cosmos-sdk/types" - + "cosmossdk.io/math" "github.com/forbole/callisto/v4/types" ) // SaveInflation allows to store the inflation for the given block height as well as timestamp -func (db *Db) SaveInflation(inflation sdk.Dec, height int64) error { +func (db *Db) SaveInflation(inflation math.LegacyDec, height int64) error { stmt := ` INSERT INTO inflation (value, height) VALUES ($1, $2) diff --git a/database/mint_test.go b/database/mint_test.go index 40c9f5177..9ce84128a 100644 --- a/database/mint_test.go +++ b/database/mint_test.go @@ -3,18 +3,15 @@ package database_test import ( "encoding/json" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" - - "github.com/forbole/callisto/v4/types" - dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" ) func (suite *DbTestSuite) TestBigDipperDb_SaveInflation() { - // Save the data - err := suite.database.SaveInflation(sdk.NewDecWithPrec(10050, 2), 100) + err := suite.database.SaveInflation(math.LegacyNewDecWithPrec(10050, 2), 100) suite.Require().NoError(err) // Verify the data @@ -29,7 +26,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveInflation() { // --------------------------------------------------------------------------------------------------------------- // Try updating with lower height - err = suite.database.SaveInflation(sdk.NewDecWithPrec(20000, 2), 90) + err = suite.database.SaveInflation(math.LegacyNewDecWithPrec(20000, 2), 90) suite.Require().NoError(err, "double inflation insertion should return no error") // Verify the data @@ -44,7 +41,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveInflation() { // --------------------------------------------------------------------------------------------------------------- // Try updating with same height - err = suite.database.SaveInflation(sdk.NewDecWithPrec(30000, 2), 100) + err = suite.database.SaveInflation(math.LegacyNewDecWithPrec(30000, 2), 100) suite.Require().NoError(err, "double inflation insertion should return no error") // Verify the data @@ -59,7 +56,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveInflation() { // --------------------------------------------------------------------------------------------------------------- // Try updating with higher height - err = suite.database.SaveInflation(sdk.NewDecWithPrec(40000, 2), 110) + err = suite.database.SaveInflation(math.LegacyNewDecWithPrec(40000, 2), 110) suite.Require().NoError(err, "double inflation insertion should return no error") // Verify the data @@ -75,10 +72,10 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveInflation() { func (suite *DbTestSuite) TestBigDipperDb_SaveMintParams() { mintParams := minttypes.NewParams( "udaric", - sdk.NewDecWithPrec(4, 1), - sdk.NewDecWithPrec(8, 1), - sdk.NewDecWithPrec(4, 1), - sdk.NewDecWithPrec(8, 1), + math.LegacyNewDecWithPrec(4, 1), + math.LegacyNewDecWithPrec(8, 1), + math.LegacyNewDecWithPrec(4, 1), + math.LegacyNewDecWithPrec(8, 1), 5006000, ) err := suite.database.SaveMintParams(types.NewMintParams(mintParams, 10)) diff --git a/database/pricefeed.go b/database/pricefeed.go index 19f6d9bba..9ecc847de 100644 --- a/database/pricefeed.go +++ b/database/pricefeed.go @@ -4,9 +4,7 @@ import ( "fmt" dbtypes "github.com/forbole/callisto/v4/database/types" - "github.com/forbole/callisto/v4/types" - "github.com/lib/pq" ) diff --git a/database/pricefeed_test.go b/database/pricefeed_test.go index d1bfe534d..5ce7749a3 100644 --- a/database/pricefeed_test.go +++ b/database/pricefeed_test.go @@ -4,9 +4,8 @@ import ( "fmt" "time" - "github.com/forbole/callisto/v4/types" - dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" ) func (suite *DbTestSuite) insertToken(name string) { @@ -29,7 +28,7 @@ func (suite *DbTestSuite) Test_GetTokensPriceID() { units, err := suite.database.GetTokensPriceID() suite.Require().NoError(err) - var expected = []string{"udesmos", "mdesmos", "desmos", "udaric", "mdaric", "daric"} + expected := []string{"udesmos", "mdesmos", "desmos", "udaric", "mdaric", "daric"} suite.Require().Len(units, len(expected)) for _, name := range expected { diff --git a/database/schema/00-cosmos.sql b/database/schema/00-cosmos.sql index e0785658d..cc8120295 100644 --- a/database/schema/00-cosmos.sql +++ b/database/schema/00-cosmos.sql @@ -80,7 +80,7 @@ CREATE TABLE message ( transaction_hash TEXT NOT NULL, index BIGINT NOT NULL, - type TEXT NOT NULL REFERENCES message_type(type), + type TEXT NOT NULL, value JSON NOT NULL, involved_accounts_addresses TEXT[] NOT NULL, @@ -109,7 +109,7 @@ SELECT * FROM message WHERE (cardinality(types) = 0 OR type = ANY (types)) AND addresses && involved_accounts_addresses ORDER BY height DESC LIMIT "limit" OFFSET "offset" -$$ LANGUAGE sql STABLE; + $$ LANGUAGE sql STABLE; CREATE FUNCTION messages_by_type( types text [], @@ -125,4 +125,4 @@ $$ LANGUAGE sql STABLE; CREATE TABLE pruning ( last_pruned_height BIGINT NOT NULL -); \ No newline at end of file +); diff --git a/database/schema/01-auth.sql b/database/schema/01-auth.sql index 16f9689ba..fb76b0e11 100644 --- a/database/schema/01-auth.sql +++ b/database/schema/01-auth.sql @@ -31,4 +31,13 @@ CREATE TABLE vesting_period period_order BIGINT NOT NULL, length BIGINT NOT NULL, amount COIN[] NOT NULL DEFAULT '{}' -); \ No newline at end of file +); + +CREATE TABLE auth_params +( + one_row_id BOOLEAN NOT NULL DEFAULT TRUE PRIMARY KEY, + params JSONB NOT NULL, + height BIGINT NOT NULL, + CHECK (one_row_id) +); +CREATE INDEX auth_params_height_index ON auth_params (height); diff --git a/database/schema/03-staking.sql b/database/schema/03-staking.sql index f2f1eb491..b0c027a39 100644 --- a/database/schema/03-staking.sql +++ b/database/schema/03-staking.sql @@ -28,7 +28,7 @@ CREATE INDEX staking_pool_height_index ON staking_pool (height); CREATE TABLE validator_info ( consensus_address TEXT NOT NULL UNIQUE PRIMARY KEY REFERENCES validator (consensus_address), - operator_address TEXT NOT NULL UNIQUE, + operator_address TEXT NOT NULL, self_delegate_address TEXT REFERENCES account (address), max_change_rate TEXT NOT NULL, max_rate TEXT NOT NULL, @@ -63,7 +63,7 @@ CREATE TABLE validator_voting_power ( validator_address TEXT NOT NULL REFERENCES validator (consensus_address) PRIMARY KEY, voting_power BIGINT NOT NULL, - height BIGINT NOT NULL REFERENCES block (height) + height BIGINT NULL REFERENCES block (height) ); CREATE INDEX validator_voting_power_height_index ON validator_voting_power (height); diff --git a/database/schema/11-feegrant.sql b/database/schema/11-feegrant.sql index af1145034..7589cc73a 100644 --- a/database/schema/11-feegrant.sql +++ b/database/schema/11-feegrant.sql @@ -5,6 +5,6 @@ CREATE TABLE fee_grant_allowance granter_address TEXT NOT NULL REFERENCES account (address), allowance JSONB NOT NULL DEFAULT '{}'::JSONB, height BIGINT NOT NULL, - CONSTRAINT unique_fee_grant_allowance UNIQUE(grantee_address, granter_address) + CONSTRAINT unique_fee_grant_allowance UNIQUE(grantee_address, granter_address) ); CREATE INDEX fee_grant_allowance_height_index ON fee_grant_allowance (height); diff --git a/database/schema/13-customparams.sql b/database/schema/13-customparams.sql new file mode 100644 index 000000000..f2bd55c0a --- /dev/null +++ b/database/schema/13-customparams.sql @@ -0,0 +1,11 @@ +/* ---- PARAMS ---- */ + +CREATE TABLE customparams_params +( + one_row_id BOOLEAN NOT NULL DEFAULT TRUE PRIMARY KEY, + staking_params JSONB NOT NULL, + height BIGINT NOT NULL, + CHECK (one_row_id) +); + +CREATE INDEX customparams_params_height_index ON customparams_params (height); diff --git a/database/schema/14-feemodel.sql b/database/schema/14-feemodel.sql new file mode 100644 index 000000000..abeb39d45 --- /dev/null +++ b/database/schema/14-feemodel.sql @@ -0,0 +1,10 @@ +/* ---- PARAMS ---- */ + +CREATE TABLE feemodel_params +( + one_row_id BOOLEAN NOT NULL DEFAULT TRUE PRIMARY KEY, + params JSONB NOT NULL, + height BIGINT NOT NULL, + CHECK (one_row_id) +); +CREATE INDEX feemodel_params_height_index ON feemodel_params (height); diff --git a/database/schema/15-assetftparams.sql b/database/schema/15-assetftparams.sql new file mode 100644 index 000000000..ce091f9b6 --- /dev/null +++ b/database/schema/15-assetftparams.sql @@ -0,0 +1,10 @@ +/* ---- PARAMS ---- */ + +CREATE TABLE assetft_params +( + one_row_id BOOLEAN NOT NULL DEFAULT TRUE PRIMARY KEY, + params JSONB NOT NULL, + height BIGINT NOT NULL, + CHECK (one_row_id) +); +CREATE INDEX assetft_params_height_index ON assetft_params (height); diff --git a/database/schema/16-assetnftparams.sql b/database/schema/16-assetnftparams.sql new file mode 100644 index 000000000..63c5da787 --- /dev/null +++ b/database/schema/16-assetnftparams.sql @@ -0,0 +1,10 @@ +/* ---- PARAMS ---- */ + +CREATE TABLE assetnft_params +( + one_row_id BOOLEAN NOT NULL DEFAULT TRUE PRIMARY KEY, + params JSONB NOT NULL, + height BIGINT NOT NULL, + CHECK (one_row_id) +); +CREATE INDEX assetnft_params_height_index ON assetnft_params (height); diff --git a/database/schema/17-tokenholders.sql b/database/schema/17-tokenholders.sql new file mode 100644 index 000000000..d471157f2 --- /dev/null +++ b/database/schema/17-tokenholders.sql @@ -0,0 +1,14 @@ +CREATE TABLE account_denom_balance +( + address TEXT NOT NULL, + denom TEXT NOT NULL, + amount TEXT NOT NULL, + height BIGINT NOT NULL, + PRIMARY KEY(address, denom) +); + +CREATE VIEW token_holder_count AS + SELECT denom, COUNT(*) AS holders + FROM account_denom_balance + WHERE amount != '0' + GROUP BY denom; diff --git a/database/schema/18-dexparams.sql b/database/schema/18-dexparams.sql new file mode 100644 index 000000000..4b544720c --- /dev/null +++ b/database/schema/18-dexparams.sql @@ -0,0 +1,10 @@ +/* ---- PARAMS ---- */ + +CREATE TABLE dex_params +( + one_row_id BOOLEAN NOT NULL DEFAULT TRUE PRIMARY KEY, + params JSONB NOT NULL, + height BIGINT NOT NULL, + CHECK (one_row_id) +); +CREATE INDEX dex_params_height_index ON dex_params (height); diff --git a/database/schema/19-bridge.sql b/database/schema/19-bridge.sql new file mode 100644 index 000000000..5fd98e86e --- /dev/null +++ b/database/schema/19-bridge.sql @@ -0,0 +1,38 @@ +/* ---- Transaction ---- */ +CREATE TABLE + bridge_transaction ( + id SERIAL NOT NULL PRIMARY KEY, + init_height BIGINT NOT NULL REFERENCES block (height), + final_height BIGINT NULL DEFAULT NULL REFERENCES block (height), + init_hash TEXT NOT NULL, + final_hash TEXT NULL DEFAULT NULL, + counterparty TEXT NOT NULL, + counterparty_hash TEXT NULL DEFAULT NULL, + sender TEXT NOT NULL, + recipient TEXT NOT NULL, + amount TEXT NOT NULL, + direction TEXT NOT NULL, + result TEXT NULL DEFAULT NULL, + operation_ids INTEGER[] NULL DEFAULT NULL + ); +CREATE INDEX bridge_transaction_counterparty_counterparty_hash_idx ON bridge_transaction (counterparty, counterparty_hash); +CREATE INDEX bridge_transaction_init_height_idx ON bridge_transaction (init_height); +CREATE INDEX bridge_transaction_final_height_idx ON bridge_transaction (final_height); +CREATE INDEX bridge_transaction_init_hash_idx ON bridge_transaction (init_hash); +CREATE INDEX bridge_transaction_counterparty_idx ON bridge_transaction (counterparty); +CREATE INDEX bridge_transaction_counterparty_hash_idx ON bridge_transaction (counterparty_hash); +CREATE INDEX bridge_transaction_direction_idx ON bridge_transaction (direction); + +/* ---- Evidence ---- */ +CREATE TABLE + bridge_evidence ( + id SERIAL NOT NULL PRIMARY KEY, + tx_id BIGINT NOT NULL REFERENCES bridge_transaction (id), + height BIGINT NOT NULL REFERENCES block (height), + hash TEXT NOT NULL, + sender TEXT NOT NULL, + threshold_reached BOOLEAN NOT NULL + ); +CREATE INDEX bridge_evidence_height_idx ON bridge_evidence (height); +CREATE INDEX bridge_evidence_hash_idx ON bridge_evidence (hash); +CREATE INDEX bridge_evidence_threshold_reached_idx ON bridge_evidence (threshold_reached); \ No newline at end of file diff --git a/database/slashing_test.go b/database/slashing_test.go index 39ca15589..8eb9ea1c8 100644 --- a/database/slashing_test.go +++ b/database/slashing_test.go @@ -4,12 +4,10 @@ import ( "encoding/json" "time" - "github.com/forbole/callisto/v4/types" - - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" ) func (suite *DbTestSuite) TestBigDipperDb_ValidatorSigningInfo() { @@ -139,10 +137,10 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveSlashingParams() { // Save data slashingParams := slashingtypes.Params{ SignedBlocksWindow: 10, - MinSignedPerWindow: sdk.NewDecWithPrec(100, 2), + MinSignedPerWindow: math.LegacyNewDecWithPrec(100, 2), DowntimeJailDuration: 10000, - SlashFractionDoubleSign: sdk.NewDecWithPrec(100, 2), - SlashFractionDowntime: sdk.NewDecWithPrec(100, 4), + SlashFractionDoubleSign: math.LegacyNewDecWithPrec(100, 2), + SlashFractionDowntime: math.LegacyNewDecWithPrec(100, 4), } params := types.NewSlashingParams(slashingParams, 10) err := suite.database.SaveSlashingParams(params) @@ -163,10 +161,10 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveSlashingParams() { err = suite.database.SaveSlashingParams(types.NewSlashingParams( slashingtypes.Params{ SignedBlocksWindow: 5, - MinSignedPerWindow: sdk.NewDecWithPrec(50, 2), + MinSignedPerWindow: math.LegacyNewDecWithPrec(50, 2), DowntimeJailDuration: 10000, - SlashFractionDoubleSign: sdk.NewDecWithPrec(50, 2), - SlashFractionDowntime: sdk.NewDecWithPrec(50, 4), + SlashFractionDoubleSign: math.LegacyNewDecWithPrec(50, 2), + SlashFractionDowntime: math.LegacyNewDecWithPrec(50, 4), }, 9, )) @@ -184,10 +182,10 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveSlashingParams() { // Try updating with same height slashingParams = slashingtypes.Params{ SignedBlocksWindow: 5, - MinSignedPerWindow: sdk.NewDecWithPrec(50, 2), + MinSignedPerWindow: math.LegacyNewDecWithPrec(50, 2), DowntimeJailDuration: 10000, - SlashFractionDoubleSign: sdk.NewDecWithPrec(50, 2), - SlashFractionDowntime: sdk.NewDecWithPrec(50, 4), + SlashFractionDoubleSign: math.LegacyNewDecWithPrec(50, 2), + SlashFractionDowntime: math.LegacyNewDecWithPrec(50, 4), } err = suite.database.SaveSlashingParams(types.NewSlashingParams(slashingParams, 10)) suite.Require().NoError(err) @@ -204,10 +202,10 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveSlashingParams() { // Try updating with higher height slashingParams = slashingtypes.Params{ SignedBlocksWindow: 6, - MinSignedPerWindow: sdk.NewDecWithPrec(60, 2), + MinSignedPerWindow: math.LegacyNewDecWithPrec(60, 2), DowntimeJailDuration: 10000, - SlashFractionDoubleSign: sdk.NewDecWithPrec(60, 2), - SlashFractionDowntime: sdk.NewDecWithPrec(60, 4), + SlashFractionDoubleSign: math.LegacyNewDecWithPrec(60, 2), + SlashFractionDowntime: math.LegacyNewDecWithPrec(60, 4), } err = suite.database.SaveSlashingParams(types.NewSlashingParams(slashingParams, 11)) suite.Require().NoError(err) diff --git a/database/staking_params.go b/database/staking_params.go index b24942af7..102f2228c 100644 --- a/database/staking_params.go +++ b/database/staking_params.go @@ -5,7 +5,6 @@ import ( "fmt" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - dbtypes "github.com/forbole/callisto/v4/database/types" "github.com/forbole/callisto/v4/types" ) diff --git a/database/staking_params_test.go b/database/staking_params_test.go index 7a99945f9..b414e38a6 100644 --- a/database/staking_params_test.go +++ b/database/staking_params_test.go @@ -4,10 +4,8 @@ import ( "encoding/json" "time" + "cosmossdk.io/math" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - - sdk "github.com/cosmos/cosmos-sdk/types" - dbtypes "github.com/forbole/callisto/v4/database/types" "github.com/forbole/callisto/v4/types" ) @@ -19,7 +17,7 @@ func (suite *DbTestSuite) TestSaveStakingParams() { 7, 10000, "uatom", - sdk.NewDec(1), + math.LegacyNewDec(1), ) err := suite.database.SaveStakingParams(types.NewStakingParams(stakingParams, 10)) suite.Require().NoError(err) @@ -43,7 +41,7 @@ func (suite *DbTestSuite) TestGetStakingParams() { 7, 10000, "uatom", - sdk.NewDec(1), + math.LegacyNewDec(1), ) paramsBz, err := json.Marshal(&stakingParams) diff --git a/database/staking_pool_test.go b/database/staking_pool_test.go index 3e4f116f5..6647f280c 100644 --- a/database/staking_pool_test.go +++ b/database/staking_pool_test.go @@ -1,15 +1,14 @@ package database_test import ( - sdk "github.com/cosmos/cosmos-sdk/types" - + "cosmossdk.io/math" dbtypes "github.com/forbole/callisto/v4/database/types" "github.com/forbole/callisto/v4/types" ) func (suite *DbTestSuite) TestBigDipperDb_SaveStakingPool() { // Save the data - original := types.NewPool(sdk.NewInt(50), sdk.NewInt(100), sdk.NewInt(5), sdk.NewInt(1), 10) + original := types.NewPool(math.NewInt(50), math.NewInt(100), math.NewInt(5), math.NewInt(1), 10) err := suite.database.SaveStakingPool(original) suite.Require().NoError(err) @@ -25,7 +24,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveStakingPool() { // ---------------------------------------------------------------------------------------------------------------- // Try updating using a lower height - pool := types.NewPool(sdk.NewInt(1), sdk.NewInt(1), sdk.NewInt(1), sdk.NewInt(1), 8) + pool := types.NewPool(math.NewInt(1), math.NewInt(1), math.NewInt(1), math.NewInt(1), 8) err = suite.database.SaveStakingPool(pool) suite.Require().NoError(err) @@ -39,7 +38,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveStakingPool() { // ---------------------------------------------------------------------------------------------------------------- // Try updating with the same height - pool = types.NewPool(sdk.NewInt(1), sdk.NewInt(1), sdk.NewInt(1), sdk.NewInt(1), 10) + pool = types.NewPool(math.NewInt(1), math.NewInt(1), math.NewInt(1), math.NewInt(1), 10) err = suite.database.SaveStakingPool(pool) suite.Require().NoError(err) @@ -55,7 +54,7 @@ func (suite *DbTestSuite) TestBigDipperDb_SaveStakingPool() { // ---------------------------------------------------------------------------------------------------------------- // Try updating with a higher height - pool = types.NewPool(sdk.NewInt(1000000), sdk.NewInt(1000000), sdk.NewInt(20), sdk.NewInt(15), 20) + pool = types.NewPool(math.NewInt(1000000), math.NewInt(1000000), math.NewInt(20), math.NewInt(15), 20) err = suite.database.SaveStakingPool(pool) suite.Require().NoError(err) diff --git a/database/staking_validators.go b/database/staking_validators.go index f57674699..a74f84d79 100644 --- a/database/staking_validators.go +++ b/database/staking_validators.go @@ -3,12 +3,10 @@ package database import ( "fmt" - "github.com/forbole/callisto/v4/types" - - dbtypes "github.com/forbole/callisto/v4/database/types" - sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" ) // SaveValidatorData saves properly the information about the given validator. @@ -116,7 +114,6 @@ func (db *Db) GetValidatorOperatorAddress(consAddr string) (sdk.ValAddress, erro } return sdk.ValAddressFromBech32(result[0]) - } // GetValidator returns the validator having the given address. @@ -167,7 +164,7 @@ ORDER BY validator.consensus_address` return nil, err } - var data = make([]types.Validator, len(rows)) + data := make([]types.Validator, len(rows)) for index, row := range rows { data[index] = row } @@ -219,7 +216,7 @@ func (db *Db) SaveValidatorDescription(description types.ValidatorDescription) e } // Update the existing description with this one, if one is already present - var avatarURL = description.AvatarURL + avatarURL := description.AvatarURL if existing, found := db.getValidatorDescription(consAddr); found { des, err = existing.Description.UpdateDescription(des) if err != nil { diff --git a/database/staking_validators_test.go b/database/staking_validators_test.go index ff070724c..2a757bf6a 100644 --- a/database/staking_validators_test.go +++ b/database/staking_validators_test.go @@ -1,31 +1,28 @@ package database_test import ( - tmtypes "github.com/tendermint/tendermint/proto/tendermint/types" - - "github.com/forbole/callisto/v4/types" - - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" + tmtypes "github.com/cometbft/cometbft/proto/tendermint/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - dbtypes "github.com/forbole/callisto/v4/database/types" + "github.com/forbole/callisto/v4/types" ) -func newDecPts(value int64, prec int64) *sdk.Dec { - dec := sdk.NewDecWithPrec(value, prec) +func newDecPts(value, prec int64) *math.LegacyDec { + dec := math.LegacyNewDecWithPrec(value, prec) return &dec } -func newIntPtr(value int64) *sdk.Int { - val := sdk.NewInt(value) +func newIntPtr(value int64) *math.Int { + val := math.NewInt(value) return &val } // ----------------------------------------------------------- func (suite *DbTestSuite) TestSaveValidator() { - expectedMaxRate := sdk.NewDec(int64(1)) - expectedMaxChangeRate := sdk.NewDec(int64(2)) + expectedMaxRate := math.LegacyNewDec(int64(1)) + expectedMaxChangeRate := math.LegacyNewDec(int64(2)) suite.getAccount("cosmos1z4hfrxvlgl4s8u4n5ngjcw8kdqrcv43599amxs") validator := dbtypes.NewValidatorData( @@ -101,16 +98,16 @@ func (suite *DbTestSuite) TestSaveValidators() { "cosmosvalcons1qqqqrezrl53hujmpdch6d805ac75n220ku09rl", "cosmosvaloper1rcp29q3hpd246n6qak7jluqep4v006cdsc2kkl", "cosmos1z4hfrxvlgl4s8u4n5ngjcw8kdqrcv43599amxs", - sdk.NewDec(int64(1)).String(), - sdk.NewDec(int64(2)).String(), + math.LegacyNewDec(int64(1)).String(), + math.LegacyNewDec(int64(2)).String(), 10, ), dbtypes.NewValidatorInfoRow( "cosmosvalcons1qq92t2l4jz5pt67tmts8ptl4p0jhr6utx5xa8y", "cosmosvaloper1000ya26q2cmh399q4c5aaacd9lmmdqp90kw2jn", "cosmos184ma3twcfjqef6k95ne8w2hk80x2kah7vcwy4a", - sdk.NewDec(int64(1)).String(), - sdk.NewDec(int64(2)).String(), + math.LegacyNewDec(int64(1)).String(), + math.LegacyNewDec(int64(2)).String(), 10, ), } @@ -166,16 +163,16 @@ func (suite *DbTestSuite) TestSaveValidators() { "cosmosvalcons1qqqqrezrl53hujmpdch6d805ac75n220ku09rl", "cosmosvaloper1rcp29q3hpd246n6qak7jluqep4v006cdsc2kkl", "cosmos1z4hfrxvlgl4s8u4n5ngjcw8kdqrcv43599amxs", - sdk.NewDec(int64(1)).String(), - sdk.NewDec(int64(2)).String(), + math.LegacyNewDec(int64(1)).String(), + math.LegacyNewDec(int64(2)).String(), 10, ), dbtypes.NewValidatorInfoRow( "cosmosvalcons1qq92t2l4jz5pt67tmts8ptl4p0jhr6utx5xa8y", "cosmosvaloper1000ya26q2cmh399q4c5aaacd9lmmdqp90kw2jn", "cosmos184ma3twcfjqef6k95ne8w2hk80x2kah7vcwy4a", - sdk.NewDec(int64(10)).String(), - sdk.NewDec(int64(5)).String(), + math.LegacyNewDec(int64(10)).String(), + math.LegacyNewDec(int64(5)).String(), 11, ), } @@ -203,8 +200,8 @@ func (suite *DbTestSuite) TestSaveValidators() { func (suite *DbTestSuite) TestGetValidator() { var i int64 = 1 var ii int64 = 2 - maxRate := sdk.NewDec(i) - maxChangeRate := sdk.NewDec(ii) + maxRate := math.LegacyNewDec(i) + maxChangeRate := math.LegacyNewDec(ii) suite.getAccount("cosmos184ma3twcfjqef6k95ne8w2hk80x2kah7vcwy4a") // Insert test data _, err := suite.database.SQL.Exec(` @@ -240,7 +237,6 @@ VALUES ('cosmosvalcons1qqqqrezrl53hujmpdch6d805ac75n220ku09rl', suite.Require().Equal("cosmos184ma3twcfjqef6k95ne8w2hk80x2kah7vcwy4a", validator.GetSelfDelegateAddress()) suite.Require().True(validator.GetMaxChangeRate().Equal(maxChangeRate)) suite.Require().True(validator.GetMaxRate().Equal(maxRate)) - } func (suite *DbTestSuite) TestGetValidators() { diff --git a/database/types/account_balance.go b/database/types/account_balance.go new file mode 100644 index 000000000..0b52e6be9 --- /dev/null +++ b/database/types/account_balance.go @@ -0,0 +1,26 @@ +package types + +import sdk "github.com/cosmos/cosmos-sdk/types" + +// AccountBalance represents a single row inside the "accound_denom_balancee" table +type AccountBalance struct { + Address string `db:"address"` + Denom string `db:"denom"` + Amount string `db:"amount"` + Height int64 `db:"height"` +} + +// NewAccountBalance allows to easily create a new NewAccountBalance +func NewAccountBalance(address string, coin sdk.Coin, height int64) AccountBalance { + return AccountBalance{ + Address: address, + Denom: coin.Denom, + Amount: coin.Amount.String(), + Height: height, + } +} + +// Equals return true if one row represents the same row as the original one +func (v AccountBalance) Equals(w AccountBalance) bool { + return v.Address == w.Address && v.Denom == v.Denom && v.Amount == v.Amount +} diff --git a/database/types/assetft_params.go b/database/types/assetft_params.go new file mode 100644 index 000000000..e94cc2293 --- /dev/null +++ b/database/types/assetft_params.go @@ -0,0 +1,8 @@ +package types + +// AssetFTParamsRow represents a single row inside the assetft_params table +type AssetFTParamsRow struct { + OneRowID bool `db:"one_row_id"` + Params string `db:"params"` + Height int64 `db:"height"` +} diff --git a/database/types/assetnft_params.go b/database/types/assetnft_params.go new file mode 100644 index 000000000..5d9565f68 --- /dev/null +++ b/database/types/assetnft_params.go @@ -0,0 +1,8 @@ +package types + +// AssetNFTParamsRow represents a single row inside the assetnft_params table +type AssetNFTParamsRow struct { + OneRowID bool `db:"one_row_id"` + Params string `db:"params"` + Height int64 `db:"height"` +} diff --git a/database/types/auth_params.go b/database/types/auth_params.go new file mode 100644 index 000000000..55c3d79e1 --- /dev/null +++ b/database/types/auth_params.go @@ -0,0 +1,8 @@ +package types + +// AuthParamsRow represents a single row inside the auth_params table +type AuthParamsRow struct { + OneRowID bool `db:"one_row_id"` + Params string `db:"params"` + Height int64 `db:"height"` +} diff --git a/database/types/coins.go b/database/types/coins.go index 36a7221e4..a221cbc5d 100644 --- a/database/types/coins.go +++ b/database/types/coins.go @@ -6,6 +6,7 @@ import ( "fmt" "strings" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -77,7 +78,7 @@ func (coin *DbCoin) Scan(src interface{}) error { // ToCoin converts this DbCoin to sdk.Coin func (coin DbCoin) ToCoin() sdk.Coin { - amount, _ := sdk.NewIntFromString(coin.Amount) + amount, _ := math.NewIntFromString(coin.Amount) return sdk.NewCoin(coin.Denom, amount) } @@ -140,7 +141,7 @@ func (coins *DbCoins) Scan(src interface{}) error { // ToCoins converts this DbCoins to sdk.Coins func (coins DbCoins) ToCoins() sdk.Coins { - var sdkCoins = make([]sdk.Coin, len(coins)) + sdkCoins := make([]sdk.Coin, len(coins)) for index := range coins { sdkCoins[index] = coins[index].ToCoin() } @@ -189,7 +190,7 @@ func (coin *DbDecCoin) Scan(src interface{}) error { // ToDecCoin converts this DbDecCoin to sdk.DecCoin func (coin DbDecCoin) ToDecCoin() sdk.DecCoin { - amount, _ := sdk.NewDecFromStr(coin.Amount) + amount, _ := math.LegacyNewDecFromStr(coin.Amount) return sdk.NewDecCoinFromDec(coin.Denom, amount) } @@ -252,7 +253,7 @@ func (coins *DbDecCoins) Scan(src interface{}) error { // ToDecCoins converts this DbDecCoins to sdk.DecCoins func (coins DbDecCoins) ToDecCoins() sdk.DecCoins { - var sdkCoins = make([]sdk.DecCoin, len(coins)) + sdkCoins := make([]sdk.DecCoin, len(coins)) for index := range coins { sdkCoins[index] = coins[index].ToDecCoin() } diff --git a/database/types/customparams_params.go b/database/types/customparams_params.go new file mode 100644 index 000000000..b558e4c66 --- /dev/null +++ b/database/types/customparams_params.go @@ -0,0 +1,8 @@ +package types + +// CustomParamsParamsRow represents a single row inside the customparams_params table +type CustomParamsParamsRow struct { + OneRowID bool `db:"one_row_id"` + StakingParams string `db:"staking_params"` + Height int64 `db:"height"` +} diff --git a/database/types/dex_params.go b/database/types/dex_params.go new file mode 100644 index 000000000..3fa230386 --- /dev/null +++ b/database/types/dex_params.go @@ -0,0 +1,8 @@ +package types + +// DEXParamsRow represents a single row inside the dex_params table +type DEXParamsRow struct { + OneRowID bool `db:"one_row_id"` + Params string `db:"params"` + Height int64 `db:"height"` +} diff --git a/database/types/feemodel_params.go b/database/types/feemodel_params.go new file mode 100644 index 000000000..36736ff88 --- /dev/null +++ b/database/types/feemodel_params.go @@ -0,0 +1,8 @@ +package types + +// FeeModelParamsRow represents a single row inside the feemodel_params table +type FeeModelParamsRow struct { + OneRowID bool `db:"one_row_id"` + Params string `db:"params"` + Height int64 `db:"height"` +} diff --git a/database/types/gov.go b/database/types/gov.go index 004d42bcb..168005f9c 100644 --- a/database/types/gov.go +++ b/database/types/gov.go @@ -221,7 +221,7 @@ type ProposalValidatorVotingPowerSnapshotRow struct { } func NewProposalValidatorVotingPowerSnapshotRow( - id int64, proposalID int64, validatorAddr string, votingPower int64, status int, jailed bool, height int64, + id, proposalID int64, validatorAddr string, votingPower int64, status int, jailed bool, height int64, ) ProposalValidatorVotingPowerSnapshotRow { return ProposalValidatorVotingPowerSnapshotRow{ ID: id, diff --git a/database/types/staking_pool.go b/database/types/staking_pool.go index b97b96a0c..e4861ba31 100644 --- a/database/types/staking_pool.go +++ b/database/types/staking_pool.go @@ -11,7 +11,7 @@ type StakingPoolRow struct { } // NewStakingPoolRow allows to easily create a new StakingPoolRow -func NewStakingPoolRow(bondedTokens, notBondedTokens, unbondingTokens, stakedNotBondedTokens int64, height int64) StakingPoolRow { +func NewStakingPoolRow(bondedTokens, notBondedTokens, unbondingTokens, stakedNotBondedTokens, height int64) StakingPoolRow { return StakingPoolRow{ OneRowID: true, BondedTokens: bondedTokens, diff --git a/database/types/staking_validators.go b/database/types/staking_validators.go index 8db6c9e50..c8fc551e9 100644 --- a/database/types/staking_validators.go +++ b/database/types/staking_validators.go @@ -4,7 +4,7 @@ import ( "database/sql" "strconv" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" ) // ValidatorData contains all the data of a single validator. @@ -55,22 +55,22 @@ func (v ValidatorData) GetSelfDelegateAddress() string { } // GetMaxChangeRate implements types.Validator -func (v ValidatorData) GetMaxChangeRate() *sdk.Dec { +func (v ValidatorData) GetMaxChangeRate() *math.LegacyDec { n, err := strconv.ParseInt(v.MaxChangeRate, 10, 64) if err != nil { panic(err) } - result := sdk.NewDec(n) + result := math.LegacyNewDec(n) return &result } // GetMaxRate implements types.Validator -func (v ValidatorData) GetMaxRate() *sdk.Dec { +func (v ValidatorData) GetMaxRate() *math.LegacyDec { n, err := strconv.ParseInt(v.MaxRate, 10, 64) if err != nil { panic(err) } - result := sdk.NewDec(n) + result := math.LegacyNewDec(n) return &result } @@ -190,7 +190,7 @@ type ValidatorCommissionRow struct { // NewValidatorCommissionRow allows to easily build a new ValidatorCommissionRow instance func NewValidatorCommissionRow( - operatorAddress string, commission string, minSelfDelegation string, height int64, + operatorAddress, commission, minSelfDelegation string, height int64, ) ValidatorCommissionRow { return ValidatorCommissionRow{ OperatorAddress: operatorAddress, @@ -218,7 +218,7 @@ type ValidatorVotingPowerRow struct { } // NewValidatorVotingPowerRow allows to easily build a new ValidatorVotingPowerRow instance -func NewValidatorVotingPowerRow(address string, votingPower int64, height int64) ValidatorVotingPowerRow { +func NewValidatorVotingPowerRow(address string, votingPower, height int64) ValidatorVotingPowerRow { return ValidatorVotingPowerRow{ ValidatorAddress: address, VotingPower: votingPower, @@ -320,7 +320,7 @@ type DoubleSignEvidenceRow struct { } // NewDoubleSignEvidenceRow allows to build a new NewDoubleSignEvidenceRow -func NewDoubleSignEvidenceRow(height int64, voteAID int64, voteBID int64) DoubleSignEvidenceRow { +func NewDoubleSignEvidenceRow(height, voteAID, voteBID int64) DoubleSignEvidenceRow { return DoubleSignEvidenceRow{ Height: height, VoteAID: voteAID, diff --git a/database/types/utils.go b/database/types/utils.go index 5be6926f1..7b1b15d5d 100644 --- a/database/types/utils.go +++ b/database/types/utils.go @@ -62,6 +62,6 @@ func NullTimeToTime(t sql.NullTime) *time.Time { return &t.Time } -func AreNullTimesEqual(first sql.NullTime, second sql.NullTime) bool { +func AreNullTimesEqual(first, second sql.NullTime) bool { return first.Valid == second.Valid && first.Time.Equal(second.Time) } diff --git a/database/utils_test.go b/database/utils_test.go index af45d44c2..da6aecb4f 100644 --- a/database/utils_test.go +++ b/database/utils_test.go @@ -15,5 +15,4 @@ func (suite *DbTestSuite) TestBigDipperDb_InsertEnableModules() { expected := types.NewModuleRows(modules) suite.Require().True(results.Equal(&expected)) - } diff --git a/docker-compose.yml b/docker-compose.yml index 352c1d838..776f9617b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,26 +1,51 @@ version: '3.6' services: + postgres: + image: postgres:14.5 + container_name: postgres + healthcheck: + test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ] + timeout: 60s + interval: 10s + retries: 10 + restart: always + environment: + - POSTGRES_USER=root + - POSTGRES_PASSWORD=password + - APP_DB_USER=docker + - APP_DB_PASS=docker + - APP_DB_NAME=docker + volumes: + - ./database/schema:/docker-entrypoint-initdb.d + ports: + - "5432:5432" + hasura: - image: hasura/graphql-engine:v2.0.4 + image: coreumfoundation/hasura:latest ports: - - "8080:8080" + - "8080:8080" restart: always + depends_on: + - "postgres" environment: + HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anonymous ## this env var can be used to add the above postgres database to Hasura as a data source. this can be removed/updated based on your needs - HASURA_GRAPHQL_DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB} + HASURA_GRAPHQL_DATABASE_URL: postgres://root:password@postgres:5432/root ## enable the console served by server - HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console - ## enable debugging mode. It is recommended to disable this in production - HASURA_GRAPHQL_DEV_MODE: "true" - HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log + HASURA_GRAPHQL_ENABLE_CONSOLE: "true" + ## set to true to enable debugging mode. + HASURA_GRAPHQL_DEV_MODE: "false" + HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log ## uncomment next line to set an admin secret - # HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey + HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey + HASURA_GRAPHQL_METADATA_DIR: /hasura/metadata + ## action url to refer to action API + ACTION_BASE_URL: http://callisto:3000 + callisto: - build: - context: . - dockerfile: Dockerfile + image: coreumfoundation/callisto:latest restart: always - command: callisto parse --home /callisto/.callisto + command: callisto start --home /callisto/.callisto volumes: ## Modify first path to match configuration file. - - /callisto/.callisto:/callisto/.callisto + - .callisto:/callisto/.callisto diff --git a/go.mod b/go.mod index 379072321..0315cc8d9 100644 --- a/go.mod +++ b/go.mod @@ -1,123 +1,113 @@ module github.com/forbole/callisto/v4 -go 1.20 +go 1.23.3 + +replace ( + // cosmos keyring + github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 + // We need this replacement because github.com/coinbase/rosetta-sdk-go/types was part of + // github.com/coinbase/rosetta-sdk-go module in v0.7.9 but now it is standalone module. + // And this causes "ambiguous import" error. Note: it gets broken only when using go work. + github.com/coinbase/rosetta-sdk-go v0.7.9 => github.com/coinbase/rosetta-sdk-go v0.8.4 + // dgrijalva/jwt-go is deprecated and doesn't receive security updates. + // TODO(v5): remove it: https://github.com/cosmos/cosmos-sdk/issues/13134 + github.com/dgrijalva/jwt-go => github.com/golang-jwt/jwt/v4 v4.4.2 + // Coreum verison of the juno + github.com/forbole/juno/v6 => github.com/CoreumFoundation/juno/v6 v6.0.0-20250114085506-751e5a09005b + // https://github.com/cosmos/cosmos-sdk/issues/14949 + // pin the version of goleveldb to v1.0.1-0.20210819022825-2ae1ddf74ef7 required by SDK v47 upgrade guide. + // replace broken goleveldb + github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 +) require ( - cosmossdk.io/math v1.2.0 - cosmossdk.io/simapp v0.0.0-20230712090904-031162fbb96e - github.com/cometbft/cometbft v0.37.2 - github.com/cosmos/cosmos-sdk v0.47.4 - github.com/cosmos/gogoproto v1.4.10 - github.com/forbole/juno/v5 v5.2.1-0.20240201075935-851426ddd905 + cosmossdk.io/math v1.5.0 + cosmossdk.io/store v1.1.1 + cosmossdk.io/x/evidence v0.1.1 + cosmossdk.io/x/feegrant v0.1.1 + cosmossdk.io/x/nft v0.1.1 + cosmossdk.io/x/upgrade v0.1.4 + github.com/CoreumFoundation/coreum/v5 v5.0.0-20250414180032-219788281a9a + github.com/CosmWasm/wasmd v0.54.0 + github.com/cometbft/cometbft v0.38.17 + github.com/cosmos/cosmos-sdk v0.50.13 + github.com/cosmos/gogoproto v1.7.0 + github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.1.1 + github.com/cosmos/ibc-go/v8 v8.7.0 + github.com/forbole/juno/v6 v6.0.1 github.com/go-co-op/gocron v1.37.0 - github.com/golangci/golangci-lint v1.55.2 + github.com/golangci/golangci-lint v1.52.2 github.com/jmoiron/sqlx v1.3.5 - github.com/lib/pq v1.10.9 github.com/pelletier/go-toml v1.9.5 - github.com/prometheus/client_golang v1.18.0 - github.com/proullon/ramsql v0.1.3 - github.com/rs/zerolog v1.32.0 - github.com/spf13/cobra v1.8.0 - github.com/stretchr/testify v1.8.4 - github.com/tendermint/tendermint v0.35.9 - google.golang.org/grpc v1.61.0 - gopkg.in/yaml.v3 v3.0.1 + github.com/proullon/ramsql v0.1.4 + github.com/samber/lo v1.49.1 + github.com/spf13/cobra v1.8.1 + github.com/stretchr/testify v1.10.0 + google.golang.org/grpc v1.70.0 ) require ( 4d63.com/gocheckcompilerdirectives v1.2.1 // indirect 4d63.com/gochecknoglobals v0.2.1 // indirect - cloud.google.com/go v0.110.10 // indirect - cloud.google.com/go/compute v1.23.3 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.5 // 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 // indirect - cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca // indirect - cosmossdk.io/tools/rosetta v0.2.1 // indirect - filippo.io/edwards25519 v1.0.0 // indirect - github.com/4meepo/tagalign v1.3.3 // indirect - github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect - github.com/99designs/keyring v1.2.1 // indirect - github.com/Abirdcfly/dupword v0.0.13 // indirect - github.com/Antonboom/errname v0.1.12 // indirect - github.com/Antonboom/nilnil v0.1.7 // indirect - github.com/Antonboom/testifylint v0.2.3 // indirect - github.com/BurntSushi/toml v1.3.2 // indirect - github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect + cosmossdk.io/api v0.7.6 // indirect + cosmossdk.io/collections v0.4.0 // indirect + cosmossdk.io/errors v1.0.1 // indirect + cosmossdk.io/x/tx v0.13.7 // indirect + github.com/Abirdcfly/dupword v0.0.11 // indirect + github.com/Antonboom/errname v0.1.9 // indirect + github.com/Antonboom/nilnil v0.1.3 // indirect + github.com/BurntSushi/toml v1.4.0 // indirect + github.com/CosmWasm/wasmvm/v2 v2.2.2 // indirect + github.com/DataDog/datadog-go v4.8.3+incompatible // indirect + github.com/DataDog/zstd v1.5.6 // indirect github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect - github.com/GaijinEntertainment/go-exhaustruct/v3 v3.1.0 // indirect + github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0 // indirect github.com/Masterminds/semver v1.5.0 // indirect - github.com/OpenPeeDeeP/depguard/v2 v2.1.0 // indirect - github.com/alecthomas/go-check-sumtype v0.1.3 // indirect - github.com/alexkohler/nakedret/v2 v2.0.2 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/OpenPeeDeeP/depguard v1.1.1 // indirect github.com/alexkohler/prealloc v1.0.0 // indirect github.com/alingse/asasalint v0.0.11 // indirect - github.com/armon/go-metrics v0.4.1 // indirect - github.com/ashanbrown/forbidigo v1.6.0 // indirect + github.com/ashanbrown/forbidigo v1.5.1 // indirect github.com/ashanbrown/makezero v1.1.1 // indirect - github.com/aws/aws-sdk-go v1.44.203 // 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/bkielbasa/cyclop v1.2.1 // indirect + github.com/bits-and-blooms/bitset v1.13.0 // indirect + github.com/bkielbasa/cyclop v1.2.0 // indirect github.com/blizzy78/varnamelen v0.8.0 // indirect github.com/bombsimon/wsl/v3 v3.4.0 // indirect - github.com/breml/bidichk v0.2.7 // indirect - github.com/breml/errchkjson v0.3.6 // indirect - github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect - github.com/butuzov/ireturn v0.2.2 // indirect - github.com/butuzov/mirror v1.1.0 // indirect - github.com/catenacyber/perfsprint v0.2.0 // indirect - github.com/ccojocar/zxcvbn-go v1.0.1 // indirect - github.com/cenkalti/backoff/v4 v4.1.3 // indirect - github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/breml/bidichk v0.2.4 // indirect + github.com/breml/errchkjson v0.3.1 // indirect + github.com/butuzov/ireturn v0.1.1 // indirect + github.com/bytedance/sonic v1.12.3 // indirect + github.com/bytedance/sonic/loader v0.2.0 // indirect github.com/charithe/durationcheck v0.0.10 // indirect - github.com/chavacava/garif v0.1.0 // indirect + github.com/chavacava/garif v0.0.0-20230227094218-b8c73b2037b8 // indirect github.com/chzyer/readline v1.5.1 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/cloudwego/iasm v0.2.0 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect - github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect - github.com/cometbft/cometbft-db v0.7.0 // indirect - github.com/confio/ics23/go v0.9.0 // 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/iavl v0.20.0 // indirect - github.com/cosmos/ibc-go/v7 v7.0.1 // indirect - github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab // indirect - github.com/cosmos/ledger-cosmos-go v0.12.1 // indirect - github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect - github.com/creachadair/taskgroup v0.4.2 // indirect + github.com/cockroachdb/apd/v3 v3.2.1 // indirect + github.com/cockroachdb/errors v1.11.3 // indirect + github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 // indirect + github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 // indirect + github.com/cockroachdb/pebble v1.1.4 // indirect + github.com/cockroachdb/redact v1.1.6 // indirect + github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect + github.com/cometbft/cometbft-db v0.14.1 // indirect + github.com/cosmos/cosmos-db v1.1.1 // indirect + github.com/cosmos/ibc-go/modules/capability v1.0.1 // indirect github.com/curioswitch/go-reassign v0.2.0 // indirect - github.com/daixiang0/gci v0.11.2 // indirect - github.com/danieljoos/wincred v1.1.2 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect + github.com/daixiang0/gci v0.10.1 // indirect github.com/denis-tingaikin/go-header v0.4.3 // indirect - github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect - 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/dustin/go-humanize v1.0.1 // indirect - github.com/dvsekhvalnov/jose2go v1.6.0 // indirect + github.com/dgraph-io/badger/v4 v4.2.0 // indirect + github.com/distribution/reference v0.6.0 // indirect + github.com/emicklei/dot v1.6.4 // indirect github.com/esimonov/ifshort v1.0.4 // indirect github.com/ettle/strcase v0.1.1 // indirect - github.com/fatih/color v1.15.0 // indirect + github.com/fatih/color v1.17.0 // indirect github.com/fatih/structtag v1.2.0 // indirect - github.com/felixge/httpsnoop v1.0.2 // indirect github.com/firefart/nonamedreturns v1.0.4 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect - github.com/ghostiam/protogetter v0.2.3 // indirect - github.com/go-critic/go-critic v0.9.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/getsentry/sentry-go v0.31.1 // indirect + github.com/go-critic/go-critic v0.7.0 // indirect github.com/go-toolsmith/astcast v1.1.0 // indirect github.com/go-toolsmith/astcopy v1.1.0 // indirect github.com/go-toolsmith/astequal v1.1.0 // indirect @@ -125,200 +115,229 @@ require ( github.com/go-toolsmith/astp v1.1.0 // indirect github.com/go-toolsmith/strparse v1.1.0 // indirect github.com/go-toolsmith/typep v1.1.0 // indirect + github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect github.com/gobwas/glob v0.2.3 // indirect - github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gofrs/flock v0.8.1 // indirect - github.com/gogo/googleapis v1.4.1 // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/mock v1.6.0 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/golang/snappy v0.0.4 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 // indirect github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe // indirect - github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect + github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2 // indirect github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 // indirect github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca // indirect - github.com/golangci/misspell v0.4.1 // indirect - github.com/golangci/revgrep v0.5.2 // indirect + github.com/golangci/misspell v0.4.0 // indirect + github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 // indirect github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 // indirect - github.com/google/btree v1.1.2 // indirect - github.com/google/go-cmp v0.6.0 // indirect - github.com/google/orderedcode v0.0.1 // indirect - github.com/google/s2a-go v0.1.7 // indirect - github.com/google/uuid v1.4.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.0 // indirect - github.com/gordonklaus/ineffassign v0.0.0-20230610083614-0e73809eb601 // 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 + github.com/google/flatbuffers v24.3.25+incompatible // indirect + github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28 // indirect + github.com/gorilla/mux v1.8.1 // indirect github.com/gostaticanalysis/analysisutil v0.7.1 // indirect github.com/gostaticanalysis/comment v1.4.2 // indirect github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect github.com/gostaticanalysis/nilerr v0.1.1 // indirect - github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect - github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect - github.com/gtank/merlin v0.1.1 // indirect - github.com/gtank/ristretto255 v0.1.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect - github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-getter v1.7.1 // indirect - github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-hclog v1.6.3 // indirect + github.com/hashicorp/go-metrics v0.5.3 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-safetemp v1.0.0 // indirect - github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hdevalence/ed25519consensus v0.1.0 // indirect + github.com/hashicorp/go-plugin v1.6.1 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect + github.com/hashicorp/yamux v0.1.1 // indirect github.com/hexops/gotextdiff v1.0.3 // indirect - github.com/huandu/skiplist v1.2.0 // indirect - github.com/improbable-eng/grpc-web v0.15.0 // indirect - github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/jgautheron/goconst v1.6.0 // indirect + github.com/iancoleman/orderedmap v0.3.0 // indirect + github.com/iancoleman/strcase v0.3.0 // indirect + github.com/jgautheron/goconst v1.5.1 // indirect github.com/jingyugao/rowserrcheck v1.1.1 // indirect github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect - github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/jmhodges/levigo v1.0.0 // indirect github.com/julz/importas v0.1.0 // indirect + github.com/junk1tm/musttag v0.5.0 // indirect github.com/kisielk/errcheck v1.6.3 // indirect github.com/kisielk/gotool v1.0.0 // indirect github.com/kkHAIKE/contextcheck v1.1.4 // indirect - github.com/klauspost/compress v1.16.3 // indirect + github.com/klauspost/cpuid/v2 v2.2.4 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/kulti/thelper v0.6.3 // indirect - github.com/kunwardeep/paralleltest v1.0.8 // indirect + github.com/kunwardeep/paralleltest v1.0.6 // indirect github.com/kyoh86/exportloopref v0.1.11 // indirect github.com/ldez/gomoddirectives v0.2.3 // indirect - github.com/ldez/tagliatelle v0.5.0 // indirect + github.com/ldez/tagliatelle v0.4.0 // indirect github.com/leonklingele/grouper v1.1.1 // indirect - github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/lufeee/execinquery v1.2.1 // indirect - github.com/macabu/inamedparam v0.1.2 // indirect - github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/maratori/testableexamples v1.0.0 // indirect github.com/maratori/testpackage v1.1.1 // indirect github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 // 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.9 // indirect - github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mbilski/exhaustivestruct v1.2.0 // indirect - github.com/mgechev/revive v1.3.4 // indirect - github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect - github.com/minio/highwayhash v1.0.2 // 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/mgechev/revive v1.3.1 // indirect github.com/moricho/tparallel v0.3.1 // indirect - github.com/mtibben/percent v0.2.1 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/nakabonne/nestif v0.3.1 // indirect - github.com/nishanths/exhaustive v0.11.0 // indirect + github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 // indirect + github.com/nishanths/exhaustive v0.9.5 // indirect github.com/nishanths/predeclared v0.2.2 // indirect - github.com/nunnatsa/ginkgolinter v0.14.1 // indirect + github.com/nunnatsa/ginkgolinter v0.9.0 // indirect + github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect + github.com/oklog/run v1.1.0 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.7 // 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/polyfloyd/go-errorlint v1.4.5 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.45.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect github.com/quasilyte/go-ruleguard v0.4.0 // indirect github.com/quasilyte/gogrep v0.5.0 // indirect github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect - github.com/rakyll/statik v0.1.7 // indirect - github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + github.com/rivo/uniseg v0.2.0 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect - github.com/rs/cors v1.8.3 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/ryancurrah/gomodguard v1.3.0 // indirect - github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect + github.com/ryanrolds/sqlclosecheck v0.4.0 // indirect + github.com/sagikazarmark/locafero v0.7.0 // indirect github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect - github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/sashamelentyev/interfacebloat v1.1.0 // indirect - github.com/sashamelentyev/usestdlibvars v1.24.0 // indirect - github.com/securego/gosec/v2 v2.18.2 // indirect + github.com/sashamelentyev/usestdlibvars v1.23.0 // indirect + github.com/securego/gosec/v2 v2.15.0 // indirect + github.com/shamaton/msgpack/v2 v2.2.2 // indirect github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/sivchari/containedctx v1.0.3 // indirect + github.com/sivchari/containedctx v1.0.2 // indirect github.com/sivchari/nosnakecase v1.7.0 // indirect github.com/sivchari/tenv v1.7.1 // indirect github.com/sonatard/noctx v0.0.2 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect github.com/sourcegraph/go-diff v0.7.0 // indirect - github.com/spf13/afero v1.9.3 // indirect - github.com/spf13/cast v1.5.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/cast v1.7.1 // indirect + github.com/spf13/viper v1.20.0 // indirect github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect - github.com/stretchr/objx v0.5.0 // indirect - github.com/subosito/gotenv v1.4.2 // indirect - github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect + github.com/stretchr/objx v0.5.2 // indirect github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect github.com/tdakkota/asciicheck v0.2.0 // indirect - github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect - github.com/tendermint/go-amino v0.16.0 // indirect - github.com/tetafro/godot v1.4.15 // indirect - github.com/tidwall/btree v1.6.0 // indirect - github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 // indirect + github.com/tetafro/godot v1.4.11 // indirect + github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e // indirect github.com/timonwong/loggercheck v0.9.4 // indirect github.com/tomarrell/wrapcheck/v2 v2.8.1 // indirect github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect - github.com/ulikunitz/xz v0.5.11 // indirect - github.com/ultraware/funlen v0.1.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ultraware/funlen v0.0.3 // indirect github.com/ultraware/whitespace v0.0.5 // indirect - github.com/uudashr/gocognit v1.1.2 // indirect - github.com/xen0n/gosmopolitan v1.2.2 // indirect + github.com/uudashr/gocognit v1.0.6 // indirect github.com/yagipy/maintidx v1.0.0 // indirect github.com/yeya24/promlinter v0.2.0 // indirect - github.com/ykadowak/zerologlint v0.1.3 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.1 // indirect - gitlab.com/bosi/decorder v0.4.1 // indirect - go-simpler.org/sloglint v0.1.2 // indirect - go.etcd.io/bbolt v1.3.7 // indirect - go.opencensus.io v0.24.0 // indirect - go.tmz.dev/musttag v0.7.2 // indirect + gitlab.com/bosi/decorder v0.2.3 // indirect go.uber.org/atomic v1.10.0 // indirect - go.uber.org/multierr v1.8.0 // indirect + go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.24.0 // indirect - golang.org/x/crypto v0.17.0 // indirect - golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 // indirect + golang.org/x/arch v0.3.0 // indirect golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 // indirect - golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.18.0 // indirect - golang.org/x/oauth2 v0.14.0 // indirect - golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/term v0.15.0 // indirect - golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.14.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.149.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/protobuf v1.31.0 // indirect - gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - honnef.co/go/tools v0.4.6 // indirect - mvdan.cc/gofumpt v0.5.0 // indirect + golang.org/x/mod v0.23.0 // indirect + golang.org/x/sync v0.11.0 // indirect + golang.org/x/tools v0.30.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect + gotest.tools/v3 v3.5.1 // indirect + honnef.co/go/tools v0.4.3 // indirect + mvdan.cc/gofumpt v0.4.0 // indirect mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed // indirect mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b // indirect mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d // indirect - nhooyr.io/websocket v1.8.6 // indirect - pgregory.net/rapid v0.5.5 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect ) -// This is to avoid warnings while running the binary -// See here: https://github.com/desmos-labs/desmos/pull/1131#discussion_r1194090419 -replace github.com/cosmos/gogoproto => github.com/cosmos/gogoproto v1.4.10 +require ( + cosmossdk.io/core v0.11.1 // indirect + cosmossdk.io/depinject v1.1.0 // indirect + cosmossdk.io/log v1.5.0 + filippo.io/edwards25519 v1.1.0 // indirect + github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect + github.com/99designs/keyring v1.2.2 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/bgentry/speakeasy v0.2.0 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/cosmos/btcutil v1.0.5 // indirect + github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect + github.com/cosmos/go-bip39 v1.0.0 // indirect + github.com/cosmos/gogogateway v1.2.0 // indirect + github.com/cosmos/iavl v1.2.4 // indirect + github.com/cosmos/ics23/go v0.11.0 // indirect + github.com/cosmos/ledger-cosmos-go v0.14.0 // indirect + github.com/danieljoos/wincred v1.2.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect + github.com/desertbit/timer v1.0.1 // indirect + github.com/dgraph-io/ristretto v0.1.1 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/dvsekhvalnov/jose2go v1.7.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/go-kit/kit v0.13.0 // indirect + github.com/go-kit/log v0.2.1 // indirect + github.com/go-logfmt/logfmt v0.6.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.2.4 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect + github.com/google/btree v1.1.3 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/orderedcode v0.0.1 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/handlers v1.5.2 // indirect + github.com/gorilla/websocket v1.5.3 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect + github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect + github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect + github.com/hashicorp/golang-lru v1.0.2 // indirect + github.com/hdevalence/ed25519consensus v0.2.0 // indirect + github.com/huandu/skiplist v1.2.0 // indirect + github.com/improbable-eng/grpc-web v0.15.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jmhodges/levigo v1.0.0 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/lib/pq v1.10.9 + github.com/linxGnu/grocksdb v1.9.8 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/minio/highwayhash v1.0.3 // indirect + github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mitchellh/go-testing-interface v1.14.1 // indirect + github.com/mtibben/percent v0.2.1 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.3 // indirect + github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.20.5 + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.62.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + github.com/rs/cors v1.11.1 // indirect + github.com/rs/zerolog v1.33.0 + github.com/sasha-s/go-deadlock v0.3.5 // indirect + github.com/spf13/afero v1.12.0 // indirect + github.com/spf13/pflag v1.0.6 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect + github.com/tendermint/go-amino v0.16.0 // indirect + github.com/tidwall/btree v1.7.0 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect + go.etcd.io/bbolt v1.4.0-alpha.1 // indirect + go.opencensus.io v0.24.0 // indirect + golang.org/x/crypto v0.35.0 // indirect + golang.org/x/exp v0.0.0-20250215185904-eff6e970281f // indirect + golang.org/x/net v0.36.0 // indirect + golang.org/x/sys v0.30.0 // indirect + golang.org/x/term v0.29.0 // indirect + golang.org/x/text v0.22.0 // indirect + google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241223144023-3abc09e42ca8 // indirect + google.golang.org/protobuf v1.36.5 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 + nhooyr.io/websocket v1.8.11 // indirect + pgregory.net/rapid v1.1.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect +) diff --git a/go.sum b/go.sum index 0607192d0..dc65b1bf8 100644 --- a/go.sum +++ b/go.sum @@ -1,15 +1,14 @@ 4d63.com/gocheckcompilerdirectives v1.2.1 h1:AHcMYuw56NPjq/2y615IGg2kYkBdTvOaojYCBcRE7MA= 4d63.com/gocheckcompilerdirectives v1.2.1/go.mod h1:yjDJSxmDTtIHHCqX0ufRYZDL6vQtMG7tJdKVeWwsqvs= -4d63.com/gochecknoglobals v0.1.0/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= 4d63.com/gochecknoglobals v0.2.1 h1:1eiorGsgHOFOuoOiJDy2psSrQbRdIHrlge0IJIkUgDc= 4d63.com/gochecknoglobals v0.2.1/go.mod h1:KRE8wtJB3CXCsb1xy421JfTHIIbmT3U5ruxw2Qu8fSU= -bitbucket.org/creachadair/shell v0.0.6/go.mod h1:8Qqi/cYk7vPnsOePHroKXDJYmb5x7ENhtiFtfZq8K+M= +cel.dev/expr v0.19.0 h1:lXuo+nDhpyJSpWxpPVi5cPUwzKb+dsdOiw6IreM5yt0= +cel.dev/expr v0.19.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= 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= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -18,666 +17,153 @@ cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6 cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.60.0/go.mod h1:yw2G51M9IfRboUH61Us8GqCeF1PzPblB823Mn2q2eAU= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= -cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.98.0/go.mod h1:ua6Ush4NALrHk5QXDWnjvZHN93OuF0HfuEPq9I1X0cM= -cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= -cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= -cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= -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.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= -cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= -cloud.google.com/go v0.110.10 h1:LXy9GEO+timppncPIAZoOj3l58LIU9k+kn48AN7IO3Y= -cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic= -cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= -cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= -cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= -cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= -cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= -cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= -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/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= -cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= -cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= -cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= -cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= -cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= -cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= -cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= -cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= -cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= -cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= -cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= -cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= -cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= -cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= -cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= -cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= -cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= -cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= -cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= -cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= -cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= -cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= -cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= -cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= -cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= -cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= -cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= -cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= -cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= -cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= -cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= -cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= -cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= -cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= -cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= -cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= -cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= -cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= -cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= -cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= -cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= -cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= -cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= -cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= -cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= -cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= -cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= -cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= -cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= -cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= -cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= +cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= +cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= +cloud.google.com/go/auth v0.13.0 h1:8Fu8TZy167JkW8Tj3q7dIkr2v4cndv41ouecJx0PAHs= +cloud.google.com/go/auth v0.13.0/go.mod h1:COOjD9gwfKNKz+IIduatIhYJQIc0mG3H102r/EMxX6Q= +cloud.google.com/go/auth/oauth2adapt v0.2.6 h1:V6a6XDu2lTwPZWOawrAa9HUK+DB2zfJyTuciBG5hFkU= +cloud.google.com/go/auth/oauth2adapt v0.2.6/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= -cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= -cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= -cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= -cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= -cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= -cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= -cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= -cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= -cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= -cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= -cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= -cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= -cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= -cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= -cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= -cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= -cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= -cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= -cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= -cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= -cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= -cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= -cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= -cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= -cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= -cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= -cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= -cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= -cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= -cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= -cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= -cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= -cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= -cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= -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.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= -cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= -cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= -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.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= -cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= -cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= -cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= -cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= -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/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= -cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= -cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= -cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= -cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= -cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= -cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= -cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= -cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= -cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= -cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= -cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= -cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= -cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= -cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= -cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= -cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= -cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= -cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= -cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= -cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= -cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= -cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= -cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= -cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= -cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= -cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= -cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= -cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= -cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= -cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= -cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= -cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= -cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= -cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= -cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= -cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= -cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= +cloud.google.com/go/compute v1.29.0 h1:Lph6d8oPi38NHkOr6S55Nus/Pbbcp37m/J0ohgKAefs= +cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I= +cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= -cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= -cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= -cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= -cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= -cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= -cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= -cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= -cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= -cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= -cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= -cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= -cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= -cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= -cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= -cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= -cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= -cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= -cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= -cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= -cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= -cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= -cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= -cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= -cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= -cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= -cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= -cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= -cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= -cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= -cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= -cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= -cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= -cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= -cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= -cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= -cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= -cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= -cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= -cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= -cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY= -cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= -cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= -cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= -cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= -cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= -cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= -cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= -cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= -cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= -cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= -cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= -cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= -cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= -cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= -cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= -cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= -cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= -cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= -cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= -cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= -cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= -cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= -cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= -cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= -cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= -cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= -cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= -cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= -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.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= -cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= -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/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= -cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= -cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= -cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= -cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= -cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= -cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= -cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= -cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= -cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= -cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= -cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= -cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= -cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= -cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= -cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= -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/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= -cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= -cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= -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/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= -cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= -cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= -cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= -cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= -cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= -cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= -cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= -cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= -cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= -cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= -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/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= -cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= -cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= -cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= -cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= -cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= -cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= -cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= -cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= -cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= -cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= -cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= -cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= -cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= -cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= -cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= -cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= -cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= -cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= -cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= -cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= -cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= -cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= -cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= -cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= -cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= -cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= -cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= -cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= -cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= -cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= -cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= -cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= -cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= -cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= -cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= -cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= -cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= -cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= -cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= -cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= -cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= -cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= -cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= -cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= -cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= -cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= -cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= -cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= -cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= -cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= -cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= -cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= -cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= -cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= -cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= -cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= -cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= +cloud.google.com/go/iam v1.2.2 h1:ozUSofHUGf/F4tCNy/mu9tHLTaxZFLOUiKzjcgWHGIA= +cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY= +cloud.google.com/go/monitoring v1.21.2 h1:FChwVtClH19E7pJ+e0xUhJPGksctZNVOk2UhMmblmdU= +cloud.google.com/go/monitoring v1.21.2/go.mod h1:hS3pXvaG8KgWTSz+dAdyzPrGUYmi2Q+WFX8g2hqVEZU= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/pubsub v1.5.0/go.mod h1:ZEwJccE3z93Z2HWvstpri00jOg7oO4UZDtKhwDwqF0w= -cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= -cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= -cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= -cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= -cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= -cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= -cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= -cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= -cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= -cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= -cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= -cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= -cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= -cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= -cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= -cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= -cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= -cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= -cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= -cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= -cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= -cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= -cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= -cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= -cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= -cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= -cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= -cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= -cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= -cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= -cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= -cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= -cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= -cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= -cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= -cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= -cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= -cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= -cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= -cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= -cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= -cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= -cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= -cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= -cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= -cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= -cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= -cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= -cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= -cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= -cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= -cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= -cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= -cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= -cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= -cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= -cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= -cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= -cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= -cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= -cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= -cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= -cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= -cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= -cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= -cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= -cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= -cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= -cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= -cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= -cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= -cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= -cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= -cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= -cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= -cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= -cloud.google.com/go/spanner v1.7.0/go.mod h1:sd3K2gZ9Fd0vMPLXzeCrF6fq4i63Q7aTLW/lBIfBkIk= -cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= -cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= -cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= -cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= -cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= -cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= -cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -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.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= -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/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= -cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= -cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= -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/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= -cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= -cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= -cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= -cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= -cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= -cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= -cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= -cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= -cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= -cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= -cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= -cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= -cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= -cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= -cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= -cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= -cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= -cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= -cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= -cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= -cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= -cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= -cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= -cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= -cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= -cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= -cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= -cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= -cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= -cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= -cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= -cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= -cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= -cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= -cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= -cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= -cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= -cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= -cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= -cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= -cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= -cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= -cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= -cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= -cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= -cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= -cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= -cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= -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 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= -cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0= -cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca h1:msenprh2BLLRwNT7zN56TbBHOGk/7ARQckXHxXyvjoQ= -cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca/go.mod h1:PkIAKXZvaxrTRc++z53XMRvFk8AcGGWYHcMIPzVYX9c= -cosmossdk.io/math v1.2.0 h1:8gudhTkkD3NxOP2YyyJIYYmt6dQ55ZfJkDOaxXpy7Ig= -cosmossdk.io/math v1.2.0/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= -cosmossdk.io/simapp v0.0.0-20230712090904-031162fbb96e h1:1V2wHlfP6CqektxgLggSHVA+7nxzXSbzK6caRQI+vE8= -cosmossdk.io/simapp v0.0.0-20230712090904-031162fbb96e/go.mod h1:Egfk2ftC9TVcJJZ/uyB8rlu9CSk9QP2OHEyvK6aRl3g= -cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= -cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= +cloud.google.com/go/storage v1.49.0 h1:zenOPBOWHCnojRd9aJZAyQXBYqkJkdQS42dxL55CIMw= +cloud.google.com/go/storage v1.49.0/go.mod h1:k1eHhhpLvrPjVGfo0mOUPEJ4Y2+a/Hv5PiwehZI9qGU= +cosmossdk.io/api v0.7.6 h1:PC20PcXy1xYKH2KU4RMurVoFjjKkCgYRbVAD4PdqUuY= +cosmossdk.io/api v0.7.6/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/client/v2 v2.0.0-beta.3 h1:+TTuH0DwQYsUq2JFAl3fDZzKq5gQG7nt3dAattkjFDU= +cosmossdk.io/client/v2 v2.0.0-beta.3/go.mod h1:CZcL41HpJPOOayTCO28j8weNBQprG+SRiKX39votypo= +cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= +cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= +cosmossdk.io/core v0.11.1 h1:h9WfBey7NAiFfIcUhDVNS503I2P2HdZLebJlUIs8LPA= +cosmossdk.io/core v0.11.1/go.mod h1:OJzxcdC+RPrgGF8NJZR2uoQr56tc7gfBKhiKeDO7hH0= +cosmossdk.io/depinject v1.1.0 h1:wLan7LG35VM7Yo6ov0jId3RHWCGRhe8E8bsuARorl5E= +cosmossdk.io/depinject v1.1.0/go.mod h1:kkI5H9jCGHeKeYWXTqYdruogYrEeWvBQCw1Pj4/eCFI= +cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= +cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= +cosmossdk.io/log v1.5.0 h1:dVdzPJW9kMrnAYyMf1duqacoidB9uZIl+7c6z0mnq0g= +cosmossdk.io/log v1.5.0/go.mod h1:Tr46PUJjiUthlwQ+hxYtUtPn4D/oCZXAkYevBeh5+FI= +cosmossdk.io/math v1.5.0 h1:sbOASxee9Zxdjd6OkzogvBZ25/hP929vdcYcBJQbkLc= +cosmossdk.io/math v1.5.0/go.mod h1:AAwwBmUhqtk2nlku174JwSll+/DepUXW3rWIXN5q+Nw= +cosmossdk.io/store v1.1.1 h1:NA3PioJtWDVU7cHHeyvdva5J/ggyLDkyH0hGHl2804Y= +cosmossdk.io/store v1.1.1/go.mod h1:8DwVTz83/2PSI366FERGbWSH7hL6sB7HbYp8bqksNwM= +cosmossdk.io/x/circuit v0.1.1 h1:KPJCnLChWrxD4jLwUiuQaf5mFD/1m7Omyo7oooefBVQ= +cosmossdk.io/x/circuit v0.1.1/go.mod h1:B6f/urRuQH8gjt4eLIXfZJucrbreuYrKh5CSjaOxr+Q= +cosmossdk.io/x/evidence v0.1.1 h1:Ks+BLTa3uftFpElLTDp9L76t2b58htjVbSZ86aoK/E4= +cosmossdk.io/x/evidence v0.1.1/go.mod h1:OoDsWlbtuyqS70LY51aX8FBTvguQqvFrt78qL7UzeNc= +cosmossdk.io/x/feegrant v0.1.1 h1:EKFWOeo/pup0yF0svDisWWKAA9Zags6Zd0P3nRvVvw8= +cosmossdk.io/x/feegrant v0.1.1/go.mod h1:2GjVVxX6G2fta8LWj7pC/ytHjryA6MHAJroBWHFNiEQ= +cosmossdk.io/x/nft v0.1.1 h1:pslAVS8P5NkW080+LWOamInjDcq+v2GSCo+BjN9sxZ8= +cosmossdk.io/x/nft v0.1.1/go.mod h1:Kac6F6y2gsKvoxU+fy8uvxRTi4BIhLOor2zgCNQwVgY= +cosmossdk.io/x/tx v0.13.7 h1:8WSk6B/OHJLYjiZeMKhq7DK7lHDMyK0UfDbBMxVmeOI= +cosmossdk.io/x/tx v0.13.7/go.mod h1:V6DImnwJMTq5qFjeGWpXNiT/fjgE4HtmclRmTqRVM3w= +cosmossdk.io/x/upgrade v0.1.4 h1:/BWJim24QHoXde8Bc64/2BSEB6W4eTydq0X/2f8+g38= +cosmossdk.io/x/upgrade v0.1.4/go.mod h1:9v0Aj+fs97O+Ztw+tG3/tp5JSlrmT7IcFhAebQHmOPo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= -filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= -gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= -git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= -github.com/4meepo/tagalign v1.3.3 h1:ZsOxcwGD/jP4U/aw7qeWu58i7dwYemfy5Y+IF1ACoNw= -github.com/4meepo/tagalign v1.3.3/go.mod h1:Q9c1rYMZJc9dPRkbQPpcBNCLEmY2njbAsXhQOZFE2dE= +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= -github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o= -github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= -github.com/Abirdcfly/dupword v0.0.13 h1:SMS17YXypwP000fA7Lr+kfyBQyW14tTT+nRv9ASwUUo= -github.com/Abirdcfly/dupword v0.0.13/go.mod h1:Ut6Ue2KgF/kCOawpW4LnExT+xZLQviJPE4klBPMK/5Y= -github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0SddnIAGavU= -github.com/Antonboom/errname v0.1.12 h1:oh9ak2zUtsLp5oaEd/erjB4GPu9w19NyoIskZClDcQY= -github.com/Antonboom/errname v0.1.12/go.mod h1:bK7todrzvlaZoQagP1orKzWXv59X/x0W0Io2XT1Ssro= -github.com/Antonboom/nilnil v0.1.1/go.mod h1:L1jBqoWM7AOeTD+tSquifKSesRHs4ZdaxvZR+xdJEaI= -github.com/Antonboom/nilnil v0.1.7 h1:ofgL+BA7vlA1K2wNQOsHzLJ2Pw5B5DpWRLdDAVvvTow= -github.com/Antonboom/nilnil v0.1.7/go.mod h1:TP+ScQWVEq0eSIxqU8CbdT5DFWoHp0MbP+KMUO1BKYQ= -github.com/Antonboom/testifylint v0.2.3 h1:MFq9zyL+rIVpsvLX4vDPLojgN7qODzWsrnftNX2Qh60= -github.com/Antonboom/testifylint v0.2.3/go.mod h1:IYaXaOX9NbfAyO+Y04nfjGI8wDemC1rUyM/cYolz018= -github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= -github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -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/Abirdcfly/dupword v0.0.11 h1:z6v8rMETchZXUIuHxYNmlUAuKuB21PeaSymTed16wgU= +github.com/Abirdcfly/dupword v0.0.11/go.mod h1:wH8mVGuf3CP5fsBTkfWwwwKTjDnVVCxtU8d8rgeVYXA= +github.com/Antonboom/errname v0.1.9 h1:BZDX4r3l4TBZxZ2o2LNrlGxSHran4d1u4veZdoORTT4= +github.com/Antonboom/errname v0.1.9/go.mod h1:nLTcJzevREuAsgTbG85UsuiWpMpAqbKD1HNZ29OzE58= +github.com/Antonboom/nilnil v0.1.3 h1:6RTbx3d2mcEu3Zwq9TowQpQMVpP75zugwOtqY1RTtcE= +github.com/Antonboom/nilnil v0.1.3/go.mod h1:iOov/7gRcXkeEU+EMGpBu2ORih3iyVEiWjeste1SJm8= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= -github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= 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/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/CoreumFoundation/coreum/v5 v5.0.0-20250414180032-219788281a9a h1:Vlj88d6MrwunZIqR/q1k0jerWi1MJojBUGXgSZkI6Oc= +github.com/CoreumFoundation/coreum/v5 v5.0.0-20250414180032-219788281a9a/go.mod h1:yYMKci1gJ3M/IA2qeg6ek0tske0xe7eMlOasFt6Zxvk= +github.com/CoreumFoundation/juno/v6 v6.0.0-20250114085506-751e5a09005b h1:dqe7QC2MQucPK7EicD5Y/TK8+pt04T8kfGNjpy2rzNQ= +github.com/CoreumFoundation/juno/v6 v6.0.0-20250114085506-751e5a09005b/go.mod h1:O3o+73CiNjsIuPNWBOH3Wv59vvI5zeGfYIZBjsNj4/I= +github.com/CosmWasm/wasmd v0.54.0 h1:/txsBehV1xnAi46H1xwuuY6D4NySujBy+wa5+ryItS8= +github.com/CosmWasm/wasmd v0.54.0/go.mod h1:8Zu/rj6RHbJ8Gx0WdqsGeHvgnEQb0rqchpqhgMxASRU= +github.com/CosmWasm/wasmvm/v2 v2.2.2 h1:MaQMtaZN8L08N0uAlBlOICP+GWolibJsajHGo3fQ03w= +github.com/CosmWasm/wasmvm/v2 v2.2.2/go.mod h1:bMhLQL4Yp9CzJi9A83aR7VO9wockOsSlZbT4ztOl6bg= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/DataDog/datadog-go v4.8.3+incompatible h1:fNGaYSuObuQb5nzeTQqowRAd9bpDIRRV4/gUtIBjh8Q= +github.com/DataDog/datadog-go v4.8.3+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0/go.mod h1:n/vLeA7V+QY84iYAGwMkkUUp9ooeuftMEvaDrSVch+Q= -github.com/GaijinEntertainment/go-exhaustruct/v3 v3.1.0 h1:3ZBs7LAezy8gh0uECsA6CGU43FF3zsx5f4eah5FxTMA= -github.com/GaijinEntertainment/go-exhaustruct/v3 v3.1.0/go.mod h1:rZLTje5A9kFBe0pzhpe2TdhRniBF++PRHQuRpR8esVc= -github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= -github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= -github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0 h1:+r1rSv4gvYn0wmRjC8X7IAzX8QezqtFV9m0MUHFJgts= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0/go.mod h1:b3g59n2Y+T5xmcxJL+UEG2f8cQploZm1mR/v6BW0mU0= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 h1:UQ0AhxogsIRZDkElkblfnwjc3IaltCm2HUMvezQaL7s= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1/go.mod h1:jyqM3eLpJ3IbIFDTKVz2rF9T/xWGW0rIriGwnz8l9Tk= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 h1:8nn+rsCvTq9axyEh382S0PFLBeaFwNsT43IrPWzctRU= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1/go.mod h1:viRWSEhtMZqz1rhwmOVKkWl6SwmVowfL9O2YR5gI2PE= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= -github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/OpenPeeDeeP/depguard v1.1.0/go.mod h1:JtAMzWkmFEzDPyAd+W0NHl1lvpQKTvT9jnRVsohBKpc= -github.com/OpenPeeDeeP/depguard/v2 v2.1.0 h1:aQl70G173h/GZYhWf36aE5H0KaujXfVMnn/f1kSDVYY= -github.com/OpenPeeDeeP/depguard/v2 v2.1.0/go.mod h1:PUBgk35fX4i7JDmwzlJwJ+GMe6NfO1723wmJMgPThNQ= +github.com/OpenPeeDeeP/depguard v1.1.1 h1:TSUznLjvp/4IUP+OQ0t/4jF4QUyxIcVX8YnghZdunyA= +github.com/OpenPeeDeeP/depguard v1.1.1/go.mod h1:JtAMzWkmFEzDPyAd+W0NHl1lvpQKTvT9jnRVsohBKpc= 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/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/Workiva/go-datastructures v1.0.53/go.mod h1:1yZL+zfsztete+ePzZz/Zb1/t5BnDuE2Ya2MMGhzP6A= -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/adlio/schema v1.3.6 h1:k1/zc2jNfeiZBA5aFTRy37jlBIuCkXCm0XmvpzCKI9I= +github.com/adlio/schema v1.3.6/go.mod h1:qkxwLgPBd1FgLRHYVCmQT/rrBr3JH38J9LjmVzWNudg= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= -github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= -github.com/alecthomas/assert/v2 v2.2.2 h1:Z/iVC0xZfWTaFNE6bA3z07T86hd45Xe2eLt6WVy2bbk= -github.com/alecthomas/go-check-sumtype v0.1.3 h1:M+tqMxB68hcgccRXBMVCPI4UJ+QUfdSx0xdbypKCqA8= -github.com/alecthomas/go-check-sumtype v0.1.3/go.mod h1:WyYPfhfkdhyrdaligV6svFopZV8Lqdzn5pyVBaV6jhQ= -github.com/alecthomas/participle/v2 v2.0.0-alpha7 h1:cK4vjj0VSgb3lN1nuKA5F7dw+1s1pWBe5bx7nNCnN+c= -github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk= 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/alexkohler/nakedret/v2 v2.0.2 h1:qnXuZNvv3/AxkAb22q/sEsEpcA99YxLFACDtEw9TPxE= -github.com/alexkohler/nakedret/v2 v2.0.2/go.mod h1:2b8Gkk0GsOrqQv/gPWjNLDSKwG8I5moSXG1K4VIBcTQ= github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= -github.com/alingse/asasalint v0.0.10/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= -github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= -github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= -github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= 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= -github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.3.9/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= -github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= -github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= -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/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/ashanbrown/forbidigo v1.3.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= -github.com/ashanbrown/forbidigo v1.6.0 h1:D3aewfM37Yb3pxHujIPSpTf6oQk9sc9WZi8gerOIVIY= -github.com/ashanbrown/forbidigo v1.6.0/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU= +github.com/ashanbrown/forbidigo v1.5.1 h1:WXhzLjOlnuDYPYQo/eFlcFMi8X/kLfvWLYu6CSoebis= +github.com/ashanbrown/forbidigo v1.5.1/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU= github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s= github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.36.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= -github.com/aws/aws-sdk-go v1.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= -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= -github.com/aws/aws-sdk-go v1.44.203/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.54.15 h1:ErgCEVbzuSfuZl9nR+g8FFnzjgeJ/AqAGOEWn6tgAHo= +github.com/aws/aws-sdk-go v1.54.15/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= -github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o= -github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -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-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= @@ -685,77 +171,50 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= 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/bgentry/speakeasy v0.2.0 h1:tgObeVOf8WAvtuAX6DhJ4xks4CFNwPDZiqzGqIHE51E= +github.com/bgentry/speakeasy v0.2.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= +github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/bkielbasa/cyclop v1.2.0 h1:7Jmnh0yL2DjKfw28p86YTd/B4lRGcNuu12sKE35sM7A= github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= -github.com/bkielbasa/cyclop v1.2.1 h1:AeF71HZDob1P2/pRm1so9cd1alZnrpyc4q2uP2l0gJY= -github.com/bkielbasa/cyclop v1.2.1/go.mod h1:K/dT/M0FPAiYjBgQGau7tz+3TMh4FWAEqlMhzFWCrgM= github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= 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/bombsimon/wsl/v3 v3.4.0 h1:RkSxjT3tmlptwfgEgTgU+KYKLI35p/tviNXNXiL2aNU= github.com/bombsimon/wsl/v3 v3.4.0/go.mod h1:KkIB+TXkqy6MvK9BDZVbZxKNYsE1/oLRJbIFtf14qqo= -github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= -github.com/breml/bidichk v0.2.3/go.mod h1:8u2C6DnAy0g2cEq+k/A2+tr9O1s+vHGxWn0LTc70T2A= -github.com/breml/bidichk v0.2.7 h1:dAkKQPLl/Qrk7hnP6P+E0xOodrq8Us7+U0o4UBOAlQY= -github.com/breml/bidichk v0.2.7/go.mod h1:YodjipAGI9fGcYM7II6wFvGhdMYsC5pHDlGzqvEW3tQ= -github.com/breml/errchkjson v0.3.0/go.mod h1:9Cogkyv9gcT8HREpzi3TiqBxCqDzo8awa92zSDFcofU= -github.com/breml/errchkjson v0.3.6 h1:VLhVkqSBH96AvXEyclMR37rZslRrY2kcyq+31HCsVrA= -github.com/breml/errchkjson v0.3.6/go.mod h1:jhSDoFheAF2RSDOlCfhHO9KqhZgAYLyvHe7bRCX8f/U= -github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= -github.com/btcsuite/btcd v0.22.1 h1:CnwP9LM/M9xuRrGSCGeMVs9iv09uMqwsVX7EeIpgV2c= -github.com/btcsuite/btcd v0.22.1/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y= -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/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= -github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -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/bufbuild/buf v1.3.1/go.mod h1:CTRUb23N+zlm1U8ZIBKz0Sqluk++qQloB2i/MZNZHIs= -github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= +github.com/breml/bidichk v0.2.4 h1:i3yedFWWQ7YzjdZJHnPo9d/xURinSq3OM+gyM43K4/8= +github.com/breml/bidichk v0.2.4/go.mod h1:7Zk0kRFt1LIZxtQdl9W9JwGAcLTTkOs+tN7wuEYGJ3s= +github.com/breml/errchkjson v0.3.1 h1:hlIeXuspTyt8Y/UmP5qy1JocGNR00KQHgfaNtRAjoxQ= +github.com/breml/errchkjson v0.3.1/go.mod h1:XroxrzKjdiutFyW3nWhw34VGg7kiMsDQox73yWCGI2U= +github.com/btcsuite/btcd/btcec/v2 v2.3.4 h1:3EJjcN70HCu/mwqlUsGK8GcNVyLVxFDlWurTXGPFfiQ= +github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcutil v1.1.6 h1:zFL2+c3Lb9gEgqKNzowKUPQNb8jV7v5Oaodi/AYFd6c= +github.com/btcsuite/btcd/btcutil v1.1.6/go.mod h1:9dFymx8HpuLqBnsPELrImQeTQfKBQqzqGbbV3jK55aE= +github.com/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28/ZlunY= +github.com/bufbuild/protocompile v0.6.0/go.mod h1:YNP35qEYoYGme7QMtz5SBCoN4kL4g12jTtjuzRNdjpE= +github.com/butuzov/ireturn v0.1.1 h1:QvrO2QF2+/Cx1WA/vETCIYBKtRjc30vesdoPUNo1EbY= github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= -github.com/butuzov/ireturn v0.2.2 h1:jWI36dxXwVrI+RnXDwux2IZOewpmfv930OuIRfaBUJ0= -github.com/butuzov/ireturn v0.2.2/go.mod h1:RfGHUvvAuFFxoHKf4Z8Yxuh6OjlCw1KvR2zM1NFHeBk= -github.com/butuzov/mirror v1.1.0 h1:ZqX54gBVMXu78QLoiqdwpl2mgmoOJTk7s4p4o+0avZI= -github.com/butuzov/mirror v1.1.0/go.mod h1:8Q0BdQU6rC6WILDiBM60DBfvV78OLJmMmixe7GF45AE= +github.com/bytedance/sonic v1.12.3 h1:W2MGa7RCU1QTeYRTPE3+88mVC0yXmsRQRChiyVocVjU= +github.com/bytedance/sonic v1.12.3/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM= +github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= -github.com/casbin/casbin/v2 v2.37.0/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg= -github.com/catenacyber/perfsprint v0.2.0 h1:azOocHLscPjqXVJ7Mf14Zjlkn4uNua0+Hcg1wTR6vUo= -github.com/catenacyber/perfsprint v0.2.0/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50= -github.com/ccojocar/zxcvbn-go v1.0.1 h1:+sxrANSCj6CdadkcMnvde/GWU1vZiiXRbqYSCalV4/4= -github.com/ccojocar/zxcvbn-go v1.0.1/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -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/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -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.1.2/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/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= github.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ= -github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4/go.mod h1:W8EnPSQ8Nv4fUjc/v1/8tHFqhuOJXnRub0dTfuAQktU= -github.com/chavacava/garif v0.1.0 h1:2JHa3hbYf5D9dsgseMKAmc/MZ109otzgNFk5s87H9Pc= -github.com/chavacava/garif v0.1.0/go.mod h1:XMyYCkEL58DF0oyW4qDjjnPWONs2HBqYKI+UIPD+Gww= -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/chavacava/garif v0.0.0-20230227094218-b8c73b2037b8 h1:W9o46d2kbNL06lq7UNDPV0zYLzkrde/bjIqO02eoll0= +github.com/chavacava/garif v0.0.0-20230227094218-b8c73b2037b8/go.mod h1:gakxgyXaaPkxvLw1XQxNGK4I37ys9iBRzNUx/B7pUCo= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= @@ -765,314 +224,242 @@ 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.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/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng= 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/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= 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= github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= 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/cncf/xds/go v0.0.0-20211130200136-a8f946100490/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -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/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= 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/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg= +github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= +github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= +github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 h1:pU88SPhIFid6/k0egdR5V6eALQYq2qbSmukrkgIh/0A= +github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= +github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 h1:ASDL+UJcILMqgNeV5jiqR4j+sTuvQNHdf2chuKj1M5k= +github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506/go.mod h1:Mw7HqKr2kdtu6aYGn3tPmAftiP3QPX63LdK/zcariIo= +github.com/cockroachdb/pebble v1.1.4 h1:5II1uEP4MyHLDnsrbv/EZ36arcb9Mxg3n+owhZ3GrG8= +github.com/cockroachdb/pebble v1.1.4/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= +github.com/cockroachdb/redact v1.1.6 h1:zXJBwDZ84xJNlHl1rMyCojqyIxv+7YUpQiJLQ7n4314= +github.com/cockroachdb/redact v1.1.6/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= 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.2 h1:XB0yyHGT0lwmJlFmM4+rsRnczPlHoAKFX6K8Zgc2/Jc= -github.com/cometbft/cometbft v0.37.2/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/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/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= +github.com/cometbft/cometbft v0.38.17 h1:FkrQNbAjiFqXydeAO81FUzriL4Bz0abYxN/eOHrQGOk= +github.com/cometbft/cometbft v0.38.17/go.mod h1:5l0SkgeLRXi6bBfQuevXjKqML1jjfJJlvI1Ulp02/o4= +github.com/cometbft/cometbft-db v0.14.1 h1:SxoamPghqICBAIcGpleHbmoPqy+crij/++eZz3DlerQ= +github.com/cometbft/cometbft-db v0.14.1/go.mod h1:KHP1YghilyGV/xjD5DP3+2hyigWx0WTp9X+0Gnx0RxQ= 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-semver v0.3.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 v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/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.4 h1:FVUpEprm58nMmBX4xkRdMDaIG5Nr4yy92HZAfGAw9bg= -github.com/cosmos/cosmos-sdk v0.47.4/go.mod h1:R5n+uM7vguVPFap4pgkdvQCT1nVo/OtPwrlAU40rvok= -github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= +github.com/cosmos/cosmos-db v1.1.1 h1:FezFSU37AlBC8S98NlSagL76oqBRWq/prTPvFcEJNCM= +github.com/cosmos/cosmos-db v1.1.1/go.mod h1:AghjcIPqdhSLP/2Z0yha5xPH3nLnskz81pBx3tcVSAw= +github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= +github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= +github.com/cosmos/cosmos-sdk v0.50.13 h1:xQ32hhzVy7agEe7behMdZN0ezWhPss3KoLZsF9KoBnw= +github.com/cosmos/cosmos-sdk v0.50.13/go.mod h1:hrWEFMU1eoXqLJeE6VVESpJDQH67FS1nnMrQIjO2daw= 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.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.1 h1:NIBNRWjlOoFvFQu1ZlgwkaSeHO5avf4C1YQiWegt8jw= -github.com/cosmos/ibc-go/v7 v7.0.1/go.mod h1:vEaapV6nuLPQlS+g8IKmxMo6auPi0i7HMv1PhViht/E= -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/ledger-cosmos-go v0.12.1 h1:sMBxza5p/rNK/06nBSNmsI/WDqI0pVJFVNihy1Y984w= -github.com/cosmos/ledger-cosmos-go v0.12.1/go.mod h1:dhO6kj+Y+AHIOgAe4L9HL/6NDdyyth4q238I9yFpD2g= -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/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= +github.com/cosmos/gogoproto v1.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fro= +github.com/cosmos/gogoproto v1.7.0/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0= +github.com/cosmos/iavl v1.2.4 h1:IHUrG8dkyueKEY72y92jajrizbkZKPZbMmG14QzsEkw= +github.com/cosmos/iavl v1.2.4/go.mod h1:GiM43q0pB+uG53mLxLDzimxM9l/5N9UuSY3/D0huuVw= +github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.1.1 h1:+EGYrTsQ2hu8pBwCWAgqc0g/zSklvBFehda9URLfvOU= +github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.1.1/go.mod h1:8sbOclBgOCgBPesufd3ZlLRHvJ3dOeN9+dXhn3KbKOc= +github.com/cosmos/ibc-go/modules/capability v1.0.1 h1:ibwhrpJ3SftEEZRxCRkH0fQZ9svjthrX2+oXdZvzgGI= +github.com/cosmos/ibc-go/modules/capability v1.0.1/go.mod h1:rquyOV262nGJplkumH+/LeYs04P3eV8oB7ZM4Ygqk4E= +github.com/cosmos/ibc-go/v8 v8.7.0 h1:HqhVOkO8bDpClXE81DFQgFjroQcTvtpm0tCS7SQVKVY= +github.com/cosmos/ibc-go/v8 v8.7.0/go.mod h1:G2z+Q6ZQSMcyHI2+BVcJdvfOupb09M2h/tgpXOEdY6k= +github.com/cosmos/ics23/go v0.11.0 h1:jk5skjT0TqX5e5QJbEnwXIS2yI2vnmLOgpQPeM5RtnU= +github.com/cosmos/ics23/go v0.11.0/go.mod h1:A8OjxPE67hHST4Icw94hOxxFEJMBG031xIGF/JHNIY0= +github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= +github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= +github.com/cosmos/ledger-cosmos-go v0.14.0 h1:WfCHricT3rPbkPSVKRH+L4fQGKYHuGOK9Edpel8TYpE= +github.com/cosmos/ledger-cosmos-go v0.14.0/go.mod h1:E07xCWSBl3mTGofZ2QnL4cIUzMbbGVyik84QYKbX3RA= 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.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creachadair/atomicfile v0.2.6/go.mod h1:BRq8Une6ckFneYXZQ+kO7p1ZZP3I2fzVzf28JxrIkBc= -github.com/creachadair/command v0.0.0-20220426235536-a748effdf6a1/go.mod h1:bAM+qFQb/KwWyCc9MLC4U1jvn3XyakqP5QRkds5T6cY= -github.com/creachadair/taskgroup v0.3.2/go.mod h1:wieWwecHVzsidg2CsUnFinW1faVN4+kq+TDlRJQ0Wbk= -github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJFxv2Li8= -github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= -github.com/creachadair/tomledit v0.0.22/go.mod h1:cIu/4x5L855oSRejIqr+WRFh+mv9g4fWLiUFaApYn/Y= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= 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/creack/pty v1.1.11/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/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= -github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= -github.com/daixiang0/gci v0.4.2/go.mod h1:d0f+IJhr9loBtIq+ebwhRoTt1LGbPH96ih8bKlsRT9E= -github.com/daixiang0/gci v0.11.2 h1:Oji+oPsp3bQ6bNNgX30NBAVT18P4uBH4sRZnlOlTj7Y= -github.com/daixiang0/gci v0.11.2/go.mod h1:xtHP9N7AHdNvtRNfcx9gwTDfw7FRJx4bZUsiEfiNNAI= -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-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/daixiang0/gci v0.10.1 h1:eheNA3ljF6SxnPD/vE4lCBusVHmV3Rs3dkKvFrJ7MR0= +github.com/daixiang0/gci v0.10.1/go.mod h1:xtHP9N7AHdNvtRNfcx9gwTDfw7FRJx4bZUsiEfiNNAI= +github.com/danieljoos/wincred v1.2.1 h1:dl9cBrupW8+r5250DYkYxocLeZ1Y4vB1kxgtjxw8GQs= +github.com/danieljoos/wincred v1.2.1/go.mod h1:uGaFL9fDn3OLTvzCGulzE+SzjEe5NGlh5FdCcyfPwps= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= -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/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/denis-tingaikin/go-header v0.4.3 h1:tEaZKAlqql6SKCY++utLmkPLd6K8IBM20Ha7UVm+mtU= github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= -github.com/denisenkom/go-mssqldb v0.12.0/go.mod h1:iiK0YP1ZeepvmBQk/QpLEhhTNJgfzrpArPY/aFvc9yU= -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.2/go.mod h1:26P/7fbL4kUZVEVKLAKXkBXKOydDmM2p1e+NhhnBCAE= -github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= -github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= -github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= +github.com/desertbit/timer v1.0.1 h1:yRpYNn5Vaaj6QXecdLMPMJsW81JLiI1eokUft5nBmeo= +github.com/desertbit/timer v1.0.1/go.mod h1:htRrYeY5V/t4iu1xCJ5XsQvp4xve8QulXXctAzxqcwE= +github.com/dgraph-io/badger/v4 v4.2.0 h1:kJrlajbXXL9DFTNuhhu9yCx7JJa4qpYWxtE8BzuWsEs= +github.com/dgraph-io/badger/v4 v4.2.0/go.mod h1:qfCqhPoWDFJRx1gp5QwwyGo8xk1lbHUxvK9nK0OGAak= 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 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/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/cli v20.10.14+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/cli v20.10.17+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/docker v20.10.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.17+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= 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.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +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= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= -github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +github.com/dvsekhvalnov/jose2go v1.7.0 h1:bnQc8+GMnidJZA8zc6lLEAb4xNrIqHwO+9TzqvtQZPo= +github.com/dvsekhvalnov/jose2go v1.7.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= 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/emicklei/dot v1.6.4 h1:cG9ycT67d9Yw22G+mAb4XiuUz6E6H1S0zePp/5Cwe/c= +github.com/emicklei/dot v1.6.4/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= 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= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= -github.com/envoyproxy/go-control-plane v0.10.1/go.mod h1:AY7fTTXNdv/aJ2O5jwpxAPOWUZ7hQAEvzN5Pf27BkQQ= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= -github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= -github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= -github.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/go-control-plane v0.13.1 h1:vPfJZCkob6yTMEgS+0TwfTUfbHjfy/6vOJ8hUWX/uXE= +github.com/envoyproxy/go-control-plane v0.13.1/go.mod h1:X45hY0mufo6Fd0KW3rqsGvQMw58jvjymeCzBU3mWyHw= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.6.2/go.mod h1:2t7qjJNvHPx8IjnBOzl9E9/baC+qXE/TeeyBRzgJDws= -github.com/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/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= +github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= github.com/esimonov/ifshort v1.0.4 h1:6SID4yGWfRae/M7hkVDVVyppy8q/v9OuxNdmjLQStBA= github.com/esimonov/ifshort v1.0.4/go.mod h1:Pe8zjlRrJ80+q2CxHLfEOfTwxCZ4O+MuhcHcfgNWTk0= github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= -github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= -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/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= -github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= -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/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= -github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= -github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= -github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= -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/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y= github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/forbole/juno/v5 v5.2.1-0.20240201075935-851426ddd905 h1:nmNDGWsEDFLFWl4+taRg9zDyzZaApb2Ge2+8XiwbaEk= -github.com/forbole/juno/v5 v5.2.1-0.20240201075935-851426ddd905/go.mod h1:XHTUsu81JTPEDvVrVgirag5pkV5sDBSdEUluBtJdFfk= 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/goblin v0.0.0-20210519012713-85d372ac71e2/go.mod h1:VzmDKDJVZI3aJmnRI9VjAn9nJ8qPPsN1fqzr9dqInIo= 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.2/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= -github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/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.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -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/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= +github.com/getsentry/sentry-go v0.31.1 h1:ELVc0h7gwyhnXHDouXkhqTFSO5oslsRDk0++eyE0KJ4= +github.com/getsentry/sentry-go v0.31.1/go.mod h1:CYNcMMz73YigoHljQRG+qPF+eMq8gG72XcGN/p71BAY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghostiam/protogetter v0.2.3 h1:qdv2pzo3BpLqezwqfGDLZ+nHEYmc5bUpIdsMbBVwMjw= -github.com/ghostiam/protogetter v0.2.3/go.mod h1:KmNLOsy1v04hKbvZs8EfGI1fk39AgTdRDxWNYPfXVc4= -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/go-co-op/gocron v1.37.0 h1:ZYDJGtQ4OMhTLKOKMIch+/CY70Brbb1dGdooLEhh7b0= github.com/go-co-op/gocron v1.37.0/go.mod h1:3L/n6BkO7ABj+TrfSVXLRzsP26zmikL4ISkLQ0O8iNY= -github.com/go-critic/go-critic v0.6.3/go.mod h1:c6b3ZP1MQ7o6lPR7Rv3lEf7pYQUmAcx8ABHgdZCQt/k= -github.com/go-critic/go-critic v0.9.0 h1:Pmys9qvU3pSML/3GEQ2Xd9RZ/ip+aXHKILuxczKGV/U= -github.com/go-critic/go-critic v0.9.0/go.mod h1:5P8tdXL7m/6qnyG6oRAlYLORvoXH0WDypYgAEmagT40= -github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= -github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= -github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= -github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= -github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= +github.com/go-critic/go-critic v0.7.0 h1:tqbKzB8pqi0NsRZ+1pyU4aweAF7A7QN0Pi4Q02+rYnQ= +github.com/go-critic/go-critic v0.7.0/go.mod h1:moYzd7GdVXE2C2hYTwd7h0CPcqlUeclsyBRwMa38v64= +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-gorp/gorp v2.2.0+incompatible h1:xAUh4QgEeqPPhK3vxZN+bzrim1z5Av6q837gtjUlshc= +github.com/go-gorp/gorp v2.2.0+incompatible/go.mod h1:7IfkAQnO7jfT/9IQ3R9wL1dFhukN6aQxzKTHnkxzA/E= 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= -github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= -github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= +github.com/go-kit/kit v0.13.0 h1:OoneCcHKHQ03LfBpoQCUfCluwd2Vt3ohz+kvbJneZAU= +github.com/go-kit/kit v0.13.0/go.mod h1:phqEHMMUbyrCFCTgH48JueqrM3md2HcAZ8N3XE4FKDg= 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-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= -github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= 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 v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= -github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= 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/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= 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-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= +github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= github.com/go-toolsmith/astcast v1.1.0 h1:+JN9xZV1A+Re+95pgnMgDboWNVnIMMQXwfBwLRPgSC8= github.com/go-toolsmith/astcast v1.1.0/go.mod h1:qdcuFWeGGS2xX5bLM/c3U9lewg7+Zu4mr+xPwZIB4ZU= -github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= github.com/go-toolsmith/astcopy v1.1.0 h1:YGwBN0WM+ekI/6SS6+52zLDEf8Yvp3n2seZITCUBt5s= github.com/go-toolsmith/astcopy v1.1.0/go.mod h1:hXM6gan18VA1T/daUEHCFcYiW8Ai1tIwIzHY6srfEAw= -github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= -github.com/go-toolsmith/astequal v1.0.1/go.mod h1:4oGA3EZXTVItV/ipGiOx7NWkY5veFfcsOJVS2YxltLw= github.com/go-toolsmith/astequal v1.0.3/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= github.com/go-toolsmith/astequal v1.1.0 h1:kHKm1AWqClYn15R0K1KKE4RG614D46n+nqUQ06E1dTw= github.com/go-toolsmith/astequal v1.1.0/go.mod h1:sedf7VIdCL22LD8qIvv7Nn9MuWJruQA/ysswh64lffQ= -github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= github.com/go-toolsmith/astfmt v1.1.0 h1:iJVPDPp6/7AaeLJEruMsBUlOYCmvg0MoCfJprsOmcco= github.com/go-toolsmith/astfmt v1.1.0/go.mod h1:OrcLlRwu0CuiIBp/8b5PYF9ktGVZUjlNMV634mhwuQ4= -github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= github.com/go-toolsmith/astp v1.1.0 h1:dXPuCl6u2llURjdPLLDxJeZInAeZ0/eZwFJmqZMnpQA= github.com/go-toolsmith/astp v1.1.0/go.mod h1:0T1xFGz9hicKs8Z5MfAqSUitoUYS30pDMsRVIDHs8CA= -github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5/go.mod h1:3NAwwmD4uY/yggRxoEjk/S00MIV3A+H7rrE3i87eYxM= github.com/go-toolsmith/pkgload v1.2.2 h1:0CtmHq/02QhxcF7E9N5LIFcYFsMR5rdovfqTtRKkgIk= +github.com/go-toolsmith/pkgload v1.2.2/go.mod h1:R2hxLNRKuAsiXCo2i5J6ZQPhnPMOVtU+f0arbFPWCus= github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/strparse v1.1.0 h1:GAioeZUK9TGxnLS+qfdqNbA4z0SSm5zVNtCQiyP2Bvw= github.com/go-toolsmith/strparse v1.1.0/go.mod h1:7ksGy58fsaQkGQlY8WVoBFNyEPMGuJin1rfoPS4lBSQ= -github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/go-toolsmith/typep v1.1.0 h1:fIRYDyF+JywLfqzyhdiHzRop/GQDxxNhLGQ6gFUNHus= github.com/go-toolsmith/typep v1.1.0/go.mod h1:fVIw+7zjdsMxDA3ITWnH1yOiw1rnTQKCsF/sk2H/qig= -github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= +github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= +github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/go-xmlfmt/xmlfmt v1.1.2 h1:Nea7b4icn8s57fTx1M5AI4qQT5HEM3rVUO8MuE6g80U= github.com/go-xmlfmt/xmlfmt v1.1.2/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= -github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/goccy/go-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/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.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -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= @@ -1080,19 +467,13 @@ github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6x github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= -github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188/go.mod h1:vXjM/+wXQnTPR4KqTKDgJukSZ6amVRtWMPEjE6sQoK8= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= -github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= -github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= +github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc= +github.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/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= @@ -1106,10 +487,8 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -1126,46 +505,39 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0= 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 h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= 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 h1:6RGUuS7EGotKx6J5HIP8ZtyMdiDscjMLfRBSPuzVVeo= github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe/go.mod h1:gjqyPShc/m8pEMpk0a3SeagVb0kaqvhscv+i9jI5ZhQ= -github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= -github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e h1:ULcKCDV1LOZPFxGZaA6TlQbiM3J2GCPnkx/bGF6sX/g= -github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e/go.mod h1:Pm5KhLPA8gSnQwrQ6ukebRcapGb/BG9iUkdaiCcGHJM= -github.com/golangci/golangci-lint v1.47.0/go.mod h1:3TZhfF5KolbIkXYjUFvER6G9CoxzLEaafr/u/QI1S5A= -github.com/golangci/golangci-lint v1.55.2 h1:yllEIsSJ7MtlDBwDJ9IMBkyEUz2fYE0b5B8IUgO1oP8= -github.com/golangci/golangci-lint v1.55.2/go.mod h1:H60CZ0fuqoTwlTvnbyjhpZPWp7KmsjwV2yupIMiMXbM= +github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2 h1:amWTbTGqOZ71ruzrdA+Nx5WA3tV1N0goTspwmKCQvBY= +github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2/go.mod h1:9wOXstvyDRshQ9LggQuzBCGysxs3b6Uo/1MvYCR2NMs= +github.com/golangci/golangci-lint v1.52.2 h1:FrPElUUI5rrHXg1mQ7KxI1MXPAw5lBVskiz7U7a8a1A= +github.com/golangci/golangci-lint v1.52.2/go.mod h1:S5fhC5sHM5kE22/HcATKd1XLWQxX+y7mHj8B5H91Q/0= github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA= github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= 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/misspell v0.4.1 h1:+y73iSicVy2PqyX7kmUefHusENlrP9YwuHZHPLGQj/g= -github.com/golangci/misspell v0.4.1/go.mod h1:9mAN1quEo3DlpbaIKKyEvRxK1pwqR9s/Sea1bJCtlNI= -github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2/go.mod h1:LK+zW4MpyytAWQRz0M4xnzEk50lSvqDQKfx304apFkY= -github.com/golangci/revgrep v0.5.2 h1:EndcWoRhcnfj2NHQ+28hyuXpLMF+dQmCN+YaeeIl4FU= -github.com/golangci/revgrep v0.5.2/go.mod h1:bjAMA+Sh/QUfTDcHzxfyHxr4xKvllVr/0sCv2e7jJHA= +github.com/golangci/misspell v0.4.0 h1:KtVB/hTK4bbL/S6bs64rYyk8adjmh1BygbBiaAiX+a0= +github.com/golangci/misspell v0.4.0/go.mod h1:W6O/bwV6lGDxUCChm2ykw9NQdd5bYd1Xkjo88UcWyJc= +github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 h1:DIPQnGy2Gv2FSA4B/hh8Q7xx3B7AIDk3DAMeHclH1vQ= +github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6/go.mod h1:0AKcRCkMoKvUvlf89F6O7H2LYdhr1zBh736mBItOdRs= github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= -github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg= -github.com/google/certificate-transparency-go v1.1.1/go.mod h1:FDKqPvSXawb2ecErVRrD+nfy23RCzyl7eqVCEmlT1Zs= -github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81AtFUxJM+yDthflgJGkI= +github.com/google/flatbuffers v24.3.25+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -1178,7 +550,6 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= @@ -1186,13 +557,9 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN 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/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 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= @@ -1201,76 +568,37 @@ github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200507031123-427632fa3b1c/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= -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.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= -github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= -github.com/google/trillian v1.3.11/go.mod h1:0tPraVHrSDkA3BO6vKX67zgLXs6SsOAbHEivX+9mPgw= -github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= 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.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= -github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= -github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= -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/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= -github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= -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/gookit/color v1.5.1/go.mod h1:wZFzea4X8qN6vHOSP2apMb4/+w/orMznEzYsIHPaqKM= +github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q= +github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= -github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= -github.com/gordonklaus/ineffassign v0.0.0-20230610083614-0e73809eb601 h1:mrEEilTAUmaAORhssPPkxj84TsHrPMLBGW2Z4SoTxm8= -github.com/gordonklaus/ineffassign v0.0.0-20230610083614-0e73809eb601/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= -github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b03hfBX9Ov0ZBDgXXens4rxSxmqFBbhvKv2yVA= +github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28 h1:9alfqbrhuD+9fLZ4iaAVwhlp5PEhmnBt7yvK2Oy5C1U= +github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -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/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= +github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= github.com/gorilla/mux v1.6.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/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/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/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw= -github.com/gostaticanalysis/analysisutil v0.4.1/go.mod h1:18U/DLpRgIUd459wGxVHE0fRgmo1UgHDcbw7F5idXu0= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= 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 h1:hlnx5+S2fY9Zo9ePo4AhgYsYHbM2+eAv8m/s1JiCd6Q= github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= @@ -1281,32 +609,18 @@ github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoISdUv3PPQgHY= github.com/gostaticanalysis/testutil v0.4.0/go.mod h1:bLIoPefWXrRi/ssLFWX1dx7Repi5x3CuviD3dgAZaBU= -github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= -github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= 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-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -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/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= -github.com/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= -github.com/gtank/merlin v0.1.1 h1:eQ90iG7K9pOhtereWsmyRJ6RAwcP4tHTDBHXNg+u5is= -github.com/gtank/merlin v0.1.1/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= -github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc= -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/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= -github.com/hashicorp/consul/api v1.11.0/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= -github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -1314,55 +628,50 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng 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.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY= -github.com/hashicorp/go-getter v1.7.1/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v1.0.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-getter v1.7.5 h1:dT58k9hQ/vbxNMwoI5+xFYAJuv6152UNvdHokfI5wE4= +github.com/hashicorp/go-getter v1.7.5/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= +github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= 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-metrics v0.5.3 h1:M5uADWMOGCTUNU1YuC4hfknOeHNaX54LDm4oYSucoNE= +github.com/hashicorp/go-metrics v0.5.3/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-plugin v1.6.1 h1:P7MR2UP6gNKGPp+y7EZw2kOiq4IR9WiqLvp0XOsVdwI= +github.com/hashicorp/go-plugin v1.6.1/go.mod h1:XPHFku2tFo3o3QKFgSYo+cghcUhw1NA1hZyMK0PWAw0= 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= -github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= -github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= -github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= -github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= -github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= -github.com/hashicorp/serf v0.9.7/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= -github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU= -github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= +github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= +github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/hdevalence/ed25519consensus v0.2.0 h1:37ICyZqdyj0lAZ8P4D1d1id3HqbbG1N3iBb1Tb4rdcU= +github.com/hdevalence/ed25519consensus v0.2.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -1370,236 +679,159 @@ github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3 github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw= github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= -github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= -github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/hudl/fargo v1.4.0/go.mod h1:9Ai6uvFy5fQNq6VPKtg+Ceq1+eTY4nKUlR2JElEOcDo= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc= +github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJDkXXS7VoV7XGE= +github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= +github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= 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.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/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= -github.com/jackc/pgx/v5 v5.4.3 h1:cxFyXhxlvAifxnkKKdlxv8XqUf59tDlYjnV5YYfsJJY= -github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a/go.mod h1:Zi/ZFkEqFHTm7qkjyNJjaWH4LQA9LQhGJyF0lTYGpxw= -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/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.3.1 h1:Fcr8QJ1ZeLi5zsPZqQeUZhNhxfkkKBOgJuYkJHoBOtU= +github.com/jackc/pgx/v5 v5.3.1/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8= +github.com/jgautheron/goconst v1.5.1 h1:HxVbL1MhydKs8R8n/HE5NPvzfaYmQJA3o879lE4+WcM= github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= -github.com/jgautheron/goconst v1.6.0 h1:gbMLWKRMkzAc6kYsQL6/TxaoBUg3Jm9LSF/Ih1ADWGA= -github.com/jgautheron/goconst v1.6.0/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= -github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f/go.mod h1:qr2b5kx4HbFS7/g4uYO5qv9ei8303JMsC7ESbYiqr2Q= -github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4= -github.com/jhump/protoreflect v1.11.1-0.20220213155251-0c2aedc66cf4/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E= -github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= +github.com/jhump/protoreflect v1.15.3 h1:6SFRuqU45u9hIZPJAoZ8c28T3nK64BNdp9w6jFonzls= +github.com/jhump/protoreflect v1.15.3/go.mod h1:4ORHmSBmlCW8fh3xHmJMGyul1zNqZK4Elxc8qKP+p1k= github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= +github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= github.com/jmespath/go-jmespath v0.0.0-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= -github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= -github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.2.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= -github.com/josharian/txtarfs v0.0.0-20210218200122-0702f000015a/go.mod h1:izVPOvVRsHiKkeGCT6tYBNWyDVuzj9wAaBb5R9qamfw= 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= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/juju/ratelimit v1.0.1/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= -github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -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/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= +github.com/junk1tm/musttag v0.5.0 h1:bV1DTdi38Hi4pG4OVWa7Kap0hi0o7EczuK6wQt9zPOM= +github.com/junk1tm/musttag v0.5.0/go.mod h1:PcR7BA+oREQYvHwgjIDmw3exJeds5JzRcvEJTfjrA0M= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/errcheck v1.6.1/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= github.com/kisielk/errcheck v1.6.3 h1:dEKh+GLHcWm2oN34nMvDzn1sqI0i0WxPvrgiJA5JuM8= github.com/kisielk/errcheck v1.6.3/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkHAIKE/contextcheck v1.1.4 h1:B6zAaLhOEEcjvUgIYEqystmnFk1Oemn8bvJhbt0GMb8= github.com/kkHAIKE/contextcheck v1.1.4/go.mod h1:1+i/gWqokIa+dm31mqGLZhZJ7Uh44DJGZVmr6QRBNJg= -github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= -github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.10.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.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY= -github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= +github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= +github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= 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.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= 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/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= +github.com/kunwardeep/paralleltest v1.0.6 h1:FCKYMF1OF2+RveWlABsdnmsvJrei5aoyZoaGS+Ugg8g= github.com/kunwardeep/paralleltest v1.0.6/go.mod h1:Y0Y0XISdZM5IKm3TREQMZ6iteqn1YuwCsJO/0kL9Zes= -github.com/kunwardeep/paralleltest v1.0.8 h1:Ul2KsqtzFxTlSU7IP0JusWlLiNqQaloB9vguyjbE558= -github.com/kunwardeep/paralleltest v1.0.8/go.mod h1:2C7s65hONVqY7Q5Efj5aLzRCNLjw2h4eMc9EcypGjcY= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= github.com/kyoh86/exportloopref v0.1.11 h1:1Z0bcmTypkL3Q4k+IDHMWTcnCliEZcaPiIe0/ymEyhQ= github.com/kyoh86/exportloopref v0.1.11/go.mod h1:qkV4UF1zGl6EkF1ox8L5t9SwyeBAZ3qLMd6up458uqA= github.com/ldez/gomoddirectives v0.2.3 h1:y7MBaisZVDYmKvt9/l1mjNCiSA1BVn34U0ObUcJwlhA= 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/ldez/tagliatelle v0.5.0 h1:epgfuYt9v0CG3fms0pEgIMNPuFf/LpPIfjk4kyqSioo= -github.com/ldez/tagliatelle v0.5.0/go.mod h1:rj1HmWiL1MiKQuOONhd09iySTEkUuE/8+5jtPYz9xa4= -github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= +github.com/ldez/tagliatelle v0.4.0 h1:sylp7d9kh6AdXN2DpVGHBRb5guTVAgOxqNGhbqc4b1c= +github.com/ldez/tagliatelle v0.4.0/go.mod h1:mNtTfrHy2haaBAw+VT7IBV6VXBThS7TCreYWbBcJ87I= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/leonklingele/grouper v1.1.0/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= github.com/leonklingele/grouper v1.1.1 h1:suWXRU57D4/Enn6pXR0QVqqWWrnJ9Osrz+5rjt8ivzU= github.com/leonklingele/grouper v1.1.1/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= -github.com/letsencrypt/pkcs11key/v4 v4.0.0/go.mod h1:EFUvBDay26dErnNb70Nd0/VW3tJiIbETBPTl9ATXQag= -github.com/lib/pq v0.0.0-20180327071824-d34b9ff171c2/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/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.9.8 h1:vOIKv9/+HKiqJAElJIEYv3ZLcihRxyP7Suu/Mu8Dxjs= +github.com/linxGnu/grocksdb v1.9.8/go.mod h1:C3CNe9UYc9hlEM2pC82AqiGS3LRW537u9LFV4wIZuHk= github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM= github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/lyft/protoc-gen-star v0.5.3/go.mod h1:V0xaHgaf5oCCqmcxYcWiDfTiKsZsRc87/1qhoTACD8w= -github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= -github.com/macabu/inamedparam v0.1.2 h1:RR5cnayM6Q7cDhQol32DE2BGAPGMnffJ31LFE+UklaU= -github.com/macabu/inamedparam v0.1.2/go.mod h1:Xg25QvY7IBRl1KLPV9Rbml8JOMZtF/iAkNkmV7eQgjw= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= github.com/maratori/testableexamples v1.0.0 h1:dU5alXRrD8WKSjOUnmJZuzdxWOEQ57+7s93SLMxb2vI= github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE= -github.com/maratori/testpackage v1.1.0/go.mod h1:PeAhzU8qkCwdGEMTEupsHJNlQu2gZopMC6RjbhmHeDc= github.com/maratori/testpackage v1.1.1 h1:S58XVV5AD7HADMmD0fNnziNHqKvSdDuEKdPD1rNTU04= github.com/maratori/testpackage v1.1.1/go.mod h1:s4gRK/ym6AMrqpOa/kEbQTV4Q4jb7WeLZzVhVVVOQMc= -github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 h1:gWg6ZQ4JhDfJPqlo2srm/LN17lpybq15AryXIRcWYLE= github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -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.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.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -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.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= 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-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/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.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mattn/go-sqlite3 v1.14.9/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM= +github.com/mattn/go-sqlite3 v1.14.17/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/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= -github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/mbilski/exhaustivestruct v1.2.0 h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwgOdMUQePUo= github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= -github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= -github.com/mgechev/revive v1.2.1/go.mod h1:+Ro3wqY4vakcYNtkBWdZC7dBg1xSB6sp054wWwmeFm0= -github.com/mgechev/revive v1.3.4 h1:k/tO3XTaWY4DEHal9tWBkkUMJYO/dLDVyMmAQxmIMDc= -github.com/mgechev/revive v1.3.4/go.mod h1:W+pZCMu9qj8Uhfs1iJMQsEFLRozUfvwFwqVvRbSNLVw= +github.com/mgechev/revive v1.3.1 h1:OlQkcH40IB2cGuprTPcjB0iIUddgVZgGmDX3IAMR8D4= +github.com/mgechev/revive v1.3.1/go.mod h1:YlD6TTWl2B8A103R9KWJSPVI9DrEf+oqr15q21Ld+5I= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= -github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= -github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= -github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= -github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= -github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= -github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94= -github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= -github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= -github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= -github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= -github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= -github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= +github.com/minio/highwayhash v1.0.3 h1:kbnuUMoHYyVl7szWjSxJnxw11k2U709jqFPPmIUyD6Q= +github.com/minio/highwayhash v1.0.3/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= -github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= @@ -1607,122 +839,85 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4 github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -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/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= -github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= -github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= +github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= 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= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= github.com/moricho/tparallel v0.3.1 h1:fQKD4U1wRMAYNngDonW5XupoB/ZGJHdpzrWqgyg9krA= github.com/moricho/tparallel v0.3.1/go.mod h1:leENX2cUv7Sv2qDgdi0D0fCftN8fRC67Bcn8pqzeYNI= -github.com/mozilla/scribe v0.0.0-20180711195314-fb71baf557c1/go.mod h1:FIczTrinKo8VaLxe6PWTPEXRXDIHz2QAwiaBaP5/4a8= -github.com/mozilla/tls-observatory v0.0.0-20210609171429-7bc42856d2e5/go.mod h1:FUqVoUPHSEdDR0MnFM3Dh8AU0pZHLXUD127SAJGER/s= -github.com/mroth/weightedrand v0.4.1/go.mod h1:3p2SIcC8al1YMzGhAIoXD+r9olo/g/cdJgAD905gyNE= -github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-proto-validators v0.0.0-20180403085117-0950a7990007/go.mod h1:m2XC9Qq0AlmmVksL6FktJCdTYyLk7V3fKyp0sl1yWQo= -github.com/mwitkow/go-proto-validators v0.2.0/go.mod h1:ZfA1hW+UH/2ZHOWvQ3HnQaU0DtnpXu850MZiy+YUgcc= github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76/go.mod h1:x5OoJHDHqxHS801UIuhqGl6QdSAEJvtausosHSdazIo= github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= 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/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q= -github.com/nats-io/jwt/v2 v2.0.3/go.mod h1:VRP+deawSXyhNjXmxPCHskrR6Mq50BqpEI5SEcNiGlY= github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= -github.com/nats-io/nats-server/v2 v2.5.0/go.mod h1:Kj86UtrXAL6LwYRA6H4RqzkHhK0Vcv2ZnKD5WbQ1t3g= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= -github.com/nats-io/nats.go v1.12.1/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= 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/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= -github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 h1:4kuARK6Y6FxaNu/BnU2OAaLF86eTVhP2hjTB6iMvItA= github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nishanths/exhaustive v0.8.1/go.mod h1:qj+zJJUgJ76tR92+25+03oYUhzF4R7/2Wk7fGTfCHmg= -github.com/nishanths/exhaustive v0.11.0 h1:T3I8nUGhl/Cwu5Z2hfc92l0e04D2GEW6e0l8pzda2l0= -github.com/nishanths/exhaustive v0.11.0/go.mod h1:RqwDsZ1xY0dNdqHho2z6X+bgzizwbLYOWnZbbl2wLB4= -github.com/nishanths/predeclared v0.0.0-20190419143655-18a43bb90ffc/go.mod h1:62PewwiQTlm/7Rj+cxVYqZvDIUc+JjZq6GHAC1fsObQ= +github.com/nishanths/exhaustive v0.9.5 h1:TzssWan6orBiLYVqewCG8faud9qlFntJE30ACpzmGME= +github.com/nishanths/exhaustive v0.9.5/go.mod h1:IbwrGdVMizvDcIxPYGVdQn5BqWJaOwpCvg4RGb8r/TA= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= -github.com/nunnatsa/ginkgolinter v0.14.1 h1:khx0CqR5U4ghsscjJ+lZVthp3zjIFytRXPTaQ/TMiyA= -github.com/nunnatsa/ginkgolinter v0.14.1/go.mod h1:nY0pafUSst7v7F637e7fymaMlQqI9c0Wka2fGsDkzWg= +github.com/nunnatsa/ginkgolinter v0.9.0 h1:Sm0zX5QfjJzkeCjEp+t6d3Ha0jwvoDjleP9XCsrEzOA= +github.com/nunnatsa/ginkgolinter v0.9.0/go.mod h1:FHaMLURXP7qImeH6bvxWJUpyH+2tuqe5j4rW1gxJRmI= 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/oasisprotocol/curve25519-voi v0.0.0-20210609091139-0a56a4bca00b/go.mod h1:TLJifjWF6eotcfzDjKZsDqWJ+73Uvj/N85MvVyrvynM= +github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a h1:dlRvE5fWabOchtH7znfiFCcOvmIYgOeAS5ifBXBlh9Q= +github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s= 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/v2 v2.0.2/go.mod h1:mtBL0Qe/0HAx6/a4Z30qxVIAL1eQDweXq5lxOEiwQ68= +github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= +github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ= 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.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= +github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= -github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= -github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= -github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/ginkgo/v2 v2.8.0 h1:pAM+oBNPrpXRs+E/8spkeGx9QgekbRVyr74EUvRVOUI= +github.com/onsi/ginkgo/v2 v2.8.0/go.mod h1:6JsQiECmxCa3V5st74AL/AmsV482EDdVrGaVW6z3oYU= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= -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.28.1 h1:MijcGUbfYuznzK/5R4CPNoUP/9Xvuo20sXfEm6XxoTA= +github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= +github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= 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.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/runc v1.1.2/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= -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/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= +github.com/opencontainers/runc v1.2.0-rc.3 h1:5vQhejBp4S5w1DwFZ7L3CSOQX9cmcc8JKFy/mOBTJlo= +github.com/opencontainers/runc v1.2.0-rc.3/go.mod h1:HADgqJU4nqAmOpe+uYBTJ4ZRvjks3ptCjKXp1pHqmCc= 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= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= 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/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= -github.com/ory/dockertest/v3 v3.9.1/go.mod h1:42Ir9hmvaAPm0Mgibk6mBPi7SFvTXxEcnztDYOJ//uM= +github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= -github.com/otiai10/copy v1.11.0 h1:OKBD80J/mLBrwnzXqGtFCzprFSGioo30JcmR4APsNwc= 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= @@ -1731,50 +926,32 @@ github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIw 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/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= 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.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= 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.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/pelletier/go-toml/v2 v2.0.2/go.mod h1:MovirKjgVRESsAvNZlAjtFwV867yGuwRkXbG66OzopI= -github.com/pelletier/go-toml/v2 v2.0.7 h1:muncTPStnKRos5dpVKULv2FVd4bMOhNePj9CjgDb8Us= -github.com/pelletier/go-toml/v2 v2.0.7/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= +github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= +github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/performancecopilot/speed/v4 v4.0.0/go.mod h1:qxrSyuDGrTOWfV+uKRFhfxw6h/4HXRGUiZiufxo49BM= -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-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU= -github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= -github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= -github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= -github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= -github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= -github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 h1:Dx7Ovyv/SFnMFw3fD4oEoeorXc6saIiQ23LrGLth0Gw= +github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7/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/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= +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= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= -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/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/polyfloyd/go-errorlint v1.0.0/go.mod h1:KZy4xxPJyy88/gldCe5OdW6OQRtNO3EZE7hXzmnebgA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/polyfloyd/go-errorlint v1.4.5 h1:70YWmMy4FgRHehGNOUask3HtSFSOLKgmDn7ryNe7LqI= github.com/polyfloyd/go-errorlint v1.4.5/go.mod h1:sIZEbFoDOCnTYYZoVkjc4hTnM459tuWA9H/EkdXwsKk= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= 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 v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= @@ -1782,20 +959,17 @@ github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeD github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.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/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= 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= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= @@ -1803,10 +977,9 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.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.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= -github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= +github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= +github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= 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= @@ -1815,40 +988,23 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O 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.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= -github.com/proullon/ramsql v0.1.3 h1:/LRcXJf4lEmhdb4tYcci473I2VynjcZSzh2hsjJ8rSk= -github.com/proullon/ramsql v0.1.3/go.mod h1:CFGqeQHQpdRfWqYmWD3yXqPTEaHkF4zgXy1C6qDWc9E= -github.com/pseudomuto/protoc-gen-doc v1.3.2/go.mod h1:y5+P6n3iGrbKG+9O04V5ld71in3v/bX88wUwgt+U8EA= -github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q= -github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30= -github.com/quasilyte/go-ruleguard v0.3.16-0.20220213074421-6aa060fab41a/go.mod h1:VMX+OnnSw4LicdiEGtRSD/1X8kW7GuEscjYNr4cOIT4= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/proullon/ramsql v0.1.4 h1:yTFRTn46gFH/kPbzCx+mGjuFlyTBUeDr3h2ldwxddl0= +github.com/proullon/ramsql v0.1.4/go.mod h1:CFGqeQHQpdRfWqYmWD3yXqPTEaHkF4zgXy1C6qDWc9E= github.com/quasilyte/go-ruleguard v0.4.0 h1:DyM6r+TKL+xbKB4Nm7Afd1IQh9kEUKQs2pboWGKtvQo= github.com/quasilyte/go-ruleguard v0.4.0/go.mod h1:Eu76Z/R8IXtViWUIHkE3p8gdH3/PKk1eh3YGfaEof10= -github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/dsl v0.3.16/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-20220120141003-628d8b3623b5/go.mod h1:wSEyW6O61xRV6zb6My3HxrQ5/8ke7NE2OayqCHa3xRM= github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo= github.com/quasilyte/gogrep v0.5.0/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl980XxGFEZSS6KlBGIV0diGdySzxATTWoqaU= github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= -github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= -github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/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/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/remyoudompheng/go-dbus v0.0.0-20121104212943-b7232d34b1d5/go.mod h1:+u151txRmLpwxBmpYn9z3d1sdJdjRPQpsXuYeY9jNls= -github.com/remyoudompheng/go-liblzma v0.0.0-20190506200333-81bf2d431b96/go.mod h1:90HvCY7+oHHUKkbeMCiHt1WuFR2/hPJ9QrljDG+v6ls= -github.com/remyoudompheng/go-misc v0.0.0-20190427085024-2d6ac652a50e/go.mod h1:80FQABjoFzZ2M5uEa6FUaJYEmqU2UOKojlFVak1UAwI= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -1857,51 +1013,41 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR 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/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -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.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= +github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= -github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= -github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= 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/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= -github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= -github.com/ryancurrah/gomodguard v1.2.3/go.mod h1:rYbA/4Tg5c54mV1sv4sQTP5WOPBcoLtnBZ7/TEhXAbg= github.com/ryancurrah/gomodguard v1.3.0 h1:q15RT/pd6UggBXVBuLps8BXRvl5GPBcwVA7BJHMLuTw= github.com/ryancurrah/gomodguard v1.3.0/go.mod h1:ggBxb3luypPEzqVtq33ee7YSN35V28XeGnid8dnni50= -github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= -github.com/ryanrolds/sqlclosecheck v0.5.1 h1:dibWW826u0P8jNLsLN+En7+RqWWTYrjCB9fJfSfdyCU= -github.com/ryanrolds/sqlclosecheck v0.5.1/go.mod h1:2g3dUjoS6AL4huFdv6wn55WpLIDjY7ZgUR4J8HOO/XQ= +github.com/ryanrolds/sqlclosecheck v0.4.0 h1:i8SX60Rppc1wRuyQjMciLqIzV3xnoHB7/tXbr6RGYNI= +github.com/ryanrolds/sqlclosecheck v0.4.0/go.mod h1:TBRRjzL31JONc9i4XMinicuo+s+E8yKZ5FN8X3G6CKQ= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig= -github.com/sagikazarmark/crypt v0.6.0/go.mod h1:U8+INwJo3nBv1m6A/8OBXAq7Jnpspk5AxSgDyEQcea8= +github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= +github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= +github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew= +github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= github.com/sanposhiho/wastedassign/v2 v2.0.7 h1:J+6nrY4VW+gC9xFzUc+XjPD3g3wF3je/NsJFwFK7Uxc= github.com/sanposhiho/wastedassign/v2 v2.0.7/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= -github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= -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/sasha-s/go-deadlock v0.3.5 h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU= +github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U= github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= -github.com/sashamelentyev/usestdlibvars v1.24.0 h1:MKNzmXtGh5N0y74Z/CIaJh4GlB364l0K1RUT08WSWAc= -github.com/sashamelentyev/usestdlibvars v1.24.0/go.mod h1:9cYkq+gYJ+a5W2RPdhfaSCnTVUC1OQP/bSiiBhq3OZE= +github.com/sashamelentyev/usestdlibvars v1.23.0 h1:01h+/2Kd+NblNItNeux0veSL5cBF1jbEOPrEhDzGYq0= +github.com/sashamelentyev/usestdlibvars v1.23.0/go.mod h1:YPwr/Y1LATzHI93CqoPUN/2BzGQ/6N/cl/KwgR0B/aU= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= -github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= -github.com/securego/gosec/v2 v2.12.0/go.mod h1:iTpT+eKTw59bSgklBHlSnH5O2tNygHMDxfvMubA4i7I= -github.com/securego/gosec/v2 v2.18.2 h1:DkDt3wCiOtAHf1XkiXZBhQ6m6mK/b9T/wD257R3/c+I= -github.com/securego/gosec/v2 v2.18.2/go.mod h1:xUuqSF6i0So56Y2wwohWAmB07EdBkUN6crbLlHwbyJs= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/securego/gosec/v2 v2.15.0 h1:v4Ym7FF58/jlykYmmhZ7mTm7FQvN/setNm++0fgIAtw= +github.com/securego/gosec/v2 v2.15.0/go.mod h1:VOjTrZOkUtSDt2QLSJmQBMWnvwiQPEjg0l+5juIqGk8= +github.com/shamaton/msgpack/v2 v2.2.2 h1:GOIg0c9LV04VwzOOqZSrmsv/JzjNOOMxnS/HvOHGdgs= +github.com/shamaton/msgpack/v2 v2.2.2/go.mod h1:6khjYnkx73f7VQU7wjcFS9DFjs+59naVWJv1TB7qdOI= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= -github.com/shirou/gopsutil/v3 v3.22.6/go.mod h1:EdIubSnZhbAvBS1yJ7Xi+AShB/hxwLHOMz4MCYz7yMs= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -1909,77 +1055,50 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYIc1yrHI= github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= -github.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE= -github.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4= -github.com/sivchari/nosnakecase v1.5.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= github.com/sivchari/nosnakecase v1.7.0 h1:7QkpWIRMe8x25gckkFd2A5Pi6Ymo0qgr4JrhGt95do8= github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= -github.com/sivchari/tenv v1.6.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= github.com/sivchari/tenv v1.7.1 h1:PSpuD4bu6fSmtWMxSGWcvqUUgIn7k3yOJhOIzVWn8Ak= github.com/sivchari/tenv v1.7.1/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= 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/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= github.com/sonatard/noctx v0.0.2 h1:L7Dz4De2zDQhW8S0t+KUjY0MAQJd6SgVwhzNIc4ok00= github.com/sonatard/noctx v0.0.2/go.mod h1:kzFz+CzWSjQ2OzIm46uJZoXuBpa2+0y3T36U18dWqIo= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0= github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= -github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.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/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= -github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.4.1/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/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= +github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= 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.3.0/go.mod h1:BrRVncBjOJa/eUcVVm9CE+oC6as8k+VYr4NY7WCi9V4= -github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= -github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= -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/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= 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.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy5AsM= -github.com/spf13/viper v1.12.0/go.mod h1:b6COn30jlNxbm/V2IqWiNWkJ+vZNiMNksliPCiuKtSI= -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/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.20.0 h1:zrxIyR3RQIOsarIrgL8+sAvALXul9jeEPa06Y0Ph6vY= +github.com/spf13/viper v1.20.0/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc= github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I= 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/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= -github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/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-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.1.4/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= @@ -1989,148 +1108,75 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= 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/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -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.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/subosito/gotenv v1.3.0/go.mod h1:YzJjq/33h7nrwdY+iHMhEOEEbW0ovIz0tB6t6PwAXzs= -github.com/subosito/gotenv v1.4.0/go.mod h1:mZd6rFysKEcUhUHXJk0C/08wAgyDBFuwEYL7vWWGaGo= -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/sylvia7788/contextcheck v1.0.4/go.mod h1:vuPKJMQ7MQ91ZTqfdyreNKwZjyUg6KO+IebVyQDedZQ= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= -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/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c h1:+aPplBwWcHBo6q9xrfWdMrT9o4kltkmmvpemgIjep/8= github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c/go.mod h1:SbErYREK7xXdsRiigaQiQkI9McGRzYMvlKYaP3Nimdk= -github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= github.com/tdakkota/asciicheck v0.2.0 h1:o8jvnUANo0qXtnslk2d3nMKTFNlOnJjRrNcj0j9qkHM= github.com/tdakkota/asciicheck v0.2.0/go.mod h1:Qb7Y9EgjCLJGup51gDHFzbI08/gbGhL/UVhYIPWG2rg= -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/tendermint/tendermint v0.35.9 h1:yUEgfkcNHWSidsU8wHjRDbYPVijV4cHxCclKVITGRAQ= -github.com/tendermint/tendermint v0.35.9/go.mod h1:FYvzUDkmVv1awfFl9V85yl5NKyjxz6XLZGX132+ftAY= -github.com/tendermint/tm-db v0.6.6/go.mod h1:wP8d49A85B7/erz/r4YbKssKw6ylsO/hKtFk7E1aWZI= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= +github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw= github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= -github.com/tetafro/godot v1.4.15 h1:QzdIs+XB8q+U1WmQEWKHQbKmCw06QuQM7gLx/dky2RM= -github.com/tetafro/godot v1.4.15/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio= -github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= -github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= -github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 h1:quvGphlmUVU+nhpFa4gg4yJyTRJ13reZMDHrKwYw53M= -github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966/go.mod h1:27bSVNWSBOHm+qRp1T9qzaIpsWEP6TbUnei/43HK+PQ= +github.com/tidwall/btree v1.7.0 h1:L1fkJH/AuEh5zBnnBbmTwQ5Lt+bRJ5A8EWecslvo9iI= +github.com/tidwall/btree v1.7.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= +github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e h1:MV6KaVu/hzByHP0UvJ4HcMGE/8a6A4Rggc/0wx2AvJo= +github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e/go.mod h1:27bSVNWSBOHm+qRp1T9qzaIpsWEP6TbUnei/43HK+PQ= github.com/timonwong/loggercheck v0.9.4 h1:HKKhqrjcVj8sxL7K77beXh0adEm6DLjV/QOGeMXEVi4= github.com/timonwong/loggercheck v0.9.4/go.mod h1:caz4zlPcgvpEkXgVnAJGowHAMW2NwHaNlpS8xDbVhTg= -github.com/tinylib/msgp v1.1.5/go.mod h1:eQsjooMTnV42mHu917E26IogZ2930nFyBQdofk10Udg= -github.com/tj/assert v0.0.3/go.mod h1:Ne6X72Q+TB1AteidzQncjw9PabbMp4PBMZ1k+vd1Pvk= -github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= -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/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tomarrell/wrapcheck/v2 v2.6.2/go.mod h1:ao7l5p0aOlUNJKI0qVwB4Yjlqutd0IvAB9Rdwyilxvg= github.com/tomarrell/wrapcheck/v2 v2.8.1 h1:HxSqDSN0sAt0yJYsrcYVoEeyM4aI9yAm3KQpIXDJRhQ= github.com/tomarrell/wrapcheck/v2 v2.8.1/go.mod h1:/n2Q3NZ4XFT50ho6Hbxg+RV1uyo2Uow/Vdm9NQcl5SE= -github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= -github.com/tommy-muehle/go-mnd/v2 v2.5.0/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= -github.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= -github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= 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/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/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= +github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/ultraware/funlen v0.0.3 h1:5ylVWm8wsNwH5aWo9438pwvsK0QiqVuUrt9bn7S/iLA= github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= -github.com/ultraware/funlen v0.1.0 h1:BuqclbkY6pO+cvxoq7OsktIXZpgBSkYTQtmwhAK81vI= -github.com/ultraware/funlen v0.1.0/go.mod h1:XJqmOQja6DpxarLj6Jj1U7JuoS8PvL4nEqDaQhy22p4= github.com/ultraware/whitespace v0.0.5 h1:hh+/cpIcopyMYbZNVov9iSxvJU3OYQg78Sfaqzi/CzI= github.com/ultraware/whitespace v0.0.5/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= 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/uudashr/gocognit v1.0.6 h1:2Cgi6MweCsdB6kpcVQp7EW4U23iBFQWfTXiWlyp842Y= github.com/uudashr/gocognit v1.0.6/go.mod h1:nAIUuVBnYU7pcninia3BHOvQkpQCeO76Uscky5BOwcY= -github.com/uudashr/gocognit v1.1.2 h1:l6BAEKJqQH2UpKAPKdMfZf5kE4W/2xk8pfU1OVLvniI= -github.com/uudashr/gocognit v1.1.2/go.mod h1:aAVdLURqcanke8h3vg35BC++eseDm66Z7KmchI5et4k= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.30.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus= -github.com/valyala/quicktemplate v1.7.0/go.mod h1:sqKJnoaOF88V07vkO+9FL8fb9uZg/VPSJnLYn+LmLk8= -github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= -github.com/vektra/mockery/v2 v2.14.0/go.mod h1:bnD1T8tExSgPD1ripLkDbr60JA9VtQeu12P3wgLZd7M= -github.com/viki-org/dnscache v0.0.0-20130720023526-c70c1f23c5d8/go.mod h1:dniwbG03GafCjFohMDmz6Zc6oCuiqgH6tGNyXTkHzXE= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xen0n/gosmopolitan v1.2.2 h1:/p2KTnMzwRexIW8GlKawsTWOxn7UHA+jCMF/V8HHtvU= -github.com/xen0n/gosmopolitan v1.2.2/go.mod h1:7XX7Mj61uLYrj0qmeN0zi7XDon9JRAEhYQqAPLVNTeg= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= github.com/yeya24/promlinter v0.2.0 h1:xFKDQ82orCU5jQujdaD8stOHiv8UN68BSdn2a8u8Y3o= github.com/yeya24/promlinter v0.2.0/go.mod h1:u54lkmBOZrpEbQQ6gox2zWKKLKu2SGe+2KOiextY+IA= -github.com/ykadowak/zerologlint v0.1.3 h1:TLy1dTW3Nuc+YE3bYRPToG1Q9Ej78b5UUN6bjbGdxPE= -github.com/ykadowak/zerologlint v0.1.3/go.mod h1:KaUskqF3e/v59oPmdq1U1DnKcuHokl2/K1U4pmIELKg= -github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= -github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= -github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= -github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -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= -gitlab.com/bosi/decorder v0.2.2/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= -gitlab.com/bosi/decorder v0.4.1 h1:VdsdfxhstabyhZovHafFw+9eJ6eU0d2CkFNJcZz/NU4= -gitlab.com/bosi/decorder v0.4.1/go.mod h1:jecSqWUew6Yle1pCr2eLWTensJMmsxHsBwt+PVbkAqA= -go-simpler.org/assert v0.6.0 h1:QxSrXa4oRuo/1eHMXSBFHKvJIpWABayzKldqZyugG7E= -go-simpler.org/sloglint v0.1.2 h1:IjdhF8NPxyn0Ckn2+fuIof7ntSnVUAqBFcQRrnG9AiM= -go-simpler.org/sloglint v0.1.2/go.mod h1:2LL+QImPfTslD5muNPydAEYmpXIj6o/WYcqnJjLi4o4= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= +gitlab.com/bosi/decorder v0.2.3 h1:gX4/RgK16ijY8V+BRQHAySfQAb354T7/xQpDB2n10P0= +gitlab.com/bosi/decorder v0.2.3/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/bbolt v1.3.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/bbolt v1.4.0-alpha.1 h1:3yrqQzbRRPFPdOMWS/QQIVxVnzSkAZQYeWlZFv1kbj4= +go.etcd.io/bbolt v1.4.0-alpha.1/go.mod h1:S/Z/Nm3iuOnyO1W4XuFfPci51Gj6F1Hv0z8hisyYYOw= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/pkg/v3 v3.5.4/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.etcd.io/etcd/client/v2 v2.305.1/go.mod h1:pMEacxZW7o8pg4CrFE7pquyCJJzZvkvdD2RibOCCCGs= -go.etcd.io/etcd/client/v2 v2.305.4/go.mod h1:Ud+VUwIi9/uQHOMA+4ekToJ12lTxlv0zB/+DHwTGEbU= -go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= -go.etcd.io/etcd/client/v3 v3.5.4/go.mod h1:ZaRkVgBZC+L+dLCjTcF1hRXpgZXQPOvnA/Ak/gq3kiY= -go.mozilla.org/mozlog v0.0.0-20170222151521-4bb13139d403/go.mod h1:jHoPAGnDrCy6kaI2tAze5Prf0Nr0w/oNkROt2lw3n3o= 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= @@ -2138,15 +1184,25 @@ go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/detectors/gcp v1.32.0 h1:P78qWqkLSShicHmAzfECaTgvslqHxblNE9j62Ws1NK8= +go.opentelemetry.io/contrib/detectors/gcp v1.32.0/go.mod h1:TVqo0Sda4Cv8gCIixd7LuLwW4EylumVWfhjZJjDD4DU= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.tmz.dev/musttag v0.7.2 h1:1J6S9ipDbalBSODNT5jCep8dhZyMr4ttnjQagmGYR5s= -go.tmz.dev/musttag v0.7.2/go.mod h1:m6q5NiiSKMnQYokefa2xGoyoXnrswCbJ0AWYzf4Zs28= 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= @@ -2154,65 +1210,39 @@ go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.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-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -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/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= -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.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= 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-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= +golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/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-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-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-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210915214749-c084706c2272/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/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.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -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/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= +golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/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-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= @@ -2220,28 +1250,14 @@ 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-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/exp v0.0.0-20230131160201-f062dba9d201/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 h1:MGwJjxBy0HJshjDNfLsYO8xppfqWlA5ZT9OhtUUhTNw= -golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= -golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp v0.0.0-20250215185904-eff6e970281f h1:oFMYAjX0867ZD2jcNiLBrI9BdpmEkvPyi5YrBGXbamg= +golang.org/x/exp v0.0.0-20250215185904-eff6e970281f/go.mod h1:BHOTPb3L19zxehTsLoJXVaTktb06DFgmdW6Wb9s8jqk= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 h1:jWGQJV4niP+CCmFW9ekjA9Zx8vYORzOUH2/Nl5WPuLQ= golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= 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/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -2252,8 +1268,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -2262,20 +1276,16 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -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.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 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.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= -golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= +golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= 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= @@ -2296,8 +1306,6 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL 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-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-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= @@ -2316,86 +1324,33 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R 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-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 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-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= -golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/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.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.3.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/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.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= +golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= 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= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= -golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= -golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/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.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= -golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= -golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= -golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0= -golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= +golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= +golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= 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= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -2403,14 +1358,10 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220513210516-0976fa681c29/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -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-20220819030929-7fc1605a5dde/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/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 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= @@ -2419,30 +1370,20 @@ golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-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-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-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-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-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-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-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2451,7 +1392,6 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w 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-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-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2468,78 +1408,32 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/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-20200905004654-be1d3432aa8f/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-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-20201204225414-ed752295db88/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= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -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-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/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-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-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/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-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/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-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-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-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/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-20211105183446-c75c47738b0c/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= -golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/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-20211213223007-03aa0b5f6827/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/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-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220315194320-039c03cc5b86/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220624220833-87e55d714810/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-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -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.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -2547,80 +1441,60 @@ 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/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= +golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 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.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/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.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= 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-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 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-20181030221726-6c7e314b6563/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-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190228203856-589c23e65e65/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-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-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-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190916130336-e45ffcd953cc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -2630,12 +1504,10 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -2648,87 +1520,44 @@ golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjs golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200426102838-f3a5411a4c3b/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200622203043-20e05c1c8ffa/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200630154851-b2d8b0336632/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200706234117-b22de6825cf7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201028025901-8cd080b735b3/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201230224404-63754364767c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= -golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= -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/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.11-0.20220513221640-090b14e8501f/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= -golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= +golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= +golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -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= -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/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= -gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= -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= -gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= -gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= 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= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -2741,65 +1570,17 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= -google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= -google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= -google.golang.org/api v0.62.0/go.mod h1:dKmwPCydfsad4qCH08MSdgWjfHOyfpd4VtDGgRFdavw= -google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= -google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= -google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= -google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= -google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= -google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= -google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= -google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= -google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= -google.golang.org/api v0.81.0/go.mod h1:FA6Mb/bZxj706H2j+j2d6mHEEaHBmbbWnkfvmorOCko= -google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= -google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= -google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= -google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= -google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= -google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= -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.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= -google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= -google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= -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/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= -google.golang.org/api v0.149.0 h1:b2CqT6kG+zqJIVKRQ3ELJVLN1PwHZ6DJ3dW8yl82rgY= -google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= +google.golang.org/api v0.215.0 h1:jdYF4qnyczlEz2ReWIsosNLDuzXyvFHJtI5gcr0J7t0= +google.golang.org/api v0.215.0/go.mod h1:fta3CVtuJYOEdugLNWm6WodzOS8KdFckABwN4I40hzY= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20181107211654-5fc9ac540362/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -2808,7 +1589,6 @@ google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dT google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= @@ -2829,121 +1609,17 @@ google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200626011028-ee7919e894b5/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200707001353-8e8330bf89df/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -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-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= -google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211028162531-8db9c33dc351/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211129164237-f09f9a12af12/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211203200212-54befc351ae9/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220519153652-3a47de7e79bd/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= -google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= -google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= -google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= -google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= -google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= -google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= -google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= -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-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= -google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= -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-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/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-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= -google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 h1:Jyp0Hsi0bmHXG6k9eATXoYtjd6e2UzZ1SCn/wIupY14= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= -google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241223144023-3abc09e42ca8 h1:TqExAhdPaB60Ux47Cn0oLV07rGnxZzIsaRhQaqS666A= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241223144023-3abc09e42ca8/go.mod h1:lcTa1sDdWEIHMWlITnIczmw5w60CF9ffkb8Z+DVmmjA= 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= @@ -2953,48 +1629,22 @@ 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= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= 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.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.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= -google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= -google.golang.org/grpc v1.61.0 h1:TOvOcuXn30kRao+gfcvsebNEa5iZIiLkisYEkf7R7o0= -google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ= +google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -3007,32 +1657,21 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= 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/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= +google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= 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-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/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.66.6/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -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/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= 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= @@ -3043,24 +1682,20 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.6/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/postgres v1.5.2 h1:ytTDxxEv+MplXOfFe3Lzm7SjG09fcdb3Z/c056DTBx0= +gorm.io/driver/postgres v1.5.2/go.mod h1:fmpX0m2I1PKuR7mKZiEluwrP3hbs+ps7JIGMUBpCgl8= gorm.io/gorm v1.25.2 h1:gs1o6Vsa+oVKG/a9ElL3XgyGfghFfkKA2SInQaCyMho= -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.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= -gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/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= @@ -3069,65 +1704,26 @@ 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= -honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -honnef.co/go/tools v0.3.2/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= -honnef.co/go/tools v0.4.6 h1:oFEHCKeID7to/3autwsWfnuv69j3NsfcXbvJKuIcep8= -honnef.co/go/tools v0.4.6/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= -lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= -modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= -modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= -modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= -modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= -modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= -modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= -modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= -modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= -modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= -modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= -modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= -modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= -modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= -modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= -modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= -modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= -modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= -modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= -modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= -modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= -modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= -mvdan.cc/gofumpt v0.3.1/go.mod h1:w3ymliuxvzVx8DAutBnVyDqYb1Niy/yCJt/lk821YCE= -mvdan.cc/gofumpt v0.5.0 h1:0EQ+Z56k8tXjj/6TQD25BFNKQXpCvT0rnansIc7Ug5E= -mvdan.cc/gofumpt v0.5.0/go.mod h1:HBeVDtMKRZpXyxFciAirzdKklDlGu8aAy1wEbH5Y9js= +honnef.co/go/tools v0.4.3 h1:o/n5/K5gXqk8Gozvs2cnL0F2S1/g1vcGCAx2vETjITw= +honnef.co/go/tools v0.4.3/go.mod h1:36ZgoUOrqOk1GxwHhyryEkq8FQWkUO2xGuSMhUCcdvA= +mvdan.cc/gofumpt v0.4.0 h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM= +mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= -mvdan.cc/unparam v0.0.0-20211214103731-d0ef000c54e5/go.mod h1:b8RRCBm0eeiWR8cfN88xeq2G5SG3VKGO+5UPWi5FSOY= mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d h1:3rvTIIM22r9pvXk+q3swxUQAQOxksVMGK7sml4nG57w= mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d/go.mod h1:IeHQjmn6TOD+e4Z3RFiZMMsLVL+A96Nvptar8Fj71is= -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.4.8/go.mod h1:Z5PbWqjvWR1I3UGjvboUuan4fe4ZYEYNLNQLExzCoUs= -pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= -pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +nhooyr.io/websocket v1.8.11 h1:f/qXNc2/3DpoSZkHt1DQu6rj4zGC8JmkkLkWss0MgN0= +nhooyr.io/websocket v1.8.11/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= +pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= 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/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= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/hasura/api/.graphqlconfig b/hasura/api/.graphqlconfig new file mode 100644 index 000000000..699d1f791 --- /dev/null +++ b/hasura/api/.graphqlconfig @@ -0,0 +1,15 @@ +{ + "name": "Explorer Schema", + "schemaPath": "schema.graphql", + "extensions": { + "endpoints": { + "Remote SWAPI GraphQL Endpoint": { + "url": "http://localhost:8080/v1/graphql", + "headers": { + "user-agent": "JS GraphQL" + }, + "introspect": true + } + } + } +} \ No newline at end of file diff --git a/hasura/api/schema.graphql b/hasura/api/schema.graphql new file mode 100644 index 000000000..234a8fc3c --- /dev/null +++ b/hasura/api/schema.graphql @@ -0,0 +1,26967 @@ +schema { + query: query_root + mutation: mutation_root + subscription: subscription_root +} + +"""whether this query should be cached (Hasura Cloud only)""" +directive @cached( + """measured in seconds""" + ttl: Int! = 60 + + """refresh the cache entry""" + refresh: Boolean! = false +) on QUERY + +type ActionAddress { + address: String! +} + +type ActionBalance { + coins: [ActionCoin] +} + +scalar ActionCoin + +scalar ActionDelegation + +type ActionDelegationResponse { + delegations: [ActionDelegation] + pagination: ActionPagination +} + +type ActionDelegationReward { + coins: [ActionCoin] + validator_address: String! +} + +scalar ActionPagination + +scalar ActionRedelegation + +type ActionRedelegationResponse { + pagination: ActionPagination + redelegations: [ActionRedelegation] +} + +scalar ActionUnbondingDelegation + +type ActionUnbondingDelegationResponse { + pagination: ActionPagination + unbonding_delegations: [ActionUnbondingDelegation] +} + +type ActionValidatorCommissionAmount { + coins: [ActionCoin] +} + +""" +Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. +""" +input Boolean_comparison_exp { + _eq: Boolean + _gt: Boolean + _gte: Boolean + _in: [Boolean!] + _is_null: Boolean + _lt: Boolean + _lte: Boolean + _neq: Boolean + _nin: [Boolean!] +} + +""" +Boolean expression to compare columns of type "Int". All fields are combined with logical 'AND'. +""" +input Int_comparison_exp { + _eq: Int + _gt: Int + _gte: Int + _in: [Int!] + _is_null: Boolean + _lt: Int + _lte: Int + _neq: Int + _nin: [Int!] +} + +""" +Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. +""" +input String_array_comparison_exp { + """is the array contained in the given array value""" + _contained_in: [String!] + + """does the array contain the given value""" + _contains: [String!] + _eq: [String!] + _gt: [String!] + _gte: [String!] + _in: [[String!]!] + _is_null: Boolean + _lt: [String!] + _lte: [String!] + _neq: [String!] + _nin: [[String!]!] +} + +""" +Boolean expression to compare columns of type "String". All fields are combined with logical 'AND'. +""" +input String_comparison_exp { + _eq: String + _gt: String + _gte: String + + """does the column match the given case-insensitive pattern""" + _ilike: String + _in: [String!] + + """ + does the column match the given POSIX regular expression, case insensitive + """ + _iregex: String + _is_null: Boolean + + """does the column match the given pattern""" + _like: String + _lt: String + _lte: String + _neq: String + + """does the column NOT match the given case-insensitive pattern""" + _nilike: String + _nin: [String!] + + """ + does the column NOT match the given POSIX regular expression, case insensitive + """ + _niregex: String + + """does the column NOT match the given pattern""" + _nlike: String + + """ + does the column NOT match the given POSIX regular expression, case sensitive + """ + _nregex: String + + """does the column NOT match the given SQL regular expression""" + _nsimilar: String + + """ + does the column match the given POSIX regular expression, case sensitive + """ + _regex: String + + """does the column match the given SQL regular expression""" + _similar: String +} + +scalar _text + +""" +columns and relationships of "account" +""" +type account { + address: String! + + """An array relationship""" + proposal_deposits( + """distinct select on columns""" + distinct_on: [proposal_deposit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_deposit_order_by!] + + """filter the rows returned""" + where: proposal_deposit_bool_exp + ): [proposal_deposit!]! + + """An aggregate relationship""" + proposal_deposits_aggregate( + """distinct select on columns""" + distinct_on: [proposal_deposit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_deposit_order_by!] + + """filter the rows returned""" + where: proposal_deposit_bool_exp + ): proposal_deposit_aggregate! + + """An array relationship""" + proposal_votes( + """distinct select on columns""" + distinct_on: [proposal_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_vote_order_by!] + + """filter the rows returned""" + where: proposal_vote_bool_exp + ): [proposal_vote!]! + + """An aggregate relationship""" + proposal_votes_aggregate( + """distinct select on columns""" + distinct_on: [proposal_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_vote_order_by!] + + """filter the rows returned""" + where: proposal_vote_bool_exp + ): proposal_vote_aggregate! + + """An array relationship""" + proposals( + """distinct select on columns""" + distinct_on: [proposal_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_order_by!] + + """filter the rows returned""" + where: proposal_bool_exp + ): [proposal!]! + + """An aggregate relationship""" + proposals_aggregate( + """distinct select on columns""" + distinct_on: [proposal_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_order_by!] + + """filter the rows returned""" + where: proposal_bool_exp + ): proposal_aggregate! + + """An array relationship""" + validator_infos( + """distinct select on columns""" + distinct_on: [validator_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_info_order_by!] + + """filter the rows returned""" + where: validator_info_bool_exp + ): [validator_info!]! + + """An aggregate relationship""" + validator_infos_aggregate( + """distinct select on columns""" + distinct_on: [validator_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_info_order_by!] + + """filter the rows returned""" + where: validator_info_bool_exp + ): validator_info_aggregate! + + """An object relationship""" + vesting_account: vesting_account + + """An array relationship""" + vesting_accounts( + """distinct select on columns""" + distinct_on: [vesting_account_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_account_order_by!] + + """filter the rows returned""" + where: vesting_account_bool_exp + ): [vesting_account!]! + + """An aggregate relationship""" + vesting_accounts_aggregate( + """distinct select on columns""" + distinct_on: [vesting_account_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_account_order_by!] + + """filter the rows returned""" + where: vesting_account_bool_exp + ): vesting_account_aggregate! +} + +""" +aggregated selection of "account" +""" +type account_aggregate { + aggregate: account_aggregate_fields + nodes: [account!]! +} + +""" +aggregate fields of "account" +""" +type account_aggregate_fields { + count(columns: [account_select_column!], distinct: Boolean): Int! + max: account_max_fields + min: account_min_fields +} + +""" +Boolean expression to filter rows from the table "account". All fields are combined with a logical 'AND'. +""" +input account_bool_exp { + _and: [account_bool_exp!] + _not: account_bool_exp + _or: [account_bool_exp!] + address: String_comparison_exp + proposal_deposits: proposal_deposit_bool_exp + proposal_deposits_aggregate: proposal_deposit_aggregate_bool_exp + proposal_votes: proposal_vote_bool_exp + proposal_votes_aggregate: proposal_vote_aggregate_bool_exp + proposals: proposal_bool_exp + proposals_aggregate: proposal_aggregate_bool_exp + validator_infos: validator_info_bool_exp + validator_infos_aggregate: validator_info_aggregate_bool_exp + vesting_account: vesting_account_bool_exp + vesting_accounts: vesting_account_bool_exp + vesting_accounts_aggregate: vesting_account_aggregate_bool_exp +} + +""" +unique or primary key constraints on table "account" +""" +enum account_constraint { + """ + unique or primary key constraint on columns "address" + """ + account_pkey +} + +""" +columns and relationships of "account_denom_balance" +""" +type account_denom_balance { + address: String! + amount: String! + denom: String! + height: bigint! +} + +""" +aggregated selection of "account_denom_balance" +""" +type account_denom_balance_aggregate { + aggregate: account_denom_balance_aggregate_fields + nodes: [account_denom_balance!]! +} + +""" +aggregate fields of "account_denom_balance" +""" +type account_denom_balance_aggregate_fields { + avg: account_denom_balance_avg_fields + count(columns: [account_denom_balance_select_column!], distinct: Boolean): Int! + max: account_denom_balance_max_fields + min: account_denom_balance_min_fields + stddev: account_denom_balance_stddev_fields + stddev_pop: account_denom_balance_stddev_pop_fields + stddev_samp: account_denom_balance_stddev_samp_fields + sum: account_denom_balance_sum_fields + var_pop: account_denom_balance_var_pop_fields + var_samp: account_denom_balance_var_samp_fields + variance: account_denom_balance_variance_fields +} + +"""aggregate avg on columns""" +type account_denom_balance_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "account_denom_balance". All fields are combined with a logical 'AND'. +""" +input account_denom_balance_bool_exp { + _and: [account_denom_balance_bool_exp!] + _not: account_denom_balance_bool_exp + _or: [account_denom_balance_bool_exp!] + address: String_comparison_exp + amount: String_comparison_exp + denom: String_comparison_exp + height: bigint_comparison_exp +} + +""" +unique or primary key constraints on table "account_denom_balance" +""" +enum account_denom_balance_constraint { + """ + unique or primary key constraint on columns "address", "denom" + """ + account_denom_balance_pkey +} + +""" +input type for incrementing numeric columns in table "account_denom_balance" +""" +input account_denom_balance_inc_input { + height: bigint +} + +""" +input type for inserting data into table "account_denom_balance" +""" +input account_denom_balance_insert_input { + address: String + amount: String + denom: String + height: bigint +} + +"""aggregate max on columns""" +type account_denom_balance_max_fields { + address: String + amount: String + denom: String + height: bigint +} + +"""aggregate min on columns""" +type account_denom_balance_min_fields { + address: String + amount: String + denom: String + height: bigint +} + +""" +response of any mutation on the table "account_denom_balance" +""" +type account_denom_balance_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [account_denom_balance!]! +} + +""" +on_conflict condition type for table "account_denom_balance" +""" +input account_denom_balance_on_conflict { + constraint: account_denom_balance_constraint! + update_columns: [account_denom_balance_update_column!]! = [] + where: account_denom_balance_bool_exp +} + +"""Ordering options when selecting data from "account_denom_balance".""" +input account_denom_balance_order_by { + address: order_by + amount: order_by + denom: order_by + height: order_by +} + +"""primary key columns input for table: account_denom_balance""" +input account_denom_balance_pk_columns_input { + address: String! + denom: String! +} + +""" +select columns of table "account_denom_balance" +""" +enum account_denom_balance_select_column { + """column name""" + address + + """column name""" + amount + + """column name""" + denom + + """column name""" + height +} + +""" +input type for updating data in table "account_denom_balance" +""" +input account_denom_balance_set_input { + address: String + amount: String + denom: String + height: bigint +} + +"""aggregate stddev on columns""" +type account_denom_balance_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type account_denom_balance_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type account_denom_balance_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "account_denom_balance" +""" +input account_denom_balance_stream_cursor_input { + """Stream column input with initial value""" + initial_value: account_denom_balance_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input account_denom_balance_stream_cursor_value_input { + address: String + amount: String + denom: String + height: bigint +} + +"""aggregate sum on columns""" +type account_denom_balance_sum_fields { + height: bigint +} + +""" +update columns of table "account_denom_balance" +""" +enum account_denom_balance_update_column { + """column name""" + address + + """column name""" + amount + + """column name""" + denom + + """column name""" + height +} + +input account_denom_balance_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: account_denom_balance_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: account_denom_balance_set_input + + """filter the rows which have to be updated""" + where: account_denom_balance_bool_exp! +} + +"""aggregate var_pop on columns""" +type account_denom_balance_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type account_denom_balance_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type account_denom_balance_variance_fields { + height: Float +} + +""" +input type for inserting data into table "account" +""" +input account_insert_input { + address: String + proposal_deposits: proposal_deposit_arr_rel_insert_input + proposal_votes: proposal_vote_arr_rel_insert_input + proposals: proposal_arr_rel_insert_input + validator_infos: validator_info_arr_rel_insert_input + vesting_account: vesting_account_obj_rel_insert_input + vesting_accounts: vesting_account_arr_rel_insert_input +} + +"""aggregate max on columns""" +type account_max_fields { + address: String +} + +"""aggregate min on columns""" +type account_min_fields { + address: String +} + +""" +response of any mutation on the table "account" +""" +type account_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [account!]! +} + +""" +input type for inserting object relation for remote table "account" +""" +input account_obj_rel_insert_input { + data: account_insert_input! + + """upsert condition""" + on_conflict: account_on_conflict +} + +""" +on_conflict condition type for table "account" +""" +input account_on_conflict { + constraint: account_constraint! + update_columns: [account_update_column!]! = [] + where: account_bool_exp +} + +"""Ordering options when selecting data from "account".""" +input account_order_by { + address: order_by + proposal_deposits_aggregate: proposal_deposit_aggregate_order_by + proposal_votes_aggregate: proposal_vote_aggregate_order_by + proposals_aggregate: proposal_aggregate_order_by + validator_infos_aggregate: validator_info_aggregate_order_by + vesting_account: vesting_account_order_by + vesting_accounts_aggregate: vesting_account_aggregate_order_by +} + +"""primary key columns input for table: account""" +input account_pk_columns_input { + address: String! +} + +""" +select columns of table "account" +""" +enum account_select_column { + """column name""" + address +} + +""" +input type for updating data in table "account" +""" +input account_set_input { + address: String +} + +""" +Streaming cursor of the table "account" +""" +input account_stream_cursor_input { + """Stream column input with initial value""" + initial_value: account_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input account_stream_cursor_value_input { + address: String +} + +""" +update columns of table "account" +""" +enum account_update_column { + """column name""" + address +} + +input account_updates { + """sets the columns of the filtered rows to the given values""" + _set: account_set_input + + """filter the rows which have to be updated""" + where: account_bool_exp! +} + +""" +columns and relationships of "assetft_params" +""" +type assetft_params { + height: bigint! + one_row_id: Boolean! + params( + """JSON select path""" + path: String + ): jsonb! +} + +""" +aggregated selection of "assetft_params" +""" +type assetft_params_aggregate { + aggregate: assetft_params_aggregate_fields + nodes: [assetft_params!]! +} + +""" +aggregate fields of "assetft_params" +""" +type assetft_params_aggregate_fields { + avg: assetft_params_avg_fields + count(columns: [assetft_params_select_column!], distinct: Boolean): Int! + max: assetft_params_max_fields + min: assetft_params_min_fields + stddev: assetft_params_stddev_fields + stddev_pop: assetft_params_stddev_pop_fields + stddev_samp: assetft_params_stddev_samp_fields + sum: assetft_params_sum_fields + var_pop: assetft_params_var_pop_fields + var_samp: assetft_params_var_samp_fields + variance: assetft_params_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input assetft_params_append_input { + params: jsonb +} + +"""aggregate avg on columns""" +type assetft_params_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "assetft_params". All fields are combined with a logical 'AND'. +""" +input assetft_params_bool_exp { + _and: [assetft_params_bool_exp!] + _not: assetft_params_bool_exp + _or: [assetft_params_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + params: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "assetft_params" +""" +enum assetft_params_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + assetft_params_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input assetft_params_delete_at_path_input { + params: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input assetft_params_delete_elem_input { + params: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input assetft_params_delete_key_input { + params: String +} + +""" +input type for incrementing numeric columns in table "assetft_params" +""" +input assetft_params_inc_input { + height: bigint +} + +""" +input type for inserting data into table "assetft_params" +""" +input assetft_params_insert_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate max on columns""" +type assetft_params_max_fields { + height: bigint +} + +"""aggregate min on columns""" +type assetft_params_min_fields { + height: bigint +} + +""" +response of any mutation on the table "assetft_params" +""" +type assetft_params_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [assetft_params!]! +} + +""" +on_conflict condition type for table "assetft_params" +""" +input assetft_params_on_conflict { + constraint: assetft_params_constraint! + update_columns: [assetft_params_update_column!]! = [] + where: assetft_params_bool_exp +} + +"""Ordering options when selecting data from "assetft_params".""" +input assetft_params_order_by { + height: order_by + one_row_id: order_by + params: order_by +} + +"""primary key columns input for table: assetft_params""" +input assetft_params_pk_columns_input { + one_row_id: Boolean! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input assetft_params_prepend_input { + params: jsonb +} + +""" +select columns of table "assetft_params" +""" +enum assetft_params_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +""" +input type for updating data in table "assetft_params" +""" +input assetft_params_set_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate stddev on columns""" +type assetft_params_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type assetft_params_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type assetft_params_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "assetft_params" +""" +input assetft_params_stream_cursor_input { + """Stream column input with initial value""" + initial_value: assetft_params_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input assetft_params_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate sum on columns""" +type assetft_params_sum_fields { + height: bigint +} + +""" +update columns of table "assetft_params" +""" +enum assetft_params_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +input assetft_params_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: assetft_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: assetft_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: assetft_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: assetft_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: assetft_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: assetft_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: assetft_params_set_input + + """filter the rows which have to be updated""" + where: assetft_params_bool_exp! +} + +"""aggregate var_pop on columns""" +type assetft_params_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type assetft_params_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type assetft_params_variance_fields { + height: Float +} + +""" +columns and relationships of "assetnft_params" +""" +type assetnft_params { + height: bigint! + one_row_id: Boolean! + params( + """JSON select path""" + path: String + ): jsonb! +} + +""" +aggregated selection of "assetnft_params" +""" +type assetnft_params_aggregate { + aggregate: assetnft_params_aggregate_fields + nodes: [assetnft_params!]! +} + +""" +aggregate fields of "assetnft_params" +""" +type assetnft_params_aggregate_fields { + avg: assetnft_params_avg_fields + count(columns: [assetnft_params_select_column!], distinct: Boolean): Int! + max: assetnft_params_max_fields + min: assetnft_params_min_fields + stddev: assetnft_params_stddev_fields + stddev_pop: assetnft_params_stddev_pop_fields + stddev_samp: assetnft_params_stddev_samp_fields + sum: assetnft_params_sum_fields + var_pop: assetnft_params_var_pop_fields + var_samp: assetnft_params_var_samp_fields + variance: assetnft_params_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input assetnft_params_append_input { + params: jsonb +} + +"""aggregate avg on columns""" +type assetnft_params_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "assetnft_params". All fields are combined with a logical 'AND'. +""" +input assetnft_params_bool_exp { + _and: [assetnft_params_bool_exp!] + _not: assetnft_params_bool_exp + _or: [assetnft_params_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + params: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "assetnft_params" +""" +enum assetnft_params_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + assetnft_params_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input assetnft_params_delete_at_path_input { + params: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input assetnft_params_delete_elem_input { + params: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input assetnft_params_delete_key_input { + params: String +} + +""" +input type for incrementing numeric columns in table "assetnft_params" +""" +input assetnft_params_inc_input { + height: bigint +} + +""" +input type for inserting data into table "assetnft_params" +""" +input assetnft_params_insert_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate max on columns""" +type assetnft_params_max_fields { + height: bigint +} + +"""aggregate min on columns""" +type assetnft_params_min_fields { + height: bigint +} + +""" +response of any mutation on the table "assetnft_params" +""" +type assetnft_params_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [assetnft_params!]! +} + +""" +on_conflict condition type for table "assetnft_params" +""" +input assetnft_params_on_conflict { + constraint: assetnft_params_constraint! + update_columns: [assetnft_params_update_column!]! = [] + where: assetnft_params_bool_exp +} + +"""Ordering options when selecting data from "assetnft_params".""" +input assetnft_params_order_by { + height: order_by + one_row_id: order_by + params: order_by +} + +"""primary key columns input for table: assetnft_params""" +input assetnft_params_pk_columns_input { + one_row_id: Boolean! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input assetnft_params_prepend_input { + params: jsonb +} + +""" +select columns of table "assetnft_params" +""" +enum assetnft_params_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +""" +input type for updating data in table "assetnft_params" +""" +input assetnft_params_set_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate stddev on columns""" +type assetnft_params_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type assetnft_params_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type assetnft_params_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "assetnft_params" +""" +input assetnft_params_stream_cursor_input { + """Stream column input with initial value""" + initial_value: assetnft_params_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input assetnft_params_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate sum on columns""" +type assetnft_params_sum_fields { + height: bigint +} + +""" +update columns of table "assetnft_params" +""" +enum assetnft_params_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +input assetnft_params_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: assetnft_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: assetnft_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: assetnft_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: assetnft_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: assetnft_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: assetnft_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: assetnft_params_set_input + + """filter the rows which have to be updated""" + where: assetnft_params_bool_exp! +} + +"""aggregate var_pop on columns""" +type assetnft_params_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type assetnft_params_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type assetnft_params_variance_fields { + height: Float +} + +""" +columns and relationships of "auth_params" +""" +type auth_params { + height: bigint! + one_row_id: Boolean! + params( + """JSON select path""" + path: String + ): jsonb! +} + +""" +aggregated selection of "auth_params" +""" +type auth_params_aggregate { + aggregate: auth_params_aggregate_fields + nodes: [auth_params!]! +} + +""" +aggregate fields of "auth_params" +""" +type auth_params_aggregate_fields { + avg: auth_params_avg_fields + count(columns: [auth_params_select_column!], distinct: Boolean): Int! + max: auth_params_max_fields + min: auth_params_min_fields + stddev: auth_params_stddev_fields + stddev_pop: auth_params_stddev_pop_fields + stddev_samp: auth_params_stddev_samp_fields + sum: auth_params_sum_fields + var_pop: auth_params_var_pop_fields + var_samp: auth_params_var_samp_fields + variance: auth_params_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input auth_params_append_input { + params: jsonb +} + +"""aggregate avg on columns""" +type auth_params_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "auth_params". All fields are combined with a logical 'AND'. +""" +input auth_params_bool_exp { + _and: [auth_params_bool_exp!] + _not: auth_params_bool_exp + _or: [auth_params_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + params: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "auth_params" +""" +enum auth_params_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + auth_params_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input auth_params_delete_at_path_input { + params: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input auth_params_delete_elem_input { + params: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input auth_params_delete_key_input { + params: String +} + +""" +input type for incrementing numeric columns in table "auth_params" +""" +input auth_params_inc_input { + height: bigint +} + +""" +input type for inserting data into table "auth_params" +""" +input auth_params_insert_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate max on columns""" +type auth_params_max_fields { + height: bigint +} + +"""aggregate min on columns""" +type auth_params_min_fields { + height: bigint +} + +""" +response of any mutation on the table "auth_params" +""" +type auth_params_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [auth_params!]! +} + +""" +on_conflict condition type for table "auth_params" +""" +input auth_params_on_conflict { + constraint: auth_params_constraint! + update_columns: [auth_params_update_column!]! = [] + where: auth_params_bool_exp +} + +"""Ordering options when selecting data from "auth_params".""" +input auth_params_order_by { + height: order_by + one_row_id: order_by + params: order_by +} + +"""primary key columns input for table: auth_params""" +input auth_params_pk_columns_input { + one_row_id: Boolean! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input auth_params_prepend_input { + params: jsonb +} + +""" +select columns of table "auth_params" +""" +enum auth_params_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +""" +input type for updating data in table "auth_params" +""" +input auth_params_set_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate stddev on columns""" +type auth_params_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type auth_params_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type auth_params_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "auth_params" +""" +input auth_params_stream_cursor_input { + """Stream column input with initial value""" + initial_value: auth_params_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input auth_params_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate sum on columns""" +type auth_params_sum_fields { + height: bigint +} + +""" +update columns of table "auth_params" +""" +enum auth_params_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +input auth_params_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: auth_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: auth_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: auth_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: auth_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: auth_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: auth_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: auth_params_set_input + + """filter the rows which have to be updated""" + where: auth_params_bool_exp! +} + +"""aggregate var_pop on columns""" +type auth_params_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type auth_params_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type auth_params_variance_fields { + height: Float +} + +""" +columns and relationships of "average_block_time_from_genesis" +""" +type average_block_time_from_genesis { + average_time: numeric! + height: bigint! + one_row_id: Boolean! +} + +""" +aggregated selection of "average_block_time_from_genesis" +""" +type average_block_time_from_genesis_aggregate { + aggregate: average_block_time_from_genesis_aggregate_fields + nodes: [average_block_time_from_genesis!]! +} + +""" +aggregate fields of "average_block_time_from_genesis" +""" +type average_block_time_from_genesis_aggregate_fields { + avg: average_block_time_from_genesis_avg_fields + count(columns: [average_block_time_from_genesis_select_column!], distinct: Boolean): Int! + max: average_block_time_from_genesis_max_fields + min: average_block_time_from_genesis_min_fields + stddev: average_block_time_from_genesis_stddev_fields + stddev_pop: average_block_time_from_genesis_stddev_pop_fields + stddev_samp: average_block_time_from_genesis_stddev_samp_fields + sum: average_block_time_from_genesis_sum_fields + var_pop: average_block_time_from_genesis_var_pop_fields + var_samp: average_block_time_from_genesis_var_samp_fields + variance: average_block_time_from_genesis_variance_fields +} + +"""aggregate avg on columns""" +type average_block_time_from_genesis_avg_fields { + average_time: Float + height: Float +} + +""" +Boolean expression to filter rows from the table "average_block_time_from_genesis". All fields are combined with a logical 'AND'. +""" +input average_block_time_from_genesis_bool_exp { + _and: [average_block_time_from_genesis_bool_exp!] + _not: average_block_time_from_genesis_bool_exp + _or: [average_block_time_from_genesis_bool_exp!] + average_time: numeric_comparison_exp + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp +} + +""" +unique or primary key constraints on table "average_block_time_from_genesis" +""" +enum average_block_time_from_genesis_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + average_block_time_from_genesis_pkey +} + +""" +input type for incrementing numeric columns in table "average_block_time_from_genesis" +""" +input average_block_time_from_genesis_inc_input { + average_time: numeric + height: bigint +} + +""" +input type for inserting data into table "average_block_time_from_genesis" +""" +input average_block_time_from_genesis_insert_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate max on columns""" +type average_block_time_from_genesis_max_fields { + average_time: numeric + height: bigint +} + +"""aggregate min on columns""" +type average_block_time_from_genesis_min_fields { + average_time: numeric + height: bigint +} + +""" +response of any mutation on the table "average_block_time_from_genesis" +""" +type average_block_time_from_genesis_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [average_block_time_from_genesis!]! +} + +""" +on_conflict condition type for table "average_block_time_from_genesis" +""" +input average_block_time_from_genesis_on_conflict { + constraint: average_block_time_from_genesis_constraint! + update_columns: [average_block_time_from_genesis_update_column!]! = [] + where: average_block_time_from_genesis_bool_exp +} + +""" +Ordering options when selecting data from "average_block_time_from_genesis". +""" +input average_block_time_from_genesis_order_by { + average_time: order_by + height: order_by + one_row_id: order_by +} + +"""primary key columns input for table: average_block_time_from_genesis""" +input average_block_time_from_genesis_pk_columns_input { + one_row_id: Boolean! +} + +""" +select columns of table "average_block_time_from_genesis" +""" +enum average_block_time_from_genesis_select_column { + """column name""" + average_time + + """column name""" + height + + """column name""" + one_row_id +} + +""" +input type for updating data in table "average_block_time_from_genesis" +""" +input average_block_time_from_genesis_set_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate stddev on columns""" +type average_block_time_from_genesis_stddev_fields { + average_time: Float + height: Float +} + +"""aggregate stddev_pop on columns""" +type average_block_time_from_genesis_stddev_pop_fields { + average_time: Float + height: Float +} + +"""aggregate stddev_samp on columns""" +type average_block_time_from_genesis_stddev_samp_fields { + average_time: Float + height: Float +} + +""" +Streaming cursor of the table "average_block_time_from_genesis" +""" +input average_block_time_from_genesis_stream_cursor_input { + """Stream column input with initial value""" + initial_value: average_block_time_from_genesis_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input average_block_time_from_genesis_stream_cursor_value_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate sum on columns""" +type average_block_time_from_genesis_sum_fields { + average_time: numeric + height: bigint +} + +""" +update columns of table "average_block_time_from_genesis" +""" +enum average_block_time_from_genesis_update_column { + """column name""" + average_time + + """column name""" + height + + """column name""" + one_row_id +} + +input average_block_time_from_genesis_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_from_genesis_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_from_genesis_set_input + + """filter the rows which have to be updated""" + where: average_block_time_from_genesis_bool_exp! +} + +"""aggregate var_pop on columns""" +type average_block_time_from_genesis_var_pop_fields { + average_time: Float + height: Float +} + +"""aggregate var_samp on columns""" +type average_block_time_from_genesis_var_samp_fields { + average_time: Float + height: Float +} + +"""aggregate variance on columns""" +type average_block_time_from_genesis_variance_fields { + average_time: Float + height: Float +} + +""" +columns and relationships of "average_block_time_per_day" +""" +type average_block_time_per_day { + average_time: numeric! + height: bigint! + one_row_id: Boolean! +} + +""" +aggregated selection of "average_block_time_per_day" +""" +type average_block_time_per_day_aggregate { + aggregate: average_block_time_per_day_aggregate_fields + nodes: [average_block_time_per_day!]! +} + +""" +aggregate fields of "average_block_time_per_day" +""" +type average_block_time_per_day_aggregate_fields { + avg: average_block_time_per_day_avg_fields + count(columns: [average_block_time_per_day_select_column!], distinct: Boolean): Int! + max: average_block_time_per_day_max_fields + min: average_block_time_per_day_min_fields + stddev: average_block_time_per_day_stddev_fields + stddev_pop: average_block_time_per_day_stddev_pop_fields + stddev_samp: average_block_time_per_day_stddev_samp_fields + sum: average_block_time_per_day_sum_fields + var_pop: average_block_time_per_day_var_pop_fields + var_samp: average_block_time_per_day_var_samp_fields + variance: average_block_time_per_day_variance_fields +} + +"""aggregate avg on columns""" +type average_block_time_per_day_avg_fields { + average_time: Float + height: Float +} + +""" +Boolean expression to filter rows from the table "average_block_time_per_day". All fields are combined with a logical 'AND'. +""" +input average_block_time_per_day_bool_exp { + _and: [average_block_time_per_day_bool_exp!] + _not: average_block_time_per_day_bool_exp + _or: [average_block_time_per_day_bool_exp!] + average_time: numeric_comparison_exp + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp +} + +""" +unique or primary key constraints on table "average_block_time_per_day" +""" +enum average_block_time_per_day_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + average_block_time_per_day_pkey +} + +""" +input type for incrementing numeric columns in table "average_block_time_per_day" +""" +input average_block_time_per_day_inc_input { + average_time: numeric + height: bigint +} + +""" +input type for inserting data into table "average_block_time_per_day" +""" +input average_block_time_per_day_insert_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate max on columns""" +type average_block_time_per_day_max_fields { + average_time: numeric + height: bigint +} + +"""aggregate min on columns""" +type average_block_time_per_day_min_fields { + average_time: numeric + height: bigint +} + +""" +response of any mutation on the table "average_block_time_per_day" +""" +type average_block_time_per_day_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [average_block_time_per_day!]! +} + +""" +on_conflict condition type for table "average_block_time_per_day" +""" +input average_block_time_per_day_on_conflict { + constraint: average_block_time_per_day_constraint! + update_columns: [average_block_time_per_day_update_column!]! = [] + where: average_block_time_per_day_bool_exp +} + +""" +Ordering options when selecting data from "average_block_time_per_day". +""" +input average_block_time_per_day_order_by { + average_time: order_by + height: order_by + one_row_id: order_by +} + +"""primary key columns input for table: average_block_time_per_day""" +input average_block_time_per_day_pk_columns_input { + one_row_id: Boolean! +} + +""" +select columns of table "average_block_time_per_day" +""" +enum average_block_time_per_day_select_column { + """column name""" + average_time + + """column name""" + height + + """column name""" + one_row_id +} + +""" +input type for updating data in table "average_block_time_per_day" +""" +input average_block_time_per_day_set_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate stddev on columns""" +type average_block_time_per_day_stddev_fields { + average_time: Float + height: Float +} + +"""aggregate stddev_pop on columns""" +type average_block_time_per_day_stddev_pop_fields { + average_time: Float + height: Float +} + +"""aggregate stddev_samp on columns""" +type average_block_time_per_day_stddev_samp_fields { + average_time: Float + height: Float +} + +""" +Streaming cursor of the table "average_block_time_per_day" +""" +input average_block_time_per_day_stream_cursor_input { + """Stream column input with initial value""" + initial_value: average_block_time_per_day_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input average_block_time_per_day_stream_cursor_value_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate sum on columns""" +type average_block_time_per_day_sum_fields { + average_time: numeric + height: bigint +} + +""" +update columns of table "average_block_time_per_day" +""" +enum average_block_time_per_day_update_column { + """column name""" + average_time + + """column name""" + height + + """column name""" + one_row_id +} + +input average_block_time_per_day_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_per_day_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_per_day_set_input + + """filter the rows which have to be updated""" + where: average_block_time_per_day_bool_exp! +} + +"""aggregate var_pop on columns""" +type average_block_time_per_day_var_pop_fields { + average_time: Float + height: Float +} + +"""aggregate var_samp on columns""" +type average_block_time_per_day_var_samp_fields { + average_time: Float + height: Float +} + +"""aggregate variance on columns""" +type average_block_time_per_day_variance_fields { + average_time: Float + height: Float +} + +""" +columns and relationships of "average_block_time_per_hour" +""" +type average_block_time_per_hour { + average_time: numeric! + height: bigint! + one_row_id: Boolean! +} + +""" +aggregated selection of "average_block_time_per_hour" +""" +type average_block_time_per_hour_aggregate { + aggregate: average_block_time_per_hour_aggregate_fields + nodes: [average_block_time_per_hour!]! +} + +""" +aggregate fields of "average_block_time_per_hour" +""" +type average_block_time_per_hour_aggregate_fields { + avg: average_block_time_per_hour_avg_fields + count(columns: [average_block_time_per_hour_select_column!], distinct: Boolean): Int! + max: average_block_time_per_hour_max_fields + min: average_block_time_per_hour_min_fields + stddev: average_block_time_per_hour_stddev_fields + stddev_pop: average_block_time_per_hour_stddev_pop_fields + stddev_samp: average_block_time_per_hour_stddev_samp_fields + sum: average_block_time_per_hour_sum_fields + var_pop: average_block_time_per_hour_var_pop_fields + var_samp: average_block_time_per_hour_var_samp_fields + variance: average_block_time_per_hour_variance_fields +} + +"""aggregate avg on columns""" +type average_block_time_per_hour_avg_fields { + average_time: Float + height: Float +} + +""" +Boolean expression to filter rows from the table "average_block_time_per_hour". All fields are combined with a logical 'AND'. +""" +input average_block_time_per_hour_bool_exp { + _and: [average_block_time_per_hour_bool_exp!] + _not: average_block_time_per_hour_bool_exp + _or: [average_block_time_per_hour_bool_exp!] + average_time: numeric_comparison_exp + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp +} + +""" +unique or primary key constraints on table "average_block_time_per_hour" +""" +enum average_block_time_per_hour_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + average_block_time_per_hour_pkey +} + +""" +input type for incrementing numeric columns in table "average_block_time_per_hour" +""" +input average_block_time_per_hour_inc_input { + average_time: numeric + height: bigint +} + +""" +input type for inserting data into table "average_block_time_per_hour" +""" +input average_block_time_per_hour_insert_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate max on columns""" +type average_block_time_per_hour_max_fields { + average_time: numeric + height: bigint +} + +"""aggregate min on columns""" +type average_block_time_per_hour_min_fields { + average_time: numeric + height: bigint +} + +""" +response of any mutation on the table "average_block_time_per_hour" +""" +type average_block_time_per_hour_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [average_block_time_per_hour!]! +} + +""" +on_conflict condition type for table "average_block_time_per_hour" +""" +input average_block_time_per_hour_on_conflict { + constraint: average_block_time_per_hour_constraint! + update_columns: [average_block_time_per_hour_update_column!]! = [] + where: average_block_time_per_hour_bool_exp +} + +""" +Ordering options when selecting data from "average_block_time_per_hour". +""" +input average_block_time_per_hour_order_by { + average_time: order_by + height: order_by + one_row_id: order_by +} + +"""primary key columns input for table: average_block_time_per_hour""" +input average_block_time_per_hour_pk_columns_input { + one_row_id: Boolean! +} + +""" +select columns of table "average_block_time_per_hour" +""" +enum average_block_time_per_hour_select_column { + """column name""" + average_time + + """column name""" + height + + """column name""" + one_row_id +} + +""" +input type for updating data in table "average_block_time_per_hour" +""" +input average_block_time_per_hour_set_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate stddev on columns""" +type average_block_time_per_hour_stddev_fields { + average_time: Float + height: Float +} + +"""aggregate stddev_pop on columns""" +type average_block_time_per_hour_stddev_pop_fields { + average_time: Float + height: Float +} + +"""aggregate stddev_samp on columns""" +type average_block_time_per_hour_stddev_samp_fields { + average_time: Float + height: Float +} + +""" +Streaming cursor of the table "average_block_time_per_hour" +""" +input average_block_time_per_hour_stream_cursor_input { + """Stream column input with initial value""" + initial_value: average_block_time_per_hour_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input average_block_time_per_hour_stream_cursor_value_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate sum on columns""" +type average_block_time_per_hour_sum_fields { + average_time: numeric + height: bigint +} + +""" +update columns of table "average_block_time_per_hour" +""" +enum average_block_time_per_hour_update_column { + """column name""" + average_time + + """column name""" + height + + """column name""" + one_row_id +} + +input average_block_time_per_hour_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_per_hour_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_per_hour_set_input + + """filter the rows which have to be updated""" + where: average_block_time_per_hour_bool_exp! +} + +"""aggregate var_pop on columns""" +type average_block_time_per_hour_var_pop_fields { + average_time: Float + height: Float +} + +"""aggregate var_samp on columns""" +type average_block_time_per_hour_var_samp_fields { + average_time: Float + height: Float +} + +"""aggregate variance on columns""" +type average_block_time_per_hour_variance_fields { + average_time: Float + height: Float +} + +""" +columns and relationships of "average_block_time_per_minute" +""" +type average_block_time_per_minute { + average_time: numeric! + height: bigint! + one_row_id: Boolean! +} + +""" +aggregated selection of "average_block_time_per_minute" +""" +type average_block_time_per_minute_aggregate { + aggregate: average_block_time_per_minute_aggregate_fields + nodes: [average_block_time_per_minute!]! +} + +""" +aggregate fields of "average_block_time_per_minute" +""" +type average_block_time_per_minute_aggregate_fields { + avg: average_block_time_per_minute_avg_fields + count(columns: [average_block_time_per_minute_select_column!], distinct: Boolean): Int! + max: average_block_time_per_minute_max_fields + min: average_block_time_per_minute_min_fields + stddev: average_block_time_per_minute_stddev_fields + stddev_pop: average_block_time_per_minute_stddev_pop_fields + stddev_samp: average_block_time_per_minute_stddev_samp_fields + sum: average_block_time_per_minute_sum_fields + var_pop: average_block_time_per_minute_var_pop_fields + var_samp: average_block_time_per_minute_var_samp_fields + variance: average_block_time_per_minute_variance_fields +} + +"""aggregate avg on columns""" +type average_block_time_per_minute_avg_fields { + average_time: Float + height: Float +} + +""" +Boolean expression to filter rows from the table "average_block_time_per_minute". All fields are combined with a logical 'AND'. +""" +input average_block_time_per_minute_bool_exp { + _and: [average_block_time_per_minute_bool_exp!] + _not: average_block_time_per_minute_bool_exp + _or: [average_block_time_per_minute_bool_exp!] + average_time: numeric_comparison_exp + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp +} + +""" +unique or primary key constraints on table "average_block_time_per_minute" +""" +enum average_block_time_per_minute_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + average_block_time_per_minute_pkey +} + +""" +input type for incrementing numeric columns in table "average_block_time_per_minute" +""" +input average_block_time_per_minute_inc_input { + average_time: numeric + height: bigint +} + +""" +input type for inserting data into table "average_block_time_per_minute" +""" +input average_block_time_per_minute_insert_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate max on columns""" +type average_block_time_per_minute_max_fields { + average_time: numeric + height: bigint +} + +"""aggregate min on columns""" +type average_block_time_per_minute_min_fields { + average_time: numeric + height: bigint +} + +""" +response of any mutation on the table "average_block_time_per_minute" +""" +type average_block_time_per_minute_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [average_block_time_per_minute!]! +} + +""" +on_conflict condition type for table "average_block_time_per_minute" +""" +input average_block_time_per_minute_on_conflict { + constraint: average_block_time_per_minute_constraint! + update_columns: [average_block_time_per_minute_update_column!]! = [] + where: average_block_time_per_minute_bool_exp +} + +""" +Ordering options when selecting data from "average_block_time_per_minute". +""" +input average_block_time_per_minute_order_by { + average_time: order_by + height: order_by + one_row_id: order_by +} + +"""primary key columns input for table: average_block_time_per_minute""" +input average_block_time_per_minute_pk_columns_input { + one_row_id: Boolean! +} + +""" +select columns of table "average_block_time_per_minute" +""" +enum average_block_time_per_minute_select_column { + """column name""" + average_time + + """column name""" + height + + """column name""" + one_row_id +} + +""" +input type for updating data in table "average_block_time_per_minute" +""" +input average_block_time_per_minute_set_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate stddev on columns""" +type average_block_time_per_minute_stddev_fields { + average_time: Float + height: Float +} + +"""aggregate stddev_pop on columns""" +type average_block_time_per_minute_stddev_pop_fields { + average_time: Float + height: Float +} + +"""aggregate stddev_samp on columns""" +type average_block_time_per_minute_stddev_samp_fields { + average_time: Float + height: Float +} + +""" +Streaming cursor of the table "average_block_time_per_minute" +""" +input average_block_time_per_minute_stream_cursor_input { + """Stream column input with initial value""" + initial_value: average_block_time_per_minute_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input average_block_time_per_minute_stream_cursor_value_input { + average_time: numeric + height: bigint + one_row_id: Boolean +} + +"""aggregate sum on columns""" +type average_block_time_per_minute_sum_fields { + average_time: numeric + height: bigint +} + +""" +update columns of table "average_block_time_per_minute" +""" +enum average_block_time_per_minute_update_column { + """column name""" + average_time + + """column name""" + height + + """column name""" + one_row_id +} + +input average_block_time_per_minute_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_per_minute_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_per_minute_set_input + + """filter the rows which have to be updated""" + where: average_block_time_per_minute_bool_exp! +} + +"""aggregate var_pop on columns""" +type average_block_time_per_minute_var_pop_fields { + average_time: Float + height: Float +} + +"""aggregate var_samp on columns""" +type average_block_time_per_minute_var_samp_fields { + average_time: Float + height: Float +} + +"""aggregate variance on columns""" +type average_block_time_per_minute_variance_fields { + average_time: Float + height: Float +} + +scalar bigint + +""" +Boolean expression to compare columns of type "bigint". All fields are combined with logical 'AND'. +""" +input bigint_comparison_exp { + _eq: bigint + _gt: bigint + _gte: bigint + _in: [bigint!] + _is_null: Boolean + _lt: bigint + _lte: bigint + _neq: bigint + _nin: [bigint!] +} + +""" +columns and relationships of "block" +""" +type block { + hash: String! + height: bigint! + num_txs: Int + + """An array relationship""" + pre_commits( + """distinct select on columns""" + distinct_on: [pre_commit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pre_commit_order_by!] + + """filter the rows returned""" + where: pre_commit_bool_exp + ): [pre_commit!]! + + """An aggregate relationship""" + pre_commits_aggregate( + """distinct select on columns""" + distinct_on: [pre_commit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pre_commit_order_by!] + + """filter the rows returned""" + where: pre_commit_bool_exp + ): pre_commit_aggregate! + + """An array relationship""" + proposal_deposits( + """distinct select on columns""" + distinct_on: [proposal_deposit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_deposit_order_by!] + + """filter the rows returned""" + where: proposal_deposit_bool_exp + ): [proposal_deposit!]! + + """An aggregate relationship""" + proposal_deposits_aggregate( + """distinct select on columns""" + distinct_on: [proposal_deposit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_deposit_order_by!] + + """filter the rows returned""" + where: proposal_deposit_bool_exp + ): proposal_deposit_aggregate! + + """An array relationship""" + proposal_votes( + """distinct select on columns""" + distinct_on: [proposal_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_vote_order_by!] + + """filter the rows returned""" + where: proposal_vote_bool_exp + ): [proposal_vote!]! + + """An aggregate relationship""" + proposal_votes_aggregate( + """distinct select on columns""" + distinct_on: [proposal_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_vote_order_by!] + + """filter the rows returned""" + where: proposal_vote_bool_exp + ): proposal_vote_aggregate! + proposer_address: String + timestamp: timestamp! + total_gas: bigint + + """An array relationship""" + transactions( + """distinct select on columns""" + distinct_on: [transaction_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [transaction_order_by!] + + """filter the rows returned""" + where: transaction_bool_exp + ): [transaction!]! + + """An aggregate relationship""" + transactions_aggregate( + """distinct select on columns""" + distinct_on: [transaction_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [transaction_order_by!] + + """filter the rows returned""" + where: transaction_bool_exp + ): transaction_aggregate! + + """An object relationship""" + validator: validator + + """An array relationship""" + validator_voting_powers( + """distinct select on columns""" + distinct_on: [validator_voting_power_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_voting_power_order_by!] + + """filter the rows returned""" + where: validator_voting_power_bool_exp + ): [validator_voting_power!]! + + """An aggregate relationship""" + validator_voting_powers_aggregate( + """distinct select on columns""" + distinct_on: [validator_voting_power_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_voting_power_order_by!] + + """filter the rows returned""" + where: validator_voting_power_bool_exp + ): validator_voting_power_aggregate! +} + +""" +aggregated selection of "block" +""" +type block_aggregate { + aggregate: block_aggregate_fields + nodes: [block!]! +} + +input block_aggregate_bool_exp { + count: block_aggregate_bool_exp_count +} + +input block_aggregate_bool_exp_count { + arguments: [block_select_column!] + distinct: Boolean + filter: block_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "block" +""" +type block_aggregate_fields { + avg: block_avg_fields + count(columns: [block_select_column!], distinct: Boolean): Int! + max: block_max_fields + min: block_min_fields + stddev: block_stddev_fields + stddev_pop: block_stddev_pop_fields + stddev_samp: block_stddev_samp_fields + sum: block_sum_fields + var_pop: block_var_pop_fields + var_samp: block_var_samp_fields + variance: block_variance_fields +} + +""" +order by aggregate values of table "block" +""" +input block_aggregate_order_by { + avg: block_avg_order_by + count: order_by + max: block_max_order_by + min: block_min_order_by + stddev: block_stddev_order_by + stddev_pop: block_stddev_pop_order_by + stddev_samp: block_stddev_samp_order_by + sum: block_sum_order_by + var_pop: block_var_pop_order_by + var_samp: block_var_samp_order_by + variance: block_variance_order_by +} + +""" +input type for inserting array relation for remote table "block" +""" +input block_arr_rel_insert_input { + data: [block_insert_input!]! + + """upsert condition""" + on_conflict: block_on_conflict +} + +"""aggregate avg on columns""" +type block_avg_fields { + height: Float + num_txs: Float + total_gas: Float +} + +""" +order by avg() on columns of table "block" +""" +input block_avg_order_by { + height: order_by + num_txs: order_by + total_gas: order_by +} + +""" +Boolean expression to filter rows from the table "block". All fields are combined with a logical 'AND'. +""" +input block_bool_exp { + _and: [block_bool_exp!] + _not: block_bool_exp + _or: [block_bool_exp!] + hash: String_comparison_exp + height: bigint_comparison_exp + num_txs: Int_comparison_exp + pre_commits: pre_commit_bool_exp + pre_commits_aggregate: pre_commit_aggregate_bool_exp + proposal_deposits: proposal_deposit_bool_exp + proposal_deposits_aggregate: proposal_deposit_aggregate_bool_exp + proposal_votes: proposal_vote_bool_exp + proposal_votes_aggregate: proposal_vote_aggregate_bool_exp + proposer_address: String_comparison_exp + timestamp: timestamp_comparison_exp + total_gas: bigint_comparison_exp + transactions: transaction_bool_exp + transactions_aggregate: transaction_aggregate_bool_exp + validator: validator_bool_exp + validator_voting_powers: validator_voting_power_bool_exp + validator_voting_powers_aggregate: validator_voting_power_aggregate_bool_exp +} + +""" +unique or primary key constraints on table "block" +""" +enum block_constraint { + """ + unique or primary key constraint on columns "hash" + """ + block_hash_key + + """ + unique or primary key constraint on columns "height" + """ + block_pkey +} + +""" +input type for incrementing numeric columns in table "block" +""" +input block_inc_input { + height: bigint + num_txs: Int + total_gas: bigint +} + +""" +input type for inserting data into table "block" +""" +input block_insert_input { + hash: String + height: bigint + num_txs: Int + pre_commits: pre_commit_arr_rel_insert_input + proposal_deposits: proposal_deposit_arr_rel_insert_input + proposal_votes: proposal_vote_arr_rel_insert_input + proposer_address: String + timestamp: timestamp + total_gas: bigint + transactions: transaction_arr_rel_insert_input + validator: validator_obj_rel_insert_input + validator_voting_powers: validator_voting_power_arr_rel_insert_input +} + +"""aggregate max on columns""" +type block_max_fields { + hash: String + height: bigint + num_txs: Int + proposer_address: String + timestamp: timestamp + total_gas: bigint +} + +""" +order by max() on columns of table "block" +""" +input block_max_order_by { + hash: order_by + height: order_by + num_txs: order_by + proposer_address: order_by + timestamp: order_by + total_gas: order_by +} + +"""aggregate min on columns""" +type block_min_fields { + hash: String + height: bigint + num_txs: Int + proposer_address: String + timestamp: timestamp + total_gas: bigint +} + +""" +order by min() on columns of table "block" +""" +input block_min_order_by { + hash: order_by + height: order_by + num_txs: order_by + proposer_address: order_by + timestamp: order_by + total_gas: order_by +} + +""" +response of any mutation on the table "block" +""" +type block_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [block!]! +} + +""" +input type for inserting object relation for remote table "block" +""" +input block_obj_rel_insert_input { + data: block_insert_input! + + """upsert condition""" + on_conflict: block_on_conflict +} + +""" +on_conflict condition type for table "block" +""" +input block_on_conflict { + constraint: block_constraint! + update_columns: [block_update_column!]! = [] + where: block_bool_exp +} + +"""Ordering options when selecting data from "block".""" +input block_order_by { + hash: order_by + height: order_by + num_txs: order_by + pre_commits_aggregate: pre_commit_aggregate_order_by + proposal_deposits_aggregate: proposal_deposit_aggregate_order_by + proposal_votes_aggregate: proposal_vote_aggregate_order_by + proposer_address: order_by + timestamp: order_by + total_gas: order_by + transactions_aggregate: transaction_aggregate_order_by + validator: validator_order_by + validator_voting_powers_aggregate: validator_voting_power_aggregate_order_by +} + +"""primary key columns input for table: block""" +input block_pk_columns_input { + height: bigint! +} + +""" +select columns of table "block" +""" +enum block_select_column { + """column name""" + hash + + """column name""" + height + + """column name""" + num_txs + + """column name""" + proposer_address + + """column name""" + timestamp + + """column name""" + total_gas +} + +""" +input type for updating data in table "block" +""" +input block_set_input { + hash: String + height: bigint + num_txs: Int + proposer_address: String + timestamp: timestamp + total_gas: bigint +} + +"""aggregate stddev on columns""" +type block_stddev_fields { + height: Float + num_txs: Float + total_gas: Float +} + +""" +order by stddev() on columns of table "block" +""" +input block_stddev_order_by { + height: order_by + num_txs: order_by + total_gas: order_by +} + +"""aggregate stddev_pop on columns""" +type block_stddev_pop_fields { + height: Float + num_txs: Float + total_gas: Float +} + +""" +order by stddev_pop() on columns of table "block" +""" +input block_stddev_pop_order_by { + height: order_by + num_txs: order_by + total_gas: order_by +} + +"""aggregate stddev_samp on columns""" +type block_stddev_samp_fields { + height: Float + num_txs: Float + total_gas: Float +} + +""" +order by stddev_samp() on columns of table "block" +""" +input block_stddev_samp_order_by { + height: order_by + num_txs: order_by + total_gas: order_by +} + +""" +Streaming cursor of the table "block" +""" +input block_stream_cursor_input { + """Stream column input with initial value""" + initial_value: block_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input block_stream_cursor_value_input { + hash: String + height: bigint + num_txs: Int + proposer_address: String + timestamp: timestamp + total_gas: bigint +} + +"""aggregate sum on columns""" +type block_sum_fields { + height: bigint + num_txs: Int + total_gas: bigint +} + +""" +order by sum() on columns of table "block" +""" +input block_sum_order_by { + height: order_by + num_txs: order_by + total_gas: order_by +} + +""" +update columns of table "block" +""" +enum block_update_column { + """column name""" + hash + + """column name""" + height + + """column name""" + num_txs + + """column name""" + proposer_address + + """column name""" + timestamp + + """column name""" + total_gas +} + +input block_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: block_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: block_set_input + + """filter the rows which have to be updated""" + where: block_bool_exp! +} + +"""aggregate var_pop on columns""" +type block_var_pop_fields { + height: Float + num_txs: Float + total_gas: Float +} + +""" +order by var_pop() on columns of table "block" +""" +input block_var_pop_order_by { + height: order_by + num_txs: order_by + total_gas: order_by +} + +"""aggregate var_samp on columns""" +type block_var_samp_fields { + height: Float + num_txs: Float + total_gas: Float +} + +""" +order by var_samp() on columns of table "block" +""" +input block_var_samp_order_by { + height: order_by + num_txs: order_by + total_gas: order_by +} + +"""aggregate variance on columns""" +type block_variance_fields { + height: Float + num_txs: Float + total_gas: Float +} + +""" +order by variance() on columns of table "block" +""" +input block_variance_order_by { + height: order_by + num_txs: order_by + total_gas: order_by +} + +scalar coin + +""" +Boolean expression to compare columns of type "coin". All fields are combined with logical 'AND'. +""" +input coin_array_comparison_exp { + """is the array contained in the given array value""" + _contained_in: [coin!] + + """does the array contain the given value""" + _contains: [coin!] + _eq: [coin!] + _gt: [coin!] + _gte: [coin!] + _in: [[coin!]!] + _is_null: Boolean + _lt: [coin!] + _lte: [coin!] + _neq: [coin!] + _nin: [[coin!]!] +} + +""" +columns and relationships of "community_pool" +""" +type community_pool { + coins: [dec_coin!]! + height: bigint! + one_row_id: Boolean! +} + +""" +aggregated selection of "community_pool" +""" +type community_pool_aggregate { + aggregate: community_pool_aggregate_fields + nodes: [community_pool!]! +} + +""" +aggregate fields of "community_pool" +""" +type community_pool_aggregate_fields { + avg: community_pool_avg_fields + count(columns: [community_pool_select_column!], distinct: Boolean): Int! + max: community_pool_max_fields + min: community_pool_min_fields + stddev: community_pool_stddev_fields + stddev_pop: community_pool_stddev_pop_fields + stddev_samp: community_pool_stddev_samp_fields + sum: community_pool_sum_fields + var_pop: community_pool_var_pop_fields + var_samp: community_pool_var_samp_fields + variance: community_pool_variance_fields +} + +"""aggregate avg on columns""" +type community_pool_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "community_pool". All fields are combined with a logical 'AND'. +""" +input community_pool_bool_exp { + _and: [community_pool_bool_exp!] + _not: community_pool_bool_exp + _or: [community_pool_bool_exp!] + coins: dec_coin_array_comparison_exp + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp +} + +""" +unique or primary key constraints on table "community_pool" +""" +enum community_pool_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + community_pool_pkey +} + +""" +input type for incrementing numeric columns in table "community_pool" +""" +input community_pool_inc_input { + height: bigint +} + +""" +input type for inserting data into table "community_pool" +""" +input community_pool_insert_input { + coins: [dec_coin!] + height: bigint + one_row_id: Boolean +} + +"""aggregate max on columns""" +type community_pool_max_fields { + coins: [dec_coin!] + height: bigint +} + +"""aggregate min on columns""" +type community_pool_min_fields { + coins: [dec_coin!] + height: bigint +} + +""" +response of any mutation on the table "community_pool" +""" +type community_pool_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [community_pool!]! +} + +""" +on_conflict condition type for table "community_pool" +""" +input community_pool_on_conflict { + constraint: community_pool_constraint! + update_columns: [community_pool_update_column!]! = [] + where: community_pool_bool_exp +} + +"""Ordering options when selecting data from "community_pool".""" +input community_pool_order_by { + coins: order_by + height: order_by + one_row_id: order_by +} + +"""primary key columns input for table: community_pool""" +input community_pool_pk_columns_input { + one_row_id: Boolean! +} + +""" +select columns of table "community_pool" +""" +enum community_pool_select_column { + """column name""" + coins + + """column name""" + height + + """column name""" + one_row_id +} + +""" +input type for updating data in table "community_pool" +""" +input community_pool_set_input { + coins: [dec_coin!] + height: bigint + one_row_id: Boolean +} + +"""aggregate stddev on columns""" +type community_pool_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type community_pool_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type community_pool_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "community_pool" +""" +input community_pool_stream_cursor_input { + """Stream column input with initial value""" + initial_value: community_pool_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input community_pool_stream_cursor_value_input { + coins: [dec_coin!] + height: bigint + one_row_id: Boolean +} + +"""aggregate sum on columns""" +type community_pool_sum_fields { + height: bigint +} + +""" +update columns of table "community_pool" +""" +enum community_pool_update_column { + """column name""" + coins + + """column name""" + height + + """column name""" + one_row_id +} + +input community_pool_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: community_pool_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: community_pool_set_input + + """filter the rows which have to be updated""" + where: community_pool_bool_exp! +} + +"""aggregate var_pop on columns""" +type community_pool_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type community_pool_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type community_pool_variance_fields { + height: Float +} + +"""ordering argument of a cursor""" +enum cursor_ordering { + """ascending ordering of the cursor""" + ASC + + """descending ordering of the cursor""" + DESC +} + +""" +columns and relationships of "customparams_params" +""" +type customparams_params { + height: bigint! + one_row_id: Boolean! + staking_params( + """JSON select path""" + path: String + ): jsonb! +} + +""" +aggregated selection of "customparams_params" +""" +type customparams_params_aggregate { + aggregate: customparams_params_aggregate_fields + nodes: [customparams_params!]! +} + +""" +aggregate fields of "customparams_params" +""" +type customparams_params_aggregate_fields { + avg: customparams_params_avg_fields + count(columns: [customparams_params_select_column!], distinct: Boolean): Int! + max: customparams_params_max_fields + min: customparams_params_min_fields + stddev: customparams_params_stddev_fields + stddev_pop: customparams_params_stddev_pop_fields + stddev_samp: customparams_params_stddev_samp_fields + sum: customparams_params_sum_fields + var_pop: customparams_params_var_pop_fields + var_samp: customparams_params_var_samp_fields + variance: customparams_params_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input customparams_params_append_input { + staking_params: jsonb +} + +"""aggregate avg on columns""" +type customparams_params_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "customparams_params". All fields are combined with a logical 'AND'. +""" +input customparams_params_bool_exp { + _and: [customparams_params_bool_exp!] + _not: customparams_params_bool_exp + _or: [customparams_params_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + staking_params: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "customparams_params" +""" +enum customparams_params_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + customparams_params_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input customparams_params_delete_at_path_input { + staking_params: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input customparams_params_delete_elem_input { + staking_params: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input customparams_params_delete_key_input { + staking_params: String +} + +""" +input type for incrementing numeric columns in table "customparams_params" +""" +input customparams_params_inc_input { + height: bigint +} + +""" +input type for inserting data into table "customparams_params" +""" +input customparams_params_insert_input { + height: bigint + one_row_id: Boolean + staking_params: jsonb +} + +"""aggregate max on columns""" +type customparams_params_max_fields { + height: bigint +} + +"""aggregate min on columns""" +type customparams_params_min_fields { + height: bigint +} + +""" +response of any mutation on the table "customparams_params" +""" +type customparams_params_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [customparams_params!]! +} + +""" +on_conflict condition type for table "customparams_params" +""" +input customparams_params_on_conflict { + constraint: customparams_params_constraint! + update_columns: [customparams_params_update_column!]! = [] + where: customparams_params_bool_exp +} + +"""Ordering options when selecting data from "customparams_params".""" +input customparams_params_order_by { + height: order_by + one_row_id: order_by + staking_params: order_by +} + +"""primary key columns input for table: customparams_params""" +input customparams_params_pk_columns_input { + one_row_id: Boolean! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input customparams_params_prepend_input { + staking_params: jsonb +} + +""" +select columns of table "customparams_params" +""" +enum customparams_params_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + staking_params +} + +""" +input type for updating data in table "customparams_params" +""" +input customparams_params_set_input { + height: bigint + one_row_id: Boolean + staking_params: jsonb +} + +"""aggregate stddev on columns""" +type customparams_params_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type customparams_params_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type customparams_params_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "customparams_params" +""" +input customparams_params_stream_cursor_input { + """Stream column input with initial value""" + initial_value: customparams_params_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input customparams_params_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + staking_params: jsonb +} + +"""aggregate sum on columns""" +type customparams_params_sum_fields { + height: bigint +} + +""" +update columns of table "customparams_params" +""" +enum customparams_params_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + staking_params +} + +input customparams_params_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: customparams_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: customparams_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: customparams_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: customparams_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: customparams_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: customparams_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: customparams_params_set_input + + """filter the rows which have to be updated""" + where: customparams_params_bool_exp! +} + +"""aggregate var_pop on columns""" +type customparams_params_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type customparams_params_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type customparams_params_variance_fields { + height: Float +} + +scalar dec_coin + +""" +Boolean expression to compare columns of type "dec_coin". All fields are combined with logical 'AND'. +""" +input dec_coin_array_comparison_exp { + """is the array contained in the given array value""" + _contained_in: [dec_coin!] + + """does the array contain the given value""" + _contains: [dec_coin!] + _eq: [dec_coin!] + _gt: [dec_coin!] + _gte: [dec_coin!] + _in: [[dec_coin!]!] + _is_null: Boolean + _lt: [dec_coin!] + _lte: [dec_coin!] + _neq: [dec_coin!] + _nin: [[dec_coin!]!] +} + +""" +columns and relationships of "dex_params" +""" +type dex_params { + height: bigint! + one_row_id: Boolean! + params( + """JSON select path""" + path: String + ): jsonb! +} + +""" +aggregated selection of "dex_params" +""" +type dex_params_aggregate { + aggregate: dex_params_aggregate_fields + nodes: [dex_params!]! +} + +""" +aggregate fields of "dex_params" +""" +type dex_params_aggregate_fields { + avg: dex_params_avg_fields + count(columns: [dex_params_select_column!], distinct: Boolean): Int! + max: dex_params_max_fields + min: dex_params_min_fields + stddev: dex_params_stddev_fields + stddev_pop: dex_params_stddev_pop_fields + stddev_samp: dex_params_stddev_samp_fields + sum: dex_params_sum_fields + var_pop: dex_params_var_pop_fields + var_samp: dex_params_var_samp_fields + variance: dex_params_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input dex_params_append_input { + params: jsonb +} + +"""aggregate avg on columns""" +type dex_params_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "dex_params". All fields are combined with a logical 'AND'. +""" +input dex_params_bool_exp { + _and: [dex_params_bool_exp!] + _not: dex_params_bool_exp + _or: [dex_params_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + params: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "dex_params" +""" +enum dex_params_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + dex_params_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input dex_params_delete_at_path_input { + params: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input dex_params_delete_elem_input { + params: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input dex_params_delete_key_input { + params: String +} + +""" +input type for incrementing numeric columns in table "dex_params" +""" +input dex_params_inc_input { + height: bigint +} + +""" +input type for inserting data into table "dex_params" +""" +input dex_params_insert_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate max on columns""" +type dex_params_max_fields { + height: bigint +} + +"""aggregate min on columns""" +type dex_params_min_fields { + height: bigint +} + +""" +response of any mutation on the table "dex_params" +""" +type dex_params_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [dex_params!]! +} + +""" +on_conflict condition type for table "dex_params" +""" +input dex_params_on_conflict { + constraint: dex_params_constraint! + update_columns: [dex_params_update_column!]! = [] + where: dex_params_bool_exp +} + +"""Ordering options when selecting data from "dex_params".""" +input dex_params_order_by { + height: order_by + one_row_id: order_by + params: order_by +} + +"""primary key columns input for table: dex_params""" +input dex_params_pk_columns_input { + one_row_id: Boolean! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input dex_params_prepend_input { + params: jsonb +} + +""" +select columns of table "dex_params" +""" +enum dex_params_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +""" +input type for updating data in table "dex_params" +""" +input dex_params_set_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate stddev on columns""" +type dex_params_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type dex_params_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type dex_params_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "dex_params" +""" +input dex_params_stream_cursor_input { + """Stream column input with initial value""" + initial_value: dex_params_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input dex_params_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate sum on columns""" +type dex_params_sum_fields { + height: bigint +} + +""" +update columns of table "dex_params" +""" +enum dex_params_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +input dex_params_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: dex_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: dex_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: dex_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: dex_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: dex_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: dex_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: dex_params_set_input + + """filter the rows which have to be updated""" + where: dex_params_bool_exp! +} + +"""aggregate var_pop on columns""" +type dex_params_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type dex_params_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type dex_params_variance_fields { + height: Float +} + +""" +columns and relationships of "distribution_params" +""" +type distribution_params { + height: bigint! + one_row_id: Boolean! + params( + """JSON select path""" + path: String + ): jsonb! +} + +""" +aggregated selection of "distribution_params" +""" +type distribution_params_aggregate { + aggregate: distribution_params_aggregate_fields + nodes: [distribution_params!]! +} + +""" +aggregate fields of "distribution_params" +""" +type distribution_params_aggregate_fields { + avg: distribution_params_avg_fields + count(columns: [distribution_params_select_column!], distinct: Boolean): Int! + max: distribution_params_max_fields + min: distribution_params_min_fields + stddev: distribution_params_stddev_fields + stddev_pop: distribution_params_stddev_pop_fields + stddev_samp: distribution_params_stddev_samp_fields + sum: distribution_params_sum_fields + var_pop: distribution_params_var_pop_fields + var_samp: distribution_params_var_samp_fields + variance: distribution_params_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input distribution_params_append_input { + params: jsonb +} + +"""aggregate avg on columns""" +type distribution_params_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "distribution_params". All fields are combined with a logical 'AND'. +""" +input distribution_params_bool_exp { + _and: [distribution_params_bool_exp!] + _not: distribution_params_bool_exp + _or: [distribution_params_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + params: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "distribution_params" +""" +enum distribution_params_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + distribution_params_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input distribution_params_delete_at_path_input { + params: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input distribution_params_delete_elem_input { + params: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input distribution_params_delete_key_input { + params: String +} + +""" +input type for incrementing numeric columns in table "distribution_params" +""" +input distribution_params_inc_input { + height: bigint +} + +""" +input type for inserting data into table "distribution_params" +""" +input distribution_params_insert_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate max on columns""" +type distribution_params_max_fields { + height: bigint +} + +"""aggregate min on columns""" +type distribution_params_min_fields { + height: bigint +} + +""" +response of any mutation on the table "distribution_params" +""" +type distribution_params_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [distribution_params!]! +} + +""" +on_conflict condition type for table "distribution_params" +""" +input distribution_params_on_conflict { + constraint: distribution_params_constraint! + update_columns: [distribution_params_update_column!]! = [] + where: distribution_params_bool_exp +} + +"""Ordering options when selecting data from "distribution_params".""" +input distribution_params_order_by { + height: order_by + one_row_id: order_by + params: order_by +} + +"""primary key columns input for table: distribution_params""" +input distribution_params_pk_columns_input { + one_row_id: Boolean! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input distribution_params_prepend_input { + params: jsonb +} + +""" +select columns of table "distribution_params" +""" +enum distribution_params_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +""" +input type for updating data in table "distribution_params" +""" +input distribution_params_set_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate stddev on columns""" +type distribution_params_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type distribution_params_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type distribution_params_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "distribution_params" +""" +input distribution_params_stream_cursor_input { + """Stream column input with initial value""" + initial_value: distribution_params_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input distribution_params_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate sum on columns""" +type distribution_params_sum_fields { + height: bigint +} + +""" +update columns of table "distribution_params" +""" +enum distribution_params_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +input distribution_params_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: distribution_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: distribution_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: distribution_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: distribution_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: distribution_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: distribution_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: distribution_params_set_input + + """filter the rows which have to be updated""" + where: distribution_params_bool_exp! +} + +"""aggregate var_pop on columns""" +type distribution_params_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type distribution_params_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type distribution_params_variance_fields { + height: Float +} + +""" +columns and relationships of "double_sign_evidence" +""" +type double_sign_evidence { + """An object relationship""" + doubleSignVoteByVoteAId: double_sign_vote! + + """An object relationship""" + double_sign_vote: double_sign_vote! + height: bigint! + vote_a_id: bigint! + vote_b_id: bigint! +} + +""" +aggregated selection of "double_sign_evidence" +""" +type double_sign_evidence_aggregate { + aggregate: double_sign_evidence_aggregate_fields + nodes: [double_sign_evidence!]! +} + +input double_sign_evidence_aggregate_bool_exp { + count: double_sign_evidence_aggregate_bool_exp_count +} + +input double_sign_evidence_aggregate_bool_exp_count { + arguments: [double_sign_evidence_select_column!] + distinct: Boolean + filter: double_sign_evidence_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "double_sign_evidence" +""" +type double_sign_evidence_aggregate_fields { + avg: double_sign_evidence_avg_fields + count(columns: [double_sign_evidence_select_column!], distinct: Boolean): Int! + max: double_sign_evidence_max_fields + min: double_sign_evidence_min_fields + stddev: double_sign_evidence_stddev_fields + stddev_pop: double_sign_evidence_stddev_pop_fields + stddev_samp: double_sign_evidence_stddev_samp_fields + sum: double_sign_evidence_sum_fields + var_pop: double_sign_evidence_var_pop_fields + var_samp: double_sign_evidence_var_samp_fields + variance: double_sign_evidence_variance_fields +} + +""" +order by aggregate values of table "double_sign_evidence" +""" +input double_sign_evidence_aggregate_order_by { + avg: double_sign_evidence_avg_order_by + count: order_by + max: double_sign_evidence_max_order_by + min: double_sign_evidence_min_order_by + stddev: double_sign_evidence_stddev_order_by + stddev_pop: double_sign_evidence_stddev_pop_order_by + stddev_samp: double_sign_evidence_stddev_samp_order_by + sum: double_sign_evidence_sum_order_by + var_pop: double_sign_evidence_var_pop_order_by + var_samp: double_sign_evidence_var_samp_order_by + variance: double_sign_evidence_variance_order_by +} + +""" +input type for inserting array relation for remote table "double_sign_evidence" +""" +input double_sign_evidence_arr_rel_insert_input { + data: [double_sign_evidence_insert_input!]! +} + +"""aggregate avg on columns""" +type double_sign_evidence_avg_fields { + height: Float + vote_a_id: Float + vote_b_id: Float +} + +""" +order by avg() on columns of table "double_sign_evidence" +""" +input double_sign_evidence_avg_order_by { + height: order_by + vote_a_id: order_by + vote_b_id: order_by +} + +""" +Boolean expression to filter rows from the table "double_sign_evidence". All fields are combined with a logical 'AND'. +""" +input double_sign_evidence_bool_exp { + _and: [double_sign_evidence_bool_exp!] + _not: double_sign_evidence_bool_exp + _or: [double_sign_evidence_bool_exp!] + doubleSignVoteByVoteAId: double_sign_vote_bool_exp + double_sign_vote: double_sign_vote_bool_exp + height: bigint_comparison_exp + vote_a_id: bigint_comparison_exp + vote_b_id: bigint_comparison_exp +} + +""" +input type for incrementing numeric columns in table "double_sign_evidence" +""" +input double_sign_evidence_inc_input { + height: bigint + vote_a_id: bigint + vote_b_id: bigint +} + +""" +input type for inserting data into table "double_sign_evidence" +""" +input double_sign_evidence_insert_input { + doubleSignVoteByVoteAId: double_sign_vote_obj_rel_insert_input + double_sign_vote: double_sign_vote_obj_rel_insert_input + height: bigint + vote_a_id: bigint + vote_b_id: bigint +} + +"""aggregate max on columns""" +type double_sign_evidence_max_fields { + height: bigint + vote_a_id: bigint + vote_b_id: bigint +} + +""" +order by max() on columns of table "double_sign_evidence" +""" +input double_sign_evidence_max_order_by { + height: order_by + vote_a_id: order_by + vote_b_id: order_by +} + +"""aggregate min on columns""" +type double_sign_evidence_min_fields { + height: bigint + vote_a_id: bigint + vote_b_id: bigint +} + +""" +order by min() on columns of table "double_sign_evidence" +""" +input double_sign_evidence_min_order_by { + height: order_by + vote_a_id: order_by + vote_b_id: order_by +} + +""" +response of any mutation on the table "double_sign_evidence" +""" +type double_sign_evidence_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [double_sign_evidence!]! +} + +"""Ordering options when selecting data from "double_sign_evidence".""" +input double_sign_evidence_order_by { + doubleSignVoteByVoteAId: double_sign_vote_order_by + double_sign_vote: double_sign_vote_order_by + height: order_by + vote_a_id: order_by + vote_b_id: order_by +} + +""" +select columns of table "double_sign_evidence" +""" +enum double_sign_evidence_select_column { + """column name""" + height + + """column name""" + vote_a_id + + """column name""" + vote_b_id +} + +""" +input type for updating data in table "double_sign_evidence" +""" +input double_sign_evidence_set_input { + height: bigint + vote_a_id: bigint + vote_b_id: bigint +} + +"""aggregate stddev on columns""" +type double_sign_evidence_stddev_fields { + height: Float + vote_a_id: Float + vote_b_id: Float +} + +""" +order by stddev() on columns of table "double_sign_evidence" +""" +input double_sign_evidence_stddev_order_by { + height: order_by + vote_a_id: order_by + vote_b_id: order_by +} + +"""aggregate stddev_pop on columns""" +type double_sign_evidence_stddev_pop_fields { + height: Float + vote_a_id: Float + vote_b_id: Float +} + +""" +order by stddev_pop() on columns of table "double_sign_evidence" +""" +input double_sign_evidence_stddev_pop_order_by { + height: order_by + vote_a_id: order_by + vote_b_id: order_by +} + +"""aggregate stddev_samp on columns""" +type double_sign_evidence_stddev_samp_fields { + height: Float + vote_a_id: Float + vote_b_id: Float +} + +""" +order by stddev_samp() on columns of table "double_sign_evidence" +""" +input double_sign_evidence_stddev_samp_order_by { + height: order_by + vote_a_id: order_by + vote_b_id: order_by +} + +""" +Streaming cursor of the table "double_sign_evidence" +""" +input double_sign_evidence_stream_cursor_input { + """Stream column input with initial value""" + initial_value: double_sign_evidence_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input double_sign_evidence_stream_cursor_value_input { + height: bigint + vote_a_id: bigint + vote_b_id: bigint +} + +"""aggregate sum on columns""" +type double_sign_evidence_sum_fields { + height: bigint + vote_a_id: bigint + vote_b_id: bigint +} + +""" +order by sum() on columns of table "double_sign_evidence" +""" +input double_sign_evidence_sum_order_by { + height: order_by + vote_a_id: order_by + vote_b_id: order_by +} + +input double_sign_evidence_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: double_sign_evidence_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: double_sign_evidence_set_input + + """filter the rows which have to be updated""" + where: double_sign_evidence_bool_exp! +} + +"""aggregate var_pop on columns""" +type double_sign_evidence_var_pop_fields { + height: Float + vote_a_id: Float + vote_b_id: Float +} + +""" +order by var_pop() on columns of table "double_sign_evidence" +""" +input double_sign_evidence_var_pop_order_by { + height: order_by + vote_a_id: order_by + vote_b_id: order_by +} + +"""aggregate var_samp on columns""" +type double_sign_evidence_var_samp_fields { + height: Float + vote_a_id: Float + vote_b_id: Float +} + +""" +order by var_samp() on columns of table "double_sign_evidence" +""" +input double_sign_evidence_var_samp_order_by { + height: order_by + vote_a_id: order_by + vote_b_id: order_by +} + +"""aggregate variance on columns""" +type double_sign_evidence_variance_fields { + height: Float + vote_a_id: Float + vote_b_id: Float +} + +""" +order by variance() on columns of table "double_sign_evidence" +""" +input double_sign_evidence_variance_order_by { + height: order_by + vote_a_id: order_by + vote_b_id: order_by +} + +""" +columns and relationships of "double_sign_vote" +""" +type double_sign_vote { + block_id: String! + + """An array relationship""" + doubleSignEvidencesByVoteBId( + """distinct select on columns""" + distinct_on: [double_sign_evidence_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_evidence_order_by!] + + """filter the rows returned""" + where: double_sign_evidence_bool_exp + ): [double_sign_evidence!]! + + """An aggregate relationship""" + doubleSignEvidencesByVoteBId_aggregate( + """distinct select on columns""" + distinct_on: [double_sign_evidence_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_evidence_order_by!] + + """filter the rows returned""" + where: double_sign_evidence_bool_exp + ): double_sign_evidence_aggregate! + + """An array relationship""" + double_sign_evidences( + """distinct select on columns""" + distinct_on: [double_sign_evidence_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_evidence_order_by!] + + """filter the rows returned""" + where: double_sign_evidence_bool_exp + ): [double_sign_evidence!]! + + """An aggregate relationship""" + double_sign_evidences_aggregate( + """distinct select on columns""" + distinct_on: [double_sign_evidence_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_evidence_order_by!] + + """filter the rows returned""" + where: double_sign_evidence_bool_exp + ): double_sign_evidence_aggregate! + height: bigint! + id: Int! + round: Int! + signature: String! + type: smallint! + + """An object relationship""" + validator: validator! + validator_address: String! + validator_index: Int! +} + +""" +aggregated selection of "double_sign_vote" +""" +type double_sign_vote_aggregate { + aggregate: double_sign_vote_aggregate_fields + nodes: [double_sign_vote!]! +} + +input double_sign_vote_aggregate_bool_exp { + count: double_sign_vote_aggregate_bool_exp_count +} + +input double_sign_vote_aggregate_bool_exp_count { + arguments: [double_sign_vote_select_column!] + distinct: Boolean + filter: double_sign_vote_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "double_sign_vote" +""" +type double_sign_vote_aggregate_fields { + avg: double_sign_vote_avg_fields + count(columns: [double_sign_vote_select_column!], distinct: Boolean): Int! + max: double_sign_vote_max_fields + min: double_sign_vote_min_fields + stddev: double_sign_vote_stddev_fields + stddev_pop: double_sign_vote_stddev_pop_fields + stddev_samp: double_sign_vote_stddev_samp_fields + sum: double_sign_vote_sum_fields + var_pop: double_sign_vote_var_pop_fields + var_samp: double_sign_vote_var_samp_fields + variance: double_sign_vote_variance_fields +} + +""" +order by aggregate values of table "double_sign_vote" +""" +input double_sign_vote_aggregate_order_by { + avg: double_sign_vote_avg_order_by + count: order_by + max: double_sign_vote_max_order_by + min: double_sign_vote_min_order_by + stddev: double_sign_vote_stddev_order_by + stddev_pop: double_sign_vote_stddev_pop_order_by + stddev_samp: double_sign_vote_stddev_samp_order_by + sum: double_sign_vote_sum_order_by + var_pop: double_sign_vote_var_pop_order_by + var_samp: double_sign_vote_var_samp_order_by + variance: double_sign_vote_variance_order_by +} + +""" +input type for inserting array relation for remote table "double_sign_vote" +""" +input double_sign_vote_arr_rel_insert_input { + data: [double_sign_vote_insert_input!]! + + """upsert condition""" + on_conflict: double_sign_vote_on_conflict +} + +"""aggregate avg on columns""" +type double_sign_vote_avg_fields { + height: Float + id: Float + round: Float + type: Float + validator_index: Float +} + +""" +order by avg() on columns of table "double_sign_vote" +""" +input double_sign_vote_avg_order_by { + height: order_by + id: order_by + round: order_by + type: order_by + validator_index: order_by +} + +""" +Boolean expression to filter rows from the table "double_sign_vote". All fields are combined with a logical 'AND'. +""" +input double_sign_vote_bool_exp { + _and: [double_sign_vote_bool_exp!] + _not: double_sign_vote_bool_exp + _or: [double_sign_vote_bool_exp!] + block_id: String_comparison_exp + doubleSignEvidencesByVoteBId: double_sign_evidence_bool_exp + doubleSignEvidencesByVoteBId_aggregate: double_sign_evidence_aggregate_bool_exp + double_sign_evidences: double_sign_evidence_bool_exp + double_sign_evidences_aggregate: double_sign_evidence_aggregate_bool_exp + height: bigint_comparison_exp + id: Int_comparison_exp + round: Int_comparison_exp + signature: String_comparison_exp + type: smallint_comparison_exp + validator: validator_bool_exp + validator_address: String_comparison_exp + validator_index: Int_comparison_exp +} + +""" +unique or primary key constraints on table "double_sign_vote" +""" +enum double_sign_vote_constraint { + """ + unique or primary key constraint on columns "validator_address", "block_id" + """ + double_sign_vote_block_id_validator_address_key + + """ + unique or primary key constraint on columns "id" + """ + double_sign_vote_pkey +} + +""" +input type for incrementing numeric columns in table "double_sign_vote" +""" +input double_sign_vote_inc_input { + height: bigint + id: Int + round: Int + type: smallint + validator_index: Int +} + +""" +input type for inserting data into table "double_sign_vote" +""" +input double_sign_vote_insert_input { + block_id: String + doubleSignEvidencesByVoteBId: double_sign_evidence_arr_rel_insert_input + double_sign_evidences: double_sign_evidence_arr_rel_insert_input + height: bigint + id: Int + round: Int + signature: String + type: smallint + validator: validator_obj_rel_insert_input + validator_address: String + validator_index: Int +} + +"""aggregate max on columns""" +type double_sign_vote_max_fields { + block_id: String + height: bigint + id: Int + round: Int + signature: String + type: smallint + validator_address: String + validator_index: Int +} + +""" +order by max() on columns of table "double_sign_vote" +""" +input double_sign_vote_max_order_by { + block_id: order_by + height: order_by + id: order_by + round: order_by + signature: order_by + type: order_by + validator_address: order_by + validator_index: order_by +} + +"""aggregate min on columns""" +type double_sign_vote_min_fields { + block_id: String + height: bigint + id: Int + round: Int + signature: String + type: smallint + validator_address: String + validator_index: Int +} + +""" +order by min() on columns of table "double_sign_vote" +""" +input double_sign_vote_min_order_by { + block_id: order_by + height: order_by + id: order_by + round: order_by + signature: order_by + type: order_by + validator_address: order_by + validator_index: order_by +} + +""" +response of any mutation on the table "double_sign_vote" +""" +type double_sign_vote_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [double_sign_vote!]! +} + +""" +input type for inserting object relation for remote table "double_sign_vote" +""" +input double_sign_vote_obj_rel_insert_input { + data: double_sign_vote_insert_input! + + """upsert condition""" + on_conflict: double_sign_vote_on_conflict +} + +""" +on_conflict condition type for table "double_sign_vote" +""" +input double_sign_vote_on_conflict { + constraint: double_sign_vote_constraint! + update_columns: [double_sign_vote_update_column!]! = [] + where: double_sign_vote_bool_exp +} + +"""Ordering options when selecting data from "double_sign_vote".""" +input double_sign_vote_order_by { + block_id: order_by + doubleSignEvidencesByVoteBId_aggregate: double_sign_evidence_aggregate_order_by + double_sign_evidences_aggregate: double_sign_evidence_aggregate_order_by + height: order_by + id: order_by + round: order_by + signature: order_by + type: order_by + validator: validator_order_by + validator_address: order_by + validator_index: order_by +} + +"""primary key columns input for table: double_sign_vote""" +input double_sign_vote_pk_columns_input { + id: Int! +} + +""" +select columns of table "double_sign_vote" +""" +enum double_sign_vote_select_column { + """column name""" + block_id + + """column name""" + height + + """column name""" + id + + """column name""" + round + + """column name""" + signature + + """column name""" + type + + """column name""" + validator_address + + """column name""" + validator_index +} + +""" +input type for updating data in table "double_sign_vote" +""" +input double_sign_vote_set_input { + block_id: String + height: bigint + id: Int + round: Int + signature: String + type: smallint + validator_address: String + validator_index: Int +} + +"""aggregate stddev on columns""" +type double_sign_vote_stddev_fields { + height: Float + id: Float + round: Float + type: Float + validator_index: Float +} + +""" +order by stddev() on columns of table "double_sign_vote" +""" +input double_sign_vote_stddev_order_by { + height: order_by + id: order_by + round: order_by + type: order_by + validator_index: order_by +} + +"""aggregate stddev_pop on columns""" +type double_sign_vote_stddev_pop_fields { + height: Float + id: Float + round: Float + type: Float + validator_index: Float +} + +""" +order by stddev_pop() on columns of table "double_sign_vote" +""" +input double_sign_vote_stddev_pop_order_by { + height: order_by + id: order_by + round: order_by + type: order_by + validator_index: order_by +} + +"""aggregate stddev_samp on columns""" +type double_sign_vote_stddev_samp_fields { + height: Float + id: Float + round: Float + type: Float + validator_index: Float +} + +""" +order by stddev_samp() on columns of table "double_sign_vote" +""" +input double_sign_vote_stddev_samp_order_by { + height: order_by + id: order_by + round: order_by + type: order_by + validator_index: order_by +} + +""" +Streaming cursor of the table "double_sign_vote" +""" +input double_sign_vote_stream_cursor_input { + """Stream column input with initial value""" + initial_value: double_sign_vote_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input double_sign_vote_stream_cursor_value_input { + block_id: String + height: bigint + id: Int + round: Int + signature: String + type: smallint + validator_address: String + validator_index: Int +} + +"""aggregate sum on columns""" +type double_sign_vote_sum_fields { + height: bigint + id: Int + round: Int + type: smallint + validator_index: Int +} + +""" +order by sum() on columns of table "double_sign_vote" +""" +input double_sign_vote_sum_order_by { + height: order_by + id: order_by + round: order_by + type: order_by + validator_index: order_by +} + +""" +update columns of table "double_sign_vote" +""" +enum double_sign_vote_update_column { + """column name""" + block_id + + """column name""" + height + + """column name""" + id + + """column name""" + round + + """column name""" + signature + + """column name""" + type + + """column name""" + validator_address + + """column name""" + validator_index +} + +input double_sign_vote_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: double_sign_vote_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: double_sign_vote_set_input + + """filter the rows which have to be updated""" + where: double_sign_vote_bool_exp! +} + +"""aggregate var_pop on columns""" +type double_sign_vote_var_pop_fields { + height: Float + id: Float + round: Float + type: Float + validator_index: Float +} + +""" +order by var_pop() on columns of table "double_sign_vote" +""" +input double_sign_vote_var_pop_order_by { + height: order_by + id: order_by + round: order_by + type: order_by + validator_index: order_by +} + +"""aggregate var_samp on columns""" +type double_sign_vote_var_samp_fields { + height: Float + id: Float + round: Float + type: Float + validator_index: Float +} + +""" +order by var_samp() on columns of table "double_sign_vote" +""" +input double_sign_vote_var_samp_order_by { + height: order_by + id: order_by + round: order_by + type: order_by + validator_index: order_by +} + +"""aggregate variance on columns""" +type double_sign_vote_variance_fields { + height: Float + id: Float + round: Float + type: Float + validator_index: Float +} + +""" +order by variance() on columns of table "double_sign_vote" +""" +input double_sign_vote_variance_order_by { + height: order_by + id: order_by + round: order_by + type: order_by + validator_index: order_by +} + +""" +columns and relationships of "fee_grant_allowance" +""" +type fee_grant_allowance { + allowance( + """JSON select path""" + path: String + ): jsonb! + + """An object relationship""" + grantee: account! + grantee_address: String! + + """An object relationship""" + granter: account! + granter_address: String! + height: bigint! + id: Int! +} + +""" +aggregated selection of "fee_grant_allowance" +""" +type fee_grant_allowance_aggregate { + aggregate: fee_grant_allowance_aggregate_fields + nodes: [fee_grant_allowance!]! +} + +""" +aggregate fields of "fee_grant_allowance" +""" +type fee_grant_allowance_aggregate_fields { + avg: fee_grant_allowance_avg_fields + count(columns: [fee_grant_allowance_select_column!], distinct: Boolean): Int! + max: fee_grant_allowance_max_fields + min: fee_grant_allowance_min_fields + stddev: fee_grant_allowance_stddev_fields + stddev_pop: fee_grant_allowance_stddev_pop_fields + stddev_samp: fee_grant_allowance_stddev_samp_fields + sum: fee_grant_allowance_sum_fields + var_pop: fee_grant_allowance_var_pop_fields + var_samp: fee_grant_allowance_var_samp_fields + variance: fee_grant_allowance_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input fee_grant_allowance_append_input { + allowance: jsonb +} + +"""aggregate avg on columns""" +type fee_grant_allowance_avg_fields { + height: Float + id: Float +} + +""" +Boolean expression to filter rows from the table "fee_grant_allowance". All fields are combined with a logical 'AND'. +""" +input fee_grant_allowance_bool_exp { + _and: [fee_grant_allowance_bool_exp!] + _not: fee_grant_allowance_bool_exp + _or: [fee_grant_allowance_bool_exp!] + allowance: jsonb_comparison_exp + grantee: account_bool_exp + grantee_address: String_comparison_exp + granter: account_bool_exp + granter_address: String_comparison_exp + height: bigint_comparison_exp + id: Int_comparison_exp +} + +""" +unique or primary key constraints on table "fee_grant_allowance" +""" +enum fee_grant_allowance_constraint { + """ + unique or primary key constraint on columns "id" + """ + fee_grant_allowance_pkey + + """ + unique or primary key constraint on columns "grantee_address", "granter_address" + """ + unique_fee_grant_allowance +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input fee_grant_allowance_delete_at_path_input { + allowance: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input fee_grant_allowance_delete_elem_input { + allowance: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input fee_grant_allowance_delete_key_input { + allowance: String +} + +""" +input type for incrementing numeric columns in table "fee_grant_allowance" +""" +input fee_grant_allowance_inc_input { + height: bigint + id: Int +} + +""" +input type for inserting data into table "fee_grant_allowance" +""" +input fee_grant_allowance_insert_input { + allowance: jsonb + grantee: account_obj_rel_insert_input + grantee_address: String + granter: account_obj_rel_insert_input + granter_address: String + height: bigint + id: Int +} + +"""aggregate max on columns""" +type fee_grant_allowance_max_fields { + grantee_address: String + granter_address: String + height: bigint + id: Int +} + +"""aggregate min on columns""" +type fee_grant_allowance_min_fields { + grantee_address: String + granter_address: String + height: bigint + id: Int +} + +""" +response of any mutation on the table "fee_grant_allowance" +""" +type fee_grant_allowance_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [fee_grant_allowance!]! +} + +""" +on_conflict condition type for table "fee_grant_allowance" +""" +input fee_grant_allowance_on_conflict { + constraint: fee_grant_allowance_constraint! + update_columns: [fee_grant_allowance_update_column!]! = [] + where: fee_grant_allowance_bool_exp +} + +"""Ordering options when selecting data from "fee_grant_allowance".""" +input fee_grant_allowance_order_by { + allowance: order_by + grantee: account_order_by + grantee_address: order_by + granter: account_order_by + granter_address: order_by + height: order_by + id: order_by +} + +"""primary key columns input for table: fee_grant_allowance""" +input fee_grant_allowance_pk_columns_input { + id: Int! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input fee_grant_allowance_prepend_input { + allowance: jsonb +} + +""" +select columns of table "fee_grant_allowance" +""" +enum fee_grant_allowance_select_column { + """column name""" + allowance + + """column name""" + grantee_address + + """column name""" + granter_address + + """column name""" + height + + """column name""" + id +} + +""" +input type for updating data in table "fee_grant_allowance" +""" +input fee_grant_allowance_set_input { + allowance: jsonb + grantee_address: String + granter_address: String + height: bigint + id: Int +} + +"""aggregate stddev on columns""" +type fee_grant_allowance_stddev_fields { + height: Float + id: Float +} + +"""aggregate stddev_pop on columns""" +type fee_grant_allowance_stddev_pop_fields { + height: Float + id: Float +} + +"""aggregate stddev_samp on columns""" +type fee_grant_allowance_stddev_samp_fields { + height: Float + id: Float +} + +""" +Streaming cursor of the table "fee_grant_allowance" +""" +input fee_grant_allowance_stream_cursor_input { + """Stream column input with initial value""" + initial_value: fee_grant_allowance_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input fee_grant_allowance_stream_cursor_value_input { + allowance: jsonb + grantee_address: String + granter_address: String + height: bigint + id: Int +} + +"""aggregate sum on columns""" +type fee_grant_allowance_sum_fields { + height: bigint + id: Int +} + +""" +update columns of table "fee_grant_allowance" +""" +enum fee_grant_allowance_update_column { + """column name""" + allowance + + """column name""" + grantee_address + + """column name""" + granter_address + + """column name""" + height + + """column name""" + id +} + +input fee_grant_allowance_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: fee_grant_allowance_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: fee_grant_allowance_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: fee_grant_allowance_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: fee_grant_allowance_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: fee_grant_allowance_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: fee_grant_allowance_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: fee_grant_allowance_set_input + + """filter the rows which have to be updated""" + where: fee_grant_allowance_bool_exp! +} + +"""aggregate var_pop on columns""" +type fee_grant_allowance_var_pop_fields { + height: Float + id: Float +} + +"""aggregate var_samp on columns""" +type fee_grant_allowance_var_samp_fields { + height: Float + id: Float +} + +"""aggregate variance on columns""" +type fee_grant_allowance_variance_fields { + height: Float + id: Float +} + +""" +columns and relationships of "feemodel_params" +""" +type feemodel_params { + height: bigint! + one_row_id: Boolean! + params( + """JSON select path""" + path: String + ): jsonb! +} + +""" +aggregated selection of "feemodel_params" +""" +type feemodel_params_aggregate { + aggregate: feemodel_params_aggregate_fields + nodes: [feemodel_params!]! +} + +""" +aggregate fields of "feemodel_params" +""" +type feemodel_params_aggregate_fields { + avg: feemodel_params_avg_fields + count(columns: [feemodel_params_select_column!], distinct: Boolean): Int! + max: feemodel_params_max_fields + min: feemodel_params_min_fields + stddev: feemodel_params_stddev_fields + stddev_pop: feemodel_params_stddev_pop_fields + stddev_samp: feemodel_params_stddev_samp_fields + sum: feemodel_params_sum_fields + var_pop: feemodel_params_var_pop_fields + var_samp: feemodel_params_var_samp_fields + variance: feemodel_params_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input feemodel_params_append_input { + params: jsonb +} + +"""aggregate avg on columns""" +type feemodel_params_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "feemodel_params". All fields are combined with a logical 'AND'. +""" +input feemodel_params_bool_exp { + _and: [feemodel_params_bool_exp!] + _not: feemodel_params_bool_exp + _or: [feemodel_params_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + params: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "feemodel_params" +""" +enum feemodel_params_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + feemodel_params_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input feemodel_params_delete_at_path_input { + params: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input feemodel_params_delete_elem_input { + params: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input feemodel_params_delete_key_input { + params: String +} + +""" +input type for incrementing numeric columns in table "feemodel_params" +""" +input feemodel_params_inc_input { + height: bigint +} + +""" +input type for inserting data into table "feemodel_params" +""" +input feemodel_params_insert_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate max on columns""" +type feemodel_params_max_fields { + height: bigint +} + +"""aggregate min on columns""" +type feemodel_params_min_fields { + height: bigint +} + +""" +response of any mutation on the table "feemodel_params" +""" +type feemodel_params_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [feemodel_params!]! +} + +""" +on_conflict condition type for table "feemodel_params" +""" +input feemodel_params_on_conflict { + constraint: feemodel_params_constraint! + update_columns: [feemodel_params_update_column!]! = [] + where: feemodel_params_bool_exp +} + +"""Ordering options when selecting data from "feemodel_params".""" +input feemodel_params_order_by { + height: order_by + one_row_id: order_by + params: order_by +} + +"""primary key columns input for table: feemodel_params""" +input feemodel_params_pk_columns_input { + one_row_id: Boolean! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input feemodel_params_prepend_input { + params: jsonb +} + +""" +select columns of table "feemodel_params" +""" +enum feemodel_params_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +""" +input type for updating data in table "feemodel_params" +""" +input feemodel_params_set_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate stddev on columns""" +type feemodel_params_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type feemodel_params_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type feemodel_params_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "feemodel_params" +""" +input feemodel_params_stream_cursor_input { + """Stream column input with initial value""" + initial_value: feemodel_params_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input feemodel_params_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate sum on columns""" +type feemodel_params_sum_fields { + height: bigint +} + +""" +update columns of table "feemodel_params" +""" +enum feemodel_params_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +input feemodel_params_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: feemodel_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: feemodel_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: feemodel_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: feemodel_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: feemodel_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: feemodel_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: feemodel_params_set_input + + """filter the rows which have to be updated""" + where: feemodel_params_bool_exp! +} + +"""aggregate var_pop on columns""" +type feemodel_params_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type feemodel_params_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type feemodel_params_variance_fields { + height: Float +} + +""" +columns and relationships of "genesis" +""" +type genesis { + chain_id: String! + initial_height: bigint! + one_row_id: Boolean! + time: timestamp! +} + +""" +aggregated selection of "genesis" +""" +type genesis_aggregate { + aggregate: genesis_aggregate_fields + nodes: [genesis!]! +} + +""" +aggregate fields of "genesis" +""" +type genesis_aggregate_fields { + avg: genesis_avg_fields + count(columns: [genesis_select_column!], distinct: Boolean): Int! + max: genesis_max_fields + min: genesis_min_fields + stddev: genesis_stddev_fields + stddev_pop: genesis_stddev_pop_fields + stddev_samp: genesis_stddev_samp_fields + sum: genesis_sum_fields + var_pop: genesis_var_pop_fields + var_samp: genesis_var_samp_fields + variance: genesis_variance_fields +} + +"""aggregate avg on columns""" +type genesis_avg_fields { + initial_height: Float +} + +""" +Boolean expression to filter rows from the table "genesis". All fields are combined with a logical 'AND'. +""" +input genesis_bool_exp { + _and: [genesis_bool_exp!] + _not: genesis_bool_exp + _or: [genesis_bool_exp!] + chain_id: String_comparison_exp + initial_height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + time: timestamp_comparison_exp +} + +""" +unique or primary key constraints on table "genesis" +""" +enum genesis_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + genesis_pkey +} + +""" +input type for incrementing numeric columns in table "genesis" +""" +input genesis_inc_input { + initial_height: bigint +} + +""" +input type for inserting data into table "genesis" +""" +input genesis_insert_input { + chain_id: String + initial_height: bigint + one_row_id: Boolean + time: timestamp +} + +"""aggregate max on columns""" +type genesis_max_fields { + chain_id: String + initial_height: bigint + time: timestamp +} + +"""aggregate min on columns""" +type genesis_min_fields { + chain_id: String + initial_height: bigint + time: timestamp +} + +""" +response of any mutation on the table "genesis" +""" +type genesis_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [genesis!]! +} + +""" +on_conflict condition type for table "genesis" +""" +input genesis_on_conflict { + constraint: genesis_constraint! + update_columns: [genesis_update_column!]! = [] + where: genesis_bool_exp +} + +"""Ordering options when selecting data from "genesis".""" +input genesis_order_by { + chain_id: order_by + initial_height: order_by + one_row_id: order_by + time: order_by +} + +"""primary key columns input for table: genesis""" +input genesis_pk_columns_input { + one_row_id: Boolean! +} + +""" +select columns of table "genesis" +""" +enum genesis_select_column { + """column name""" + chain_id + + """column name""" + initial_height + + """column name""" + one_row_id + + """column name""" + time +} + +""" +input type for updating data in table "genesis" +""" +input genesis_set_input { + chain_id: String + initial_height: bigint + one_row_id: Boolean + time: timestamp +} + +"""aggregate stddev on columns""" +type genesis_stddev_fields { + initial_height: Float +} + +"""aggregate stddev_pop on columns""" +type genesis_stddev_pop_fields { + initial_height: Float +} + +"""aggregate stddev_samp on columns""" +type genesis_stddev_samp_fields { + initial_height: Float +} + +""" +Streaming cursor of the table "genesis" +""" +input genesis_stream_cursor_input { + """Stream column input with initial value""" + initial_value: genesis_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input genesis_stream_cursor_value_input { + chain_id: String + initial_height: bigint + one_row_id: Boolean + time: timestamp +} + +"""aggregate sum on columns""" +type genesis_sum_fields { + initial_height: bigint +} + +""" +update columns of table "genesis" +""" +enum genesis_update_column { + """column name""" + chain_id + + """column name""" + initial_height + + """column name""" + one_row_id + + """column name""" + time +} + +input genesis_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: genesis_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: genesis_set_input + + """filter the rows which have to be updated""" + where: genesis_bool_exp! +} + +"""aggregate var_pop on columns""" +type genesis_var_pop_fields { + initial_height: Float +} + +"""aggregate var_samp on columns""" +type genesis_var_samp_fields { + initial_height: Float +} + +"""aggregate variance on columns""" +type genesis_variance_fields { + initial_height: Float +} + +""" +columns and relationships of "gov_params" +""" +type gov_params { + height: bigint! + one_row_id: Boolean! + params( + """JSON select path""" + path: String + ): jsonb! +} + +""" +aggregated selection of "gov_params" +""" +type gov_params_aggregate { + aggregate: gov_params_aggregate_fields + nodes: [gov_params!]! +} + +""" +aggregate fields of "gov_params" +""" +type gov_params_aggregate_fields { + avg: gov_params_avg_fields + count(columns: [gov_params_select_column!], distinct: Boolean): Int! + max: gov_params_max_fields + min: gov_params_min_fields + stddev: gov_params_stddev_fields + stddev_pop: gov_params_stddev_pop_fields + stddev_samp: gov_params_stddev_samp_fields + sum: gov_params_sum_fields + var_pop: gov_params_var_pop_fields + var_samp: gov_params_var_samp_fields + variance: gov_params_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input gov_params_append_input { + params: jsonb +} + +"""aggregate avg on columns""" +type gov_params_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "gov_params". All fields are combined with a logical 'AND'. +""" +input gov_params_bool_exp { + _and: [gov_params_bool_exp!] + _not: gov_params_bool_exp + _or: [gov_params_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + params: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "gov_params" +""" +enum gov_params_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + gov_params_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input gov_params_delete_at_path_input { + params: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input gov_params_delete_elem_input { + params: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input gov_params_delete_key_input { + params: String +} + +""" +input type for incrementing numeric columns in table "gov_params" +""" +input gov_params_inc_input { + height: bigint +} + +""" +input type for inserting data into table "gov_params" +""" +input gov_params_insert_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate max on columns""" +type gov_params_max_fields { + height: bigint +} + +"""aggregate min on columns""" +type gov_params_min_fields { + height: bigint +} + +""" +response of any mutation on the table "gov_params" +""" +type gov_params_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [gov_params!]! +} + +""" +on_conflict condition type for table "gov_params" +""" +input gov_params_on_conflict { + constraint: gov_params_constraint! + update_columns: [gov_params_update_column!]! = [] + where: gov_params_bool_exp +} + +"""Ordering options when selecting data from "gov_params".""" +input gov_params_order_by { + height: order_by + one_row_id: order_by + params: order_by +} + +"""primary key columns input for table: gov_params""" +input gov_params_pk_columns_input { + one_row_id: Boolean! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input gov_params_prepend_input { + params: jsonb +} + +""" +select columns of table "gov_params" +""" +enum gov_params_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +""" +input type for updating data in table "gov_params" +""" +input gov_params_set_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate stddev on columns""" +type gov_params_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type gov_params_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type gov_params_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "gov_params" +""" +input gov_params_stream_cursor_input { + """Stream column input with initial value""" + initial_value: gov_params_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input gov_params_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate sum on columns""" +type gov_params_sum_fields { + height: bigint +} + +""" +update columns of table "gov_params" +""" +enum gov_params_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +input gov_params_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: gov_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: gov_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: gov_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: gov_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: gov_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: gov_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: gov_params_set_input + + """filter the rows which have to be updated""" + where: gov_params_bool_exp! +} + +"""aggregate var_pop on columns""" +type gov_params_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type gov_params_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type gov_params_variance_fields { + height: Float +} + +""" +columns and relationships of "inflation" +""" +type inflation { + height: bigint! + one_row_id: Boolean! + value: numeric! +} + +""" +aggregated selection of "inflation" +""" +type inflation_aggregate { + aggregate: inflation_aggregate_fields + nodes: [inflation!]! +} + +""" +aggregate fields of "inflation" +""" +type inflation_aggregate_fields { + avg: inflation_avg_fields + count(columns: [inflation_select_column!], distinct: Boolean): Int! + max: inflation_max_fields + min: inflation_min_fields + stddev: inflation_stddev_fields + stddev_pop: inflation_stddev_pop_fields + stddev_samp: inflation_stddev_samp_fields + sum: inflation_sum_fields + var_pop: inflation_var_pop_fields + var_samp: inflation_var_samp_fields + variance: inflation_variance_fields +} + +"""aggregate avg on columns""" +type inflation_avg_fields { + height: Float + value: Float +} + +""" +Boolean expression to filter rows from the table "inflation". All fields are combined with a logical 'AND'. +""" +input inflation_bool_exp { + _and: [inflation_bool_exp!] + _not: inflation_bool_exp + _or: [inflation_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + value: numeric_comparison_exp +} + +""" +unique or primary key constraints on table "inflation" +""" +enum inflation_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + inflation_pkey +} + +""" +input type for incrementing numeric columns in table "inflation" +""" +input inflation_inc_input { + height: bigint + value: numeric +} + +""" +input type for inserting data into table "inflation" +""" +input inflation_insert_input { + height: bigint + one_row_id: Boolean + value: numeric +} + +"""aggregate max on columns""" +type inflation_max_fields { + height: bigint + value: numeric +} + +"""aggregate min on columns""" +type inflation_min_fields { + height: bigint + value: numeric +} + +""" +response of any mutation on the table "inflation" +""" +type inflation_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [inflation!]! +} + +""" +on_conflict condition type for table "inflation" +""" +input inflation_on_conflict { + constraint: inflation_constraint! + update_columns: [inflation_update_column!]! = [] + where: inflation_bool_exp +} + +"""Ordering options when selecting data from "inflation".""" +input inflation_order_by { + height: order_by + one_row_id: order_by + value: order_by +} + +"""primary key columns input for table: inflation""" +input inflation_pk_columns_input { + one_row_id: Boolean! +} + +""" +select columns of table "inflation" +""" +enum inflation_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + value +} + +""" +input type for updating data in table "inflation" +""" +input inflation_set_input { + height: bigint + one_row_id: Boolean + value: numeric +} + +"""aggregate stddev on columns""" +type inflation_stddev_fields { + height: Float + value: Float +} + +"""aggregate stddev_pop on columns""" +type inflation_stddev_pop_fields { + height: Float + value: Float +} + +"""aggregate stddev_samp on columns""" +type inflation_stddev_samp_fields { + height: Float + value: Float +} + +""" +Streaming cursor of the table "inflation" +""" +input inflation_stream_cursor_input { + """Stream column input with initial value""" + initial_value: inflation_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input inflation_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + value: numeric +} + +"""aggregate sum on columns""" +type inflation_sum_fields { + height: bigint + value: numeric +} + +""" +update columns of table "inflation" +""" +enum inflation_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + value +} + +input inflation_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: inflation_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: inflation_set_input + + """filter the rows which have to be updated""" + where: inflation_bool_exp! +} + +"""aggregate var_pop on columns""" +type inflation_var_pop_fields { + height: Float + value: Float +} + +"""aggregate var_samp on columns""" +type inflation_var_samp_fields { + height: Float + value: Float +} + +"""aggregate variance on columns""" +type inflation_variance_fields { + height: Float + value: Float +} + +scalar json + +""" +Boolean expression to compare columns of type "json". All fields are combined with logical 'AND'. +""" +input json_comparison_exp { + _eq: json + _gt: json + _gte: json + _in: [json!] + _is_null: Boolean + _lt: json + _lte: json + _neq: json + _nin: [json!] +} + +scalar jsonb + +input jsonb_cast_exp { + String: String_comparison_exp +} + +""" +Boolean expression to compare columns of type "jsonb". All fields are combined with logical 'AND'. +""" +input jsonb_comparison_exp { + _cast: jsonb_cast_exp + + """is the column contained in the given json value""" + _contained_in: jsonb + + """does the column contain the given json value at the top level""" + _contains: jsonb + _eq: jsonb + _gt: jsonb + _gte: jsonb + + """does the string exist as a top-level key in the column""" + _has_key: String + + """do all of these strings exist as top-level keys in the column""" + _has_keys_all: [String!] + + """do any of these strings exist as top-level keys in the column""" + _has_keys_any: [String!] + _in: [jsonb!] + _is_null: Boolean + _lt: jsonb + _lte: jsonb + _neq: jsonb + _nin: [jsonb!] +} + +""" +columns and relationships of "message" +""" +type message { + height: bigint! + index: bigint! + involved_accounts_addresses: [String!]! + partition_id: bigint! + + """An object relationship""" + transaction: transaction + transaction_hash: String! + type: String! + value( + """JSON select path""" + path: String + ): json! +} + +""" +aggregated selection of "message" +""" +type message_aggregate { + aggregate: message_aggregate_fields + nodes: [message!]! +} + +""" +aggregate fields of "message" +""" +type message_aggregate_fields { + avg: message_avg_fields + count(columns: [message_select_column!], distinct: Boolean): Int! + max: message_max_fields + min: message_min_fields + stddev: message_stddev_fields + stddev_pop: message_stddev_pop_fields + stddev_samp: message_stddev_samp_fields + sum: message_sum_fields + var_pop: message_var_pop_fields + var_samp: message_var_samp_fields + variance: message_variance_fields +} + +"""aggregate avg on columns""" +type message_avg_fields { + height: Float + index: Float + partition_id: Float +} + +""" +Boolean expression to filter rows from the table "message". All fields are combined with a logical 'AND'. +""" +input message_bool_exp { + _and: [message_bool_exp!] + _not: message_bool_exp + _or: [message_bool_exp!] + height: bigint_comparison_exp + index: bigint_comparison_exp + involved_accounts_addresses: String_array_comparison_exp + partition_id: bigint_comparison_exp + transaction: transaction_bool_exp + transaction_hash: String_comparison_exp + type: String_comparison_exp + value: json_comparison_exp +} + +""" +unique or primary key constraints on table "message" +""" +enum message_constraint { + """ + unique or primary key constraint on columns "index", "partition_id", "transaction_hash" + """ + unique_message_per_tx +} + +""" +input type for incrementing numeric columns in table "message" +""" +input message_inc_input { + height: bigint + index: bigint + partition_id: bigint +} + +""" +input type for inserting data into table "message" +""" +input message_insert_input { + height: bigint + index: bigint + involved_accounts_addresses: [String!] + partition_id: bigint + transaction: transaction_obj_rel_insert_input + transaction_hash: String + type: String + value: json +} + +"""aggregate max on columns""" +type message_max_fields { + height: bigint + index: bigint + involved_accounts_addresses: [String!] + partition_id: bigint + transaction_hash: String + type: String +} + +"""aggregate min on columns""" +type message_min_fields { + height: bigint + index: bigint + involved_accounts_addresses: [String!] + partition_id: bigint + transaction_hash: String + type: String +} + +""" +response of any mutation on the table "message" +""" +type message_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [message!]! +} + +""" +on_conflict condition type for table "message" +""" +input message_on_conflict { + constraint: message_constraint! + update_columns: [message_update_column!]! = [] + where: message_bool_exp +} + +"""Ordering options when selecting data from "message".""" +input message_order_by { + height: order_by + index: order_by + involved_accounts_addresses: order_by + partition_id: order_by + transaction: transaction_order_by + transaction_hash: order_by + type: order_by + value: order_by +} + +""" +select columns of table "message" +""" +enum message_select_column { + """column name""" + height + + """column name""" + index + + """column name""" + involved_accounts_addresses + + """column name""" + partition_id + + """column name""" + transaction_hash + + """column name""" + type + + """column name""" + value +} + +""" +input type for updating data in table "message" +""" +input message_set_input { + height: bigint + index: bigint + involved_accounts_addresses: [String!] + partition_id: bigint + transaction_hash: String + type: String + value: json +} + +"""aggregate stddev on columns""" +type message_stddev_fields { + height: Float + index: Float + partition_id: Float +} + +"""aggregate stddev_pop on columns""" +type message_stddev_pop_fields { + height: Float + index: Float + partition_id: Float +} + +"""aggregate stddev_samp on columns""" +type message_stddev_samp_fields { + height: Float + index: Float + partition_id: Float +} + +""" +Streaming cursor of the table "message" +""" +input message_stream_cursor_input { + """Stream column input with initial value""" + initial_value: message_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input message_stream_cursor_value_input { + height: bigint + index: bigint + involved_accounts_addresses: [String!] + partition_id: bigint + transaction_hash: String + type: String + value: json +} + +"""aggregate sum on columns""" +type message_sum_fields { + height: bigint + index: bigint + partition_id: bigint +} + +""" +update columns of table "message" +""" +enum message_update_column { + """column name""" + height + + """column name""" + index + + """column name""" + involved_accounts_addresses + + """column name""" + partition_id + + """column name""" + transaction_hash + + """column name""" + type + + """column name""" + value +} + +input message_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: message_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: message_set_input + + """filter the rows which have to be updated""" + where: message_bool_exp! +} + +"""aggregate var_pop on columns""" +type message_var_pop_fields { + height: Float + index: Float + partition_id: Float +} + +"""aggregate var_samp on columns""" +type message_var_samp_fields { + height: Float + index: Float + partition_id: Float +} + +"""aggregate variance on columns""" +type message_variance_fields { + height: Float + index: Float + partition_id: Float +} + +input messages_by_address_args { + addresses: _text + limit: bigint + offset: bigint + types: _text +} + +""" +columns and relationships of "mint_params" +""" +type mint_params { + height: bigint! + one_row_id: Boolean! + params( + """JSON select path""" + path: String + ): jsonb! +} + +""" +aggregated selection of "mint_params" +""" +type mint_params_aggregate { + aggregate: mint_params_aggregate_fields + nodes: [mint_params!]! +} + +""" +aggregate fields of "mint_params" +""" +type mint_params_aggregate_fields { + avg: mint_params_avg_fields + count(columns: [mint_params_select_column!], distinct: Boolean): Int! + max: mint_params_max_fields + min: mint_params_min_fields + stddev: mint_params_stddev_fields + stddev_pop: mint_params_stddev_pop_fields + stddev_samp: mint_params_stddev_samp_fields + sum: mint_params_sum_fields + var_pop: mint_params_var_pop_fields + var_samp: mint_params_var_samp_fields + variance: mint_params_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input mint_params_append_input { + params: jsonb +} + +"""aggregate avg on columns""" +type mint_params_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "mint_params". All fields are combined with a logical 'AND'. +""" +input mint_params_bool_exp { + _and: [mint_params_bool_exp!] + _not: mint_params_bool_exp + _or: [mint_params_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + params: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "mint_params" +""" +enum mint_params_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + mint_params_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input mint_params_delete_at_path_input { + params: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input mint_params_delete_elem_input { + params: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input mint_params_delete_key_input { + params: String +} + +""" +input type for incrementing numeric columns in table "mint_params" +""" +input mint_params_inc_input { + height: bigint +} + +""" +input type for inserting data into table "mint_params" +""" +input mint_params_insert_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate max on columns""" +type mint_params_max_fields { + height: bigint +} + +"""aggregate min on columns""" +type mint_params_min_fields { + height: bigint +} + +""" +response of any mutation on the table "mint_params" +""" +type mint_params_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [mint_params!]! +} + +""" +on_conflict condition type for table "mint_params" +""" +input mint_params_on_conflict { + constraint: mint_params_constraint! + update_columns: [mint_params_update_column!]! = [] + where: mint_params_bool_exp +} + +"""Ordering options when selecting data from "mint_params".""" +input mint_params_order_by { + height: order_by + one_row_id: order_by + params: order_by +} + +"""primary key columns input for table: mint_params""" +input mint_params_pk_columns_input { + one_row_id: Boolean! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input mint_params_prepend_input { + params: jsonb +} + +""" +select columns of table "mint_params" +""" +enum mint_params_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +""" +input type for updating data in table "mint_params" +""" +input mint_params_set_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate stddev on columns""" +type mint_params_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type mint_params_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type mint_params_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "mint_params" +""" +input mint_params_stream_cursor_input { + """Stream column input with initial value""" + initial_value: mint_params_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input mint_params_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate sum on columns""" +type mint_params_sum_fields { + height: bigint +} + +""" +update columns of table "mint_params" +""" +enum mint_params_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +input mint_params_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: mint_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: mint_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: mint_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: mint_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: mint_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: mint_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: mint_params_set_input + + """filter the rows which have to be updated""" + where: mint_params_bool_exp! +} + +"""aggregate var_pop on columns""" +type mint_params_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type mint_params_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type mint_params_variance_fields { + height: Float +} + +""" +columns and relationships of "modules" +""" +type modules { + module_name: String! +} + +""" +aggregated selection of "modules" +""" +type modules_aggregate { + aggregate: modules_aggregate_fields + nodes: [modules!]! +} + +""" +aggregate fields of "modules" +""" +type modules_aggregate_fields { + count(columns: [modules_select_column!], distinct: Boolean): Int! + max: modules_max_fields + min: modules_min_fields +} + +""" +Boolean expression to filter rows from the table "modules". All fields are combined with a logical 'AND'. +""" +input modules_bool_exp { + _and: [modules_bool_exp!] + _not: modules_bool_exp + _or: [modules_bool_exp!] + module_name: String_comparison_exp +} + +""" +unique or primary key constraints on table "modules" +""" +enum modules_constraint { + """ + unique or primary key constraint on columns "module_name" + """ + modules_pkey +} + +""" +input type for inserting data into table "modules" +""" +input modules_insert_input { + module_name: String +} + +"""aggregate max on columns""" +type modules_max_fields { + module_name: String +} + +"""aggregate min on columns""" +type modules_min_fields { + module_name: String +} + +""" +response of any mutation on the table "modules" +""" +type modules_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [modules!]! +} + +""" +on_conflict condition type for table "modules" +""" +input modules_on_conflict { + constraint: modules_constraint! + update_columns: [modules_update_column!]! = [] + where: modules_bool_exp +} + +"""Ordering options when selecting data from "modules".""" +input modules_order_by { + module_name: order_by +} + +"""primary key columns input for table: modules""" +input modules_pk_columns_input { + module_name: String! +} + +""" +select columns of table "modules" +""" +enum modules_select_column { + """column name""" + module_name +} + +""" +input type for updating data in table "modules" +""" +input modules_set_input { + module_name: String +} + +""" +Streaming cursor of the table "modules" +""" +input modules_stream_cursor_input { + """Stream column input with initial value""" + initial_value: modules_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input modules_stream_cursor_value_input { + module_name: String +} + +""" +update columns of table "modules" +""" +enum modules_update_column { + """column name""" + module_name +} + +input modules_updates { + """sets the columns of the filtered rows to the given values""" + _set: modules_set_input + + """filter the rows which have to be updated""" + where: modules_bool_exp! +} + +"""mutation root""" +type mutation_root { + """ + delete data from the table: "account" + """ + delete_account( + """filter the rows which have to be deleted""" + where: account_bool_exp! + ): account_mutation_response + + """ + delete single row from the table: "account" + """ + delete_account_by_pk(address: String!): account + + """ + delete data from the table: "account_denom_balance" + """ + delete_account_denom_balance( + """filter the rows which have to be deleted""" + where: account_denom_balance_bool_exp! + ): account_denom_balance_mutation_response + + """ + delete single row from the table: "account_denom_balance" + """ + delete_account_denom_balance_by_pk(address: String!, denom: String!): account_denom_balance + + """ + delete data from the table: "assetft_params" + """ + delete_assetft_params( + """filter the rows which have to be deleted""" + where: assetft_params_bool_exp! + ): assetft_params_mutation_response + + """ + delete single row from the table: "assetft_params" + """ + delete_assetft_params_by_pk(one_row_id: Boolean!): assetft_params + + """ + delete data from the table: "assetnft_params" + """ + delete_assetnft_params( + """filter the rows which have to be deleted""" + where: assetnft_params_bool_exp! + ): assetnft_params_mutation_response + + """ + delete single row from the table: "assetnft_params" + """ + delete_assetnft_params_by_pk(one_row_id: Boolean!): assetnft_params + + """ + delete data from the table: "auth_params" + """ + delete_auth_params( + """filter the rows which have to be deleted""" + where: auth_params_bool_exp! + ): auth_params_mutation_response + + """ + delete single row from the table: "auth_params" + """ + delete_auth_params_by_pk(one_row_id: Boolean!): auth_params + + """ + delete data from the table: "average_block_time_from_genesis" + """ + delete_average_block_time_from_genesis( + """filter the rows which have to be deleted""" + where: average_block_time_from_genesis_bool_exp! + ): average_block_time_from_genesis_mutation_response + + """ + delete single row from the table: "average_block_time_from_genesis" + """ + delete_average_block_time_from_genesis_by_pk(one_row_id: Boolean!): average_block_time_from_genesis + + """ + delete data from the table: "average_block_time_per_day" + """ + delete_average_block_time_per_day( + """filter the rows which have to be deleted""" + where: average_block_time_per_day_bool_exp! + ): average_block_time_per_day_mutation_response + + """ + delete single row from the table: "average_block_time_per_day" + """ + delete_average_block_time_per_day_by_pk(one_row_id: Boolean!): average_block_time_per_day + + """ + delete data from the table: "average_block_time_per_hour" + """ + delete_average_block_time_per_hour( + """filter the rows which have to be deleted""" + where: average_block_time_per_hour_bool_exp! + ): average_block_time_per_hour_mutation_response + + """ + delete single row from the table: "average_block_time_per_hour" + """ + delete_average_block_time_per_hour_by_pk(one_row_id: Boolean!): average_block_time_per_hour + + """ + delete data from the table: "average_block_time_per_minute" + """ + delete_average_block_time_per_minute( + """filter the rows which have to be deleted""" + where: average_block_time_per_minute_bool_exp! + ): average_block_time_per_minute_mutation_response + + """ + delete single row from the table: "average_block_time_per_minute" + """ + delete_average_block_time_per_minute_by_pk(one_row_id: Boolean!): average_block_time_per_minute + + """ + delete data from the table: "block" + """ + delete_block( + """filter the rows which have to be deleted""" + where: block_bool_exp! + ): block_mutation_response + + """ + delete single row from the table: "block" + """ + delete_block_by_pk(height: bigint!): block + + """ + delete data from the table: "community_pool" + """ + delete_community_pool( + """filter the rows which have to be deleted""" + where: community_pool_bool_exp! + ): community_pool_mutation_response + + """ + delete single row from the table: "community_pool" + """ + delete_community_pool_by_pk(one_row_id: Boolean!): community_pool + + """ + delete data from the table: "customparams_params" + """ + delete_customparams_params( + """filter the rows which have to be deleted""" + where: customparams_params_bool_exp! + ): customparams_params_mutation_response + + """ + delete single row from the table: "customparams_params" + """ + delete_customparams_params_by_pk(one_row_id: Boolean!): customparams_params + + """ + delete data from the table: "dex_params" + """ + delete_dex_params( + """filter the rows which have to be deleted""" + where: dex_params_bool_exp! + ): dex_params_mutation_response + + """ + delete single row from the table: "dex_params" + """ + delete_dex_params_by_pk(one_row_id: Boolean!): dex_params + + """ + delete data from the table: "distribution_params" + """ + delete_distribution_params( + """filter the rows which have to be deleted""" + where: distribution_params_bool_exp! + ): distribution_params_mutation_response + + """ + delete single row from the table: "distribution_params" + """ + delete_distribution_params_by_pk(one_row_id: Boolean!): distribution_params + + """ + delete data from the table: "double_sign_evidence" + """ + delete_double_sign_evidence( + """filter the rows which have to be deleted""" + where: double_sign_evidence_bool_exp! + ): double_sign_evidence_mutation_response + + """ + delete data from the table: "double_sign_vote" + """ + delete_double_sign_vote( + """filter the rows which have to be deleted""" + where: double_sign_vote_bool_exp! + ): double_sign_vote_mutation_response + + """ + delete single row from the table: "double_sign_vote" + """ + delete_double_sign_vote_by_pk(id: Int!): double_sign_vote + + """ + delete data from the table: "fee_grant_allowance" + """ + delete_fee_grant_allowance( + """filter the rows which have to be deleted""" + where: fee_grant_allowance_bool_exp! + ): fee_grant_allowance_mutation_response + + """ + delete single row from the table: "fee_grant_allowance" + """ + delete_fee_grant_allowance_by_pk(id: Int!): fee_grant_allowance + + """ + delete data from the table: "feemodel_params" + """ + delete_feemodel_params( + """filter the rows which have to be deleted""" + where: feemodel_params_bool_exp! + ): feemodel_params_mutation_response + + """ + delete single row from the table: "feemodel_params" + """ + delete_feemodel_params_by_pk(one_row_id: Boolean!): feemodel_params + + """ + delete data from the table: "genesis" + """ + delete_genesis( + """filter the rows which have to be deleted""" + where: genesis_bool_exp! + ): genesis_mutation_response + + """ + delete single row from the table: "genesis" + """ + delete_genesis_by_pk(one_row_id: Boolean!): genesis + + """ + delete data from the table: "gov_params" + """ + delete_gov_params( + """filter the rows which have to be deleted""" + where: gov_params_bool_exp! + ): gov_params_mutation_response + + """ + delete single row from the table: "gov_params" + """ + delete_gov_params_by_pk(one_row_id: Boolean!): gov_params + + """ + delete data from the table: "inflation" + """ + delete_inflation( + """filter the rows which have to be deleted""" + where: inflation_bool_exp! + ): inflation_mutation_response + + """ + delete single row from the table: "inflation" + """ + delete_inflation_by_pk(one_row_id: Boolean!): inflation + + """ + delete data from the table: "message" + """ + delete_message( + """filter the rows which have to be deleted""" + where: message_bool_exp! + ): message_mutation_response + + """ + delete data from the table: "mint_params" + """ + delete_mint_params( + """filter the rows which have to be deleted""" + where: mint_params_bool_exp! + ): mint_params_mutation_response + + """ + delete single row from the table: "mint_params" + """ + delete_mint_params_by_pk(one_row_id: Boolean!): mint_params + + """ + delete data from the table: "modules" + """ + delete_modules( + """filter the rows which have to be deleted""" + where: modules_bool_exp! + ): modules_mutation_response + + """ + delete single row from the table: "modules" + """ + delete_modules_by_pk(module_name: String!): modules + + """ + delete data from the table: "pre_commit" + """ + delete_pre_commit( + """filter the rows which have to be deleted""" + where: pre_commit_bool_exp! + ): pre_commit_mutation_response + + """ + delete data from the table: "proposal" + """ + delete_proposal( + """filter the rows which have to be deleted""" + where: proposal_bool_exp! + ): proposal_mutation_response + + """ + delete single row from the table: "proposal" + """ + delete_proposal_by_pk(id: Int!): proposal + + """ + delete data from the table: "proposal_deposit" + """ + delete_proposal_deposit( + """filter the rows which have to be deleted""" + where: proposal_deposit_bool_exp! + ): proposal_deposit_mutation_response + + """ + delete data from the table: "proposal_staking_pool_snapshot" + """ + delete_proposal_staking_pool_snapshot( + """filter the rows which have to be deleted""" + where: proposal_staking_pool_snapshot_bool_exp! + ): proposal_staking_pool_snapshot_mutation_response + + """ + delete single row from the table: "proposal_staking_pool_snapshot" + """ + delete_proposal_staking_pool_snapshot_by_pk(proposal_id: Int!): proposal_staking_pool_snapshot + + """ + delete data from the table: "proposal_tally_result" + """ + delete_proposal_tally_result( + """filter the rows which have to be deleted""" + where: proposal_tally_result_bool_exp! + ): proposal_tally_result_mutation_response + + """ + delete single row from the table: "proposal_tally_result" + """ + delete_proposal_tally_result_by_pk(proposal_id: Int!): proposal_tally_result + + """ + delete data from the table: "proposal_validator_status_snapshot" + """ + delete_proposal_validator_status_snapshot( + """filter the rows which have to be deleted""" + where: proposal_validator_status_snapshot_bool_exp! + ): proposal_validator_status_snapshot_mutation_response + + """ + delete single row from the table: "proposal_validator_status_snapshot" + """ + delete_proposal_validator_status_snapshot_by_pk(id: Int!): proposal_validator_status_snapshot + + """ + delete data from the table: "proposal_vote" + """ + delete_proposal_vote( + """filter the rows which have to be deleted""" + where: proposal_vote_bool_exp! + ): proposal_vote_mutation_response + + """ + delete data from the table: "slashing_params" + """ + delete_slashing_params( + """filter the rows which have to be deleted""" + where: slashing_params_bool_exp! + ): slashing_params_mutation_response + + """ + delete single row from the table: "slashing_params" + """ + delete_slashing_params_by_pk(one_row_id: Boolean!): slashing_params + + """ + delete data from the table: "software_upgrade_plan" + """ + delete_software_upgrade_plan( + """filter the rows which have to be deleted""" + where: software_upgrade_plan_bool_exp! + ): software_upgrade_plan_mutation_response + + """ + delete data from the table: "staking_params" + """ + delete_staking_params( + """filter the rows which have to be deleted""" + where: staking_params_bool_exp! + ): staking_params_mutation_response + + """ + delete single row from the table: "staking_params" + """ + delete_staking_params_by_pk(one_row_id: Boolean!): staking_params + + """ + delete data from the table: "staking_pool" + """ + delete_staking_pool( + """filter the rows which have to be deleted""" + where: staking_pool_bool_exp! + ): staking_pool_mutation_response + + """ + delete single row from the table: "staking_pool" + """ + delete_staking_pool_by_pk(one_row_id: Boolean!): staking_pool + + """ + delete data from the table: "supply" + """ + delete_supply( + """filter the rows which have to be deleted""" + where: supply_bool_exp! + ): supply_mutation_response + + """ + delete single row from the table: "supply" + """ + delete_supply_by_pk(one_row_id: Boolean!): supply + + """ + delete data from the table: "token" + """ + delete_token( + """filter the rows which have to be deleted""" + where: token_bool_exp! + ): token_mutation_response + + """ + delete data from the table: "token_price" + """ + delete_token_price( + """filter the rows which have to be deleted""" + where: token_price_bool_exp! + ): token_price_mutation_response + + """ + delete single row from the table: "token_price" + """ + delete_token_price_by_pk(id: Int!): token_price + + """ + delete data from the table: "token_price_history" + """ + delete_token_price_history( + """filter the rows which have to be deleted""" + where: token_price_history_bool_exp! + ): token_price_history_mutation_response + + """ + delete single row from the table: "token_price_history" + """ + delete_token_price_history_by_pk(id: Int!): token_price_history + + """ + delete data from the table: "token_unit" + """ + delete_token_unit( + """filter the rows which have to be deleted""" + where: token_unit_bool_exp! + ): token_unit_mutation_response + + """ + delete data from the table: "transaction" + """ + delete_transaction( + """filter the rows which have to be deleted""" + where: transaction_bool_exp! + ): transaction_mutation_response + + """ + delete data from the table: "validator" + """ + delete_validator( + """filter the rows which have to be deleted""" + where: validator_bool_exp! + ): validator_mutation_response + + """ + delete single row from the table: "validator" + """ + delete_validator_by_pk(consensus_address: String!): validator + + """ + delete data from the table: "validator_commission" + """ + delete_validator_commission( + """filter the rows which have to be deleted""" + where: validator_commission_bool_exp! + ): validator_commission_mutation_response + + """ + delete single row from the table: "validator_commission" + """ + delete_validator_commission_by_pk(validator_address: String!): validator_commission + + """ + delete data from the table: "validator_description" + """ + delete_validator_description( + """filter the rows which have to be deleted""" + where: validator_description_bool_exp! + ): validator_description_mutation_response + + """ + delete single row from the table: "validator_description" + """ + delete_validator_description_by_pk(validator_address: String!): validator_description + + """ + delete data from the table: "validator_info" + """ + delete_validator_info( + """filter the rows which have to be deleted""" + where: validator_info_bool_exp! + ): validator_info_mutation_response + + """ + delete single row from the table: "validator_info" + """ + delete_validator_info_by_pk(consensus_address: String!): validator_info + + """ + delete data from the table: "validator_signing_info" + """ + delete_validator_signing_info( + """filter the rows which have to be deleted""" + where: validator_signing_info_bool_exp! + ): validator_signing_info_mutation_response + + """ + delete single row from the table: "validator_signing_info" + """ + delete_validator_signing_info_by_pk(validator_address: String!): validator_signing_info + + """ + delete data from the table: "validator_status" + """ + delete_validator_status( + """filter the rows which have to be deleted""" + where: validator_status_bool_exp! + ): validator_status_mutation_response + + """ + delete single row from the table: "validator_status" + """ + delete_validator_status_by_pk(validator_address: String!): validator_status + + """ + delete data from the table: "validator_voting_power" + """ + delete_validator_voting_power( + """filter the rows which have to be deleted""" + where: validator_voting_power_bool_exp! + ): validator_voting_power_mutation_response + + """ + delete single row from the table: "validator_voting_power" + """ + delete_validator_voting_power_by_pk(validator_address: String!): validator_voting_power + + """ + delete data from the table: "vesting_account" + """ + delete_vesting_account( + """filter the rows which have to be deleted""" + where: vesting_account_bool_exp! + ): vesting_account_mutation_response + + """ + delete single row from the table: "vesting_account" + """ + delete_vesting_account_by_pk(id: Int!): vesting_account + + """ + delete data from the table: "vesting_period" + """ + delete_vesting_period( + """filter the rows which have to be deleted""" + where: vesting_period_bool_exp! + ): vesting_period_mutation_response + + """ + insert data into the table: "account" + """ + insert_account( + """the rows to be inserted""" + objects: [account_insert_input!]! + + """upsert condition""" + on_conflict: account_on_conflict + ): account_mutation_response + + """ + insert data into the table: "account_denom_balance" + """ + insert_account_denom_balance( + """the rows to be inserted""" + objects: [account_denom_balance_insert_input!]! + + """upsert condition""" + on_conflict: account_denom_balance_on_conflict + ): account_denom_balance_mutation_response + + """ + insert a single row into the table: "account_denom_balance" + """ + insert_account_denom_balance_one( + """the row to be inserted""" + object: account_denom_balance_insert_input! + + """upsert condition""" + on_conflict: account_denom_balance_on_conflict + ): account_denom_balance + + """ + insert a single row into the table: "account" + """ + insert_account_one( + """the row to be inserted""" + object: account_insert_input! + + """upsert condition""" + on_conflict: account_on_conflict + ): account + + """ + insert data into the table: "assetft_params" + """ + insert_assetft_params( + """the rows to be inserted""" + objects: [assetft_params_insert_input!]! + + """upsert condition""" + on_conflict: assetft_params_on_conflict + ): assetft_params_mutation_response + + """ + insert a single row into the table: "assetft_params" + """ + insert_assetft_params_one( + """the row to be inserted""" + object: assetft_params_insert_input! + + """upsert condition""" + on_conflict: assetft_params_on_conflict + ): assetft_params + + """ + insert data into the table: "assetnft_params" + """ + insert_assetnft_params( + """the rows to be inserted""" + objects: [assetnft_params_insert_input!]! + + """upsert condition""" + on_conflict: assetnft_params_on_conflict + ): assetnft_params_mutation_response + + """ + insert a single row into the table: "assetnft_params" + """ + insert_assetnft_params_one( + """the row to be inserted""" + object: assetnft_params_insert_input! + + """upsert condition""" + on_conflict: assetnft_params_on_conflict + ): assetnft_params + + """ + insert data into the table: "auth_params" + """ + insert_auth_params( + """the rows to be inserted""" + objects: [auth_params_insert_input!]! + + """upsert condition""" + on_conflict: auth_params_on_conflict + ): auth_params_mutation_response + + """ + insert a single row into the table: "auth_params" + """ + insert_auth_params_one( + """the row to be inserted""" + object: auth_params_insert_input! + + """upsert condition""" + on_conflict: auth_params_on_conflict + ): auth_params + + """ + insert data into the table: "average_block_time_from_genesis" + """ + insert_average_block_time_from_genesis( + """the rows to be inserted""" + objects: [average_block_time_from_genesis_insert_input!]! + + """upsert condition""" + on_conflict: average_block_time_from_genesis_on_conflict + ): average_block_time_from_genesis_mutation_response + + """ + insert a single row into the table: "average_block_time_from_genesis" + """ + insert_average_block_time_from_genesis_one( + """the row to be inserted""" + object: average_block_time_from_genesis_insert_input! + + """upsert condition""" + on_conflict: average_block_time_from_genesis_on_conflict + ): average_block_time_from_genesis + + """ + insert data into the table: "average_block_time_per_day" + """ + insert_average_block_time_per_day( + """the rows to be inserted""" + objects: [average_block_time_per_day_insert_input!]! + + """upsert condition""" + on_conflict: average_block_time_per_day_on_conflict + ): average_block_time_per_day_mutation_response + + """ + insert a single row into the table: "average_block_time_per_day" + """ + insert_average_block_time_per_day_one( + """the row to be inserted""" + object: average_block_time_per_day_insert_input! + + """upsert condition""" + on_conflict: average_block_time_per_day_on_conflict + ): average_block_time_per_day + + """ + insert data into the table: "average_block_time_per_hour" + """ + insert_average_block_time_per_hour( + """the rows to be inserted""" + objects: [average_block_time_per_hour_insert_input!]! + + """upsert condition""" + on_conflict: average_block_time_per_hour_on_conflict + ): average_block_time_per_hour_mutation_response + + """ + insert a single row into the table: "average_block_time_per_hour" + """ + insert_average_block_time_per_hour_one( + """the row to be inserted""" + object: average_block_time_per_hour_insert_input! + + """upsert condition""" + on_conflict: average_block_time_per_hour_on_conflict + ): average_block_time_per_hour + + """ + insert data into the table: "average_block_time_per_minute" + """ + insert_average_block_time_per_minute( + """the rows to be inserted""" + objects: [average_block_time_per_minute_insert_input!]! + + """upsert condition""" + on_conflict: average_block_time_per_minute_on_conflict + ): average_block_time_per_minute_mutation_response + + """ + insert a single row into the table: "average_block_time_per_minute" + """ + insert_average_block_time_per_minute_one( + """the row to be inserted""" + object: average_block_time_per_minute_insert_input! + + """upsert condition""" + on_conflict: average_block_time_per_minute_on_conflict + ): average_block_time_per_minute + + """ + insert data into the table: "block" + """ + insert_block( + """the rows to be inserted""" + objects: [block_insert_input!]! + + """upsert condition""" + on_conflict: block_on_conflict + ): block_mutation_response + + """ + insert a single row into the table: "block" + """ + insert_block_one( + """the row to be inserted""" + object: block_insert_input! + + """upsert condition""" + on_conflict: block_on_conflict + ): block + + """ + insert data into the table: "community_pool" + """ + insert_community_pool( + """the rows to be inserted""" + objects: [community_pool_insert_input!]! + + """upsert condition""" + on_conflict: community_pool_on_conflict + ): community_pool_mutation_response + + """ + insert a single row into the table: "community_pool" + """ + insert_community_pool_one( + """the row to be inserted""" + object: community_pool_insert_input! + + """upsert condition""" + on_conflict: community_pool_on_conflict + ): community_pool + + """ + insert data into the table: "customparams_params" + """ + insert_customparams_params( + """the rows to be inserted""" + objects: [customparams_params_insert_input!]! + + """upsert condition""" + on_conflict: customparams_params_on_conflict + ): customparams_params_mutation_response + + """ + insert a single row into the table: "customparams_params" + """ + insert_customparams_params_one( + """the row to be inserted""" + object: customparams_params_insert_input! + + """upsert condition""" + on_conflict: customparams_params_on_conflict + ): customparams_params + + """ + insert data into the table: "dex_params" + """ + insert_dex_params( + """the rows to be inserted""" + objects: [dex_params_insert_input!]! + + """upsert condition""" + on_conflict: dex_params_on_conflict + ): dex_params_mutation_response + + """ + insert a single row into the table: "dex_params" + """ + insert_dex_params_one( + """the row to be inserted""" + object: dex_params_insert_input! + + """upsert condition""" + on_conflict: dex_params_on_conflict + ): dex_params + + """ + insert data into the table: "distribution_params" + """ + insert_distribution_params( + """the rows to be inserted""" + objects: [distribution_params_insert_input!]! + + """upsert condition""" + on_conflict: distribution_params_on_conflict + ): distribution_params_mutation_response + + """ + insert a single row into the table: "distribution_params" + """ + insert_distribution_params_one( + """the row to be inserted""" + object: distribution_params_insert_input! + + """upsert condition""" + on_conflict: distribution_params_on_conflict + ): distribution_params + + """ + insert data into the table: "double_sign_evidence" + """ + insert_double_sign_evidence( + """the rows to be inserted""" + objects: [double_sign_evidence_insert_input!]! + ): double_sign_evidence_mutation_response + + """ + insert a single row into the table: "double_sign_evidence" + """ + insert_double_sign_evidence_one( + """the row to be inserted""" + object: double_sign_evidence_insert_input! + ): double_sign_evidence + + """ + insert data into the table: "double_sign_vote" + """ + insert_double_sign_vote( + """the rows to be inserted""" + objects: [double_sign_vote_insert_input!]! + + """upsert condition""" + on_conflict: double_sign_vote_on_conflict + ): double_sign_vote_mutation_response + + """ + insert a single row into the table: "double_sign_vote" + """ + insert_double_sign_vote_one( + """the row to be inserted""" + object: double_sign_vote_insert_input! + + """upsert condition""" + on_conflict: double_sign_vote_on_conflict + ): double_sign_vote + + """ + insert data into the table: "fee_grant_allowance" + """ + insert_fee_grant_allowance( + """the rows to be inserted""" + objects: [fee_grant_allowance_insert_input!]! + + """upsert condition""" + on_conflict: fee_grant_allowance_on_conflict + ): fee_grant_allowance_mutation_response + + """ + insert a single row into the table: "fee_grant_allowance" + """ + insert_fee_grant_allowance_one( + """the row to be inserted""" + object: fee_grant_allowance_insert_input! + + """upsert condition""" + on_conflict: fee_grant_allowance_on_conflict + ): fee_grant_allowance + + """ + insert data into the table: "feemodel_params" + """ + insert_feemodel_params( + """the rows to be inserted""" + objects: [feemodel_params_insert_input!]! + + """upsert condition""" + on_conflict: feemodel_params_on_conflict + ): feemodel_params_mutation_response + + """ + insert a single row into the table: "feemodel_params" + """ + insert_feemodel_params_one( + """the row to be inserted""" + object: feemodel_params_insert_input! + + """upsert condition""" + on_conflict: feemodel_params_on_conflict + ): feemodel_params + + """ + insert data into the table: "genesis" + """ + insert_genesis( + """the rows to be inserted""" + objects: [genesis_insert_input!]! + + """upsert condition""" + on_conflict: genesis_on_conflict + ): genesis_mutation_response + + """ + insert a single row into the table: "genesis" + """ + insert_genesis_one( + """the row to be inserted""" + object: genesis_insert_input! + + """upsert condition""" + on_conflict: genesis_on_conflict + ): genesis + + """ + insert data into the table: "gov_params" + """ + insert_gov_params( + """the rows to be inserted""" + objects: [gov_params_insert_input!]! + + """upsert condition""" + on_conflict: gov_params_on_conflict + ): gov_params_mutation_response + + """ + insert a single row into the table: "gov_params" + """ + insert_gov_params_one( + """the row to be inserted""" + object: gov_params_insert_input! + + """upsert condition""" + on_conflict: gov_params_on_conflict + ): gov_params + + """ + insert data into the table: "inflation" + """ + insert_inflation( + """the rows to be inserted""" + objects: [inflation_insert_input!]! + + """upsert condition""" + on_conflict: inflation_on_conflict + ): inflation_mutation_response + + """ + insert a single row into the table: "inflation" + """ + insert_inflation_one( + """the row to be inserted""" + object: inflation_insert_input! + + """upsert condition""" + on_conflict: inflation_on_conflict + ): inflation + + """ + insert data into the table: "message" + """ + insert_message( + """the rows to be inserted""" + objects: [message_insert_input!]! + + """upsert condition""" + on_conflict: message_on_conflict + ): message_mutation_response + + """ + insert a single row into the table: "message" + """ + insert_message_one( + """the row to be inserted""" + object: message_insert_input! + + """upsert condition""" + on_conflict: message_on_conflict + ): message + + """ + insert data into the table: "mint_params" + """ + insert_mint_params( + """the rows to be inserted""" + objects: [mint_params_insert_input!]! + + """upsert condition""" + on_conflict: mint_params_on_conflict + ): mint_params_mutation_response + + """ + insert a single row into the table: "mint_params" + """ + insert_mint_params_one( + """the row to be inserted""" + object: mint_params_insert_input! + + """upsert condition""" + on_conflict: mint_params_on_conflict + ): mint_params + + """ + insert data into the table: "modules" + """ + insert_modules( + """the rows to be inserted""" + objects: [modules_insert_input!]! + + """upsert condition""" + on_conflict: modules_on_conflict + ): modules_mutation_response + + """ + insert a single row into the table: "modules" + """ + insert_modules_one( + """the row to be inserted""" + object: modules_insert_input! + + """upsert condition""" + on_conflict: modules_on_conflict + ): modules + + """ + insert data into the table: "pre_commit" + """ + insert_pre_commit( + """the rows to be inserted""" + objects: [pre_commit_insert_input!]! + + """upsert condition""" + on_conflict: pre_commit_on_conflict + ): pre_commit_mutation_response + + """ + insert a single row into the table: "pre_commit" + """ + insert_pre_commit_one( + """the row to be inserted""" + object: pre_commit_insert_input! + + """upsert condition""" + on_conflict: pre_commit_on_conflict + ): pre_commit + + """ + insert data into the table: "proposal" + """ + insert_proposal( + """the rows to be inserted""" + objects: [proposal_insert_input!]! + + """upsert condition""" + on_conflict: proposal_on_conflict + ): proposal_mutation_response + + """ + insert data into the table: "proposal_deposit" + """ + insert_proposal_deposit( + """the rows to be inserted""" + objects: [proposal_deposit_insert_input!]! + + """upsert condition""" + on_conflict: proposal_deposit_on_conflict + ): proposal_deposit_mutation_response + + """ + insert a single row into the table: "proposal_deposit" + """ + insert_proposal_deposit_one( + """the row to be inserted""" + object: proposal_deposit_insert_input! + + """upsert condition""" + on_conflict: proposal_deposit_on_conflict + ): proposal_deposit + + """ + insert a single row into the table: "proposal" + """ + insert_proposal_one( + """the row to be inserted""" + object: proposal_insert_input! + + """upsert condition""" + on_conflict: proposal_on_conflict + ): proposal + + """ + insert data into the table: "proposal_staking_pool_snapshot" + """ + insert_proposal_staking_pool_snapshot( + """the rows to be inserted""" + objects: [proposal_staking_pool_snapshot_insert_input!]! + + """upsert condition""" + on_conflict: proposal_staking_pool_snapshot_on_conflict + ): proposal_staking_pool_snapshot_mutation_response + + """ + insert a single row into the table: "proposal_staking_pool_snapshot" + """ + insert_proposal_staking_pool_snapshot_one( + """the row to be inserted""" + object: proposal_staking_pool_snapshot_insert_input! + + """upsert condition""" + on_conflict: proposal_staking_pool_snapshot_on_conflict + ): proposal_staking_pool_snapshot + + """ + insert data into the table: "proposal_tally_result" + """ + insert_proposal_tally_result( + """the rows to be inserted""" + objects: [proposal_tally_result_insert_input!]! + + """upsert condition""" + on_conflict: proposal_tally_result_on_conflict + ): proposal_tally_result_mutation_response + + """ + insert a single row into the table: "proposal_tally_result" + """ + insert_proposal_tally_result_one( + """the row to be inserted""" + object: proposal_tally_result_insert_input! + + """upsert condition""" + on_conflict: proposal_tally_result_on_conflict + ): proposal_tally_result + + """ + insert data into the table: "proposal_validator_status_snapshot" + """ + insert_proposal_validator_status_snapshot( + """the rows to be inserted""" + objects: [proposal_validator_status_snapshot_insert_input!]! + + """upsert condition""" + on_conflict: proposal_validator_status_snapshot_on_conflict + ): proposal_validator_status_snapshot_mutation_response + + """ + insert a single row into the table: "proposal_validator_status_snapshot" + """ + insert_proposal_validator_status_snapshot_one( + """the row to be inserted""" + object: proposal_validator_status_snapshot_insert_input! + + """upsert condition""" + on_conflict: proposal_validator_status_snapshot_on_conflict + ): proposal_validator_status_snapshot + + """ + insert data into the table: "proposal_vote" + """ + insert_proposal_vote( + """the rows to be inserted""" + objects: [proposal_vote_insert_input!]! + + """upsert condition""" + on_conflict: proposal_vote_on_conflict + ): proposal_vote_mutation_response + + """ + insert a single row into the table: "proposal_vote" + """ + insert_proposal_vote_one( + """the row to be inserted""" + object: proposal_vote_insert_input! + + """upsert condition""" + on_conflict: proposal_vote_on_conflict + ): proposal_vote + + """ + insert data into the table: "slashing_params" + """ + insert_slashing_params( + """the rows to be inserted""" + objects: [slashing_params_insert_input!]! + + """upsert condition""" + on_conflict: slashing_params_on_conflict + ): slashing_params_mutation_response + + """ + insert a single row into the table: "slashing_params" + """ + insert_slashing_params_one( + """the row to be inserted""" + object: slashing_params_insert_input! + + """upsert condition""" + on_conflict: slashing_params_on_conflict + ): slashing_params + + """ + insert data into the table: "software_upgrade_plan" + """ + insert_software_upgrade_plan( + """the rows to be inserted""" + objects: [software_upgrade_plan_insert_input!]! + + """upsert condition""" + on_conflict: software_upgrade_plan_on_conflict + ): software_upgrade_plan_mutation_response + + """ + insert a single row into the table: "software_upgrade_plan" + """ + insert_software_upgrade_plan_one( + """the row to be inserted""" + object: software_upgrade_plan_insert_input! + + """upsert condition""" + on_conflict: software_upgrade_plan_on_conflict + ): software_upgrade_plan + + """ + insert data into the table: "staking_params" + """ + insert_staking_params( + """the rows to be inserted""" + objects: [staking_params_insert_input!]! + + """upsert condition""" + on_conflict: staking_params_on_conflict + ): staking_params_mutation_response + + """ + insert a single row into the table: "staking_params" + """ + insert_staking_params_one( + """the row to be inserted""" + object: staking_params_insert_input! + + """upsert condition""" + on_conflict: staking_params_on_conflict + ): staking_params + + """ + insert data into the table: "staking_pool" + """ + insert_staking_pool( + """the rows to be inserted""" + objects: [staking_pool_insert_input!]! + + """upsert condition""" + on_conflict: staking_pool_on_conflict + ): staking_pool_mutation_response + + """ + insert a single row into the table: "staking_pool" + """ + insert_staking_pool_one( + """the row to be inserted""" + object: staking_pool_insert_input! + + """upsert condition""" + on_conflict: staking_pool_on_conflict + ): staking_pool + + """ + insert data into the table: "supply" + """ + insert_supply( + """the rows to be inserted""" + objects: [supply_insert_input!]! + + """upsert condition""" + on_conflict: supply_on_conflict + ): supply_mutation_response + + """ + insert a single row into the table: "supply" + """ + insert_supply_one( + """the row to be inserted""" + object: supply_insert_input! + + """upsert condition""" + on_conflict: supply_on_conflict + ): supply + + """ + insert data into the table: "token" + """ + insert_token( + """the rows to be inserted""" + objects: [token_insert_input!]! + + """upsert condition""" + on_conflict: token_on_conflict + ): token_mutation_response + + """ + insert a single row into the table: "token" + """ + insert_token_one( + """the row to be inserted""" + object: token_insert_input! + + """upsert condition""" + on_conflict: token_on_conflict + ): token + + """ + insert data into the table: "token_price" + """ + insert_token_price( + """the rows to be inserted""" + objects: [token_price_insert_input!]! + + """upsert condition""" + on_conflict: token_price_on_conflict + ): token_price_mutation_response + + """ + insert data into the table: "token_price_history" + """ + insert_token_price_history( + """the rows to be inserted""" + objects: [token_price_history_insert_input!]! + + """upsert condition""" + on_conflict: token_price_history_on_conflict + ): token_price_history_mutation_response + + """ + insert a single row into the table: "token_price_history" + """ + insert_token_price_history_one( + """the row to be inserted""" + object: token_price_history_insert_input! + + """upsert condition""" + on_conflict: token_price_history_on_conflict + ): token_price_history + + """ + insert a single row into the table: "token_price" + """ + insert_token_price_one( + """the row to be inserted""" + object: token_price_insert_input! + + """upsert condition""" + on_conflict: token_price_on_conflict + ): token_price + + """ + insert data into the table: "token_unit" + """ + insert_token_unit( + """the rows to be inserted""" + objects: [token_unit_insert_input!]! + + """upsert condition""" + on_conflict: token_unit_on_conflict + ): token_unit_mutation_response + + """ + insert a single row into the table: "token_unit" + """ + insert_token_unit_one( + """the row to be inserted""" + object: token_unit_insert_input! + + """upsert condition""" + on_conflict: token_unit_on_conflict + ): token_unit + + """ + insert data into the table: "transaction" + """ + insert_transaction( + """the rows to be inserted""" + objects: [transaction_insert_input!]! + + """upsert condition""" + on_conflict: transaction_on_conflict + ): transaction_mutation_response + + """ + insert a single row into the table: "transaction" + """ + insert_transaction_one( + """the row to be inserted""" + object: transaction_insert_input! + + """upsert condition""" + on_conflict: transaction_on_conflict + ): transaction + + """ + insert data into the table: "validator" + """ + insert_validator( + """the rows to be inserted""" + objects: [validator_insert_input!]! + + """upsert condition""" + on_conflict: validator_on_conflict + ): validator_mutation_response + + """ + insert data into the table: "validator_commission" + """ + insert_validator_commission( + """the rows to be inserted""" + objects: [validator_commission_insert_input!]! + + """upsert condition""" + on_conflict: validator_commission_on_conflict + ): validator_commission_mutation_response + + """ + insert a single row into the table: "validator_commission" + """ + insert_validator_commission_one( + """the row to be inserted""" + object: validator_commission_insert_input! + + """upsert condition""" + on_conflict: validator_commission_on_conflict + ): validator_commission + + """ + insert data into the table: "validator_description" + """ + insert_validator_description( + """the rows to be inserted""" + objects: [validator_description_insert_input!]! + + """upsert condition""" + on_conflict: validator_description_on_conflict + ): validator_description_mutation_response + + """ + insert a single row into the table: "validator_description" + """ + insert_validator_description_one( + """the row to be inserted""" + object: validator_description_insert_input! + + """upsert condition""" + on_conflict: validator_description_on_conflict + ): validator_description + + """ + insert data into the table: "validator_info" + """ + insert_validator_info( + """the rows to be inserted""" + objects: [validator_info_insert_input!]! + + """upsert condition""" + on_conflict: validator_info_on_conflict + ): validator_info_mutation_response + + """ + insert a single row into the table: "validator_info" + """ + insert_validator_info_one( + """the row to be inserted""" + object: validator_info_insert_input! + + """upsert condition""" + on_conflict: validator_info_on_conflict + ): validator_info + + """ + insert a single row into the table: "validator" + """ + insert_validator_one( + """the row to be inserted""" + object: validator_insert_input! + + """upsert condition""" + on_conflict: validator_on_conflict + ): validator + + """ + insert data into the table: "validator_signing_info" + """ + insert_validator_signing_info( + """the rows to be inserted""" + objects: [validator_signing_info_insert_input!]! + + """upsert condition""" + on_conflict: validator_signing_info_on_conflict + ): validator_signing_info_mutation_response + + """ + insert a single row into the table: "validator_signing_info" + """ + insert_validator_signing_info_one( + """the row to be inserted""" + object: validator_signing_info_insert_input! + + """upsert condition""" + on_conflict: validator_signing_info_on_conflict + ): validator_signing_info + + """ + insert data into the table: "validator_status" + """ + insert_validator_status( + """the rows to be inserted""" + objects: [validator_status_insert_input!]! + + """upsert condition""" + on_conflict: validator_status_on_conflict + ): validator_status_mutation_response + + """ + insert a single row into the table: "validator_status" + """ + insert_validator_status_one( + """the row to be inserted""" + object: validator_status_insert_input! + + """upsert condition""" + on_conflict: validator_status_on_conflict + ): validator_status + + """ + insert data into the table: "validator_voting_power" + """ + insert_validator_voting_power( + """the rows to be inserted""" + objects: [validator_voting_power_insert_input!]! + + """upsert condition""" + on_conflict: validator_voting_power_on_conflict + ): validator_voting_power_mutation_response + + """ + insert a single row into the table: "validator_voting_power" + """ + insert_validator_voting_power_one( + """the row to be inserted""" + object: validator_voting_power_insert_input! + + """upsert condition""" + on_conflict: validator_voting_power_on_conflict + ): validator_voting_power + + """ + insert data into the table: "vesting_account" + """ + insert_vesting_account( + """the rows to be inserted""" + objects: [vesting_account_insert_input!]! + + """upsert condition""" + on_conflict: vesting_account_on_conflict + ): vesting_account_mutation_response + + """ + insert a single row into the table: "vesting_account" + """ + insert_vesting_account_one( + """the row to be inserted""" + object: vesting_account_insert_input! + + """upsert condition""" + on_conflict: vesting_account_on_conflict + ): vesting_account + + """ + insert data into the table: "vesting_period" + """ + insert_vesting_period( + """the rows to be inserted""" + objects: [vesting_period_insert_input!]! + ): vesting_period_mutation_response + + """ + insert a single row into the table: "vesting_period" + """ + insert_vesting_period_one( + """the row to be inserted""" + object: vesting_period_insert_input! + ): vesting_period + + """ + update data of the table: "account" + """ + update_account( + """sets the columns of the filtered rows to the given values""" + _set: account_set_input + + """filter the rows which have to be updated""" + where: account_bool_exp! + ): account_mutation_response + + """ + update single row of the table: "account" + """ + update_account_by_pk( + """sets the columns of the filtered rows to the given values""" + _set: account_set_input + pk_columns: account_pk_columns_input! + ): account + + """ + update data of the table: "account_denom_balance" + """ + update_account_denom_balance( + """increments the numeric columns with given value of the filtered values""" + _inc: account_denom_balance_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: account_denom_balance_set_input + + """filter the rows which have to be updated""" + where: account_denom_balance_bool_exp! + ): account_denom_balance_mutation_response + + """ + update single row of the table: "account_denom_balance" + """ + update_account_denom_balance_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: account_denom_balance_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: account_denom_balance_set_input + pk_columns: account_denom_balance_pk_columns_input! + ): account_denom_balance + + """ + update multiples rows of table: "account_denom_balance" + """ + update_account_denom_balance_many( + """updates to execute, in order""" + updates: [account_denom_balance_updates!]! + ): [account_denom_balance_mutation_response] + + """ + update multiples rows of table: "account" + """ + update_account_many( + """updates to execute, in order""" + updates: [account_updates!]! + ): [account_mutation_response] + + """ + update data of the table: "assetft_params" + """ + update_assetft_params( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: assetft_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: assetft_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: assetft_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: assetft_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: assetft_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: assetft_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: assetft_params_set_input + + """filter the rows which have to be updated""" + where: assetft_params_bool_exp! + ): assetft_params_mutation_response + + """ + update single row of the table: "assetft_params" + """ + update_assetft_params_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: assetft_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: assetft_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: assetft_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: assetft_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: assetft_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: assetft_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: assetft_params_set_input + pk_columns: assetft_params_pk_columns_input! + ): assetft_params + + """ + update multiples rows of table: "assetft_params" + """ + update_assetft_params_many( + """updates to execute, in order""" + updates: [assetft_params_updates!]! + ): [assetft_params_mutation_response] + + """ + update data of the table: "assetnft_params" + """ + update_assetnft_params( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: assetnft_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: assetnft_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: assetnft_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: assetnft_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: assetnft_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: assetnft_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: assetnft_params_set_input + + """filter the rows which have to be updated""" + where: assetnft_params_bool_exp! + ): assetnft_params_mutation_response + + """ + update single row of the table: "assetnft_params" + """ + update_assetnft_params_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: assetnft_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: assetnft_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: assetnft_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: assetnft_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: assetnft_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: assetnft_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: assetnft_params_set_input + pk_columns: assetnft_params_pk_columns_input! + ): assetnft_params + + """ + update multiples rows of table: "assetnft_params" + """ + update_assetnft_params_many( + """updates to execute, in order""" + updates: [assetnft_params_updates!]! + ): [assetnft_params_mutation_response] + + """ + update data of the table: "auth_params" + """ + update_auth_params( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: auth_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: auth_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: auth_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: auth_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: auth_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: auth_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: auth_params_set_input + + """filter the rows which have to be updated""" + where: auth_params_bool_exp! + ): auth_params_mutation_response + + """ + update single row of the table: "auth_params" + """ + update_auth_params_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: auth_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: auth_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: auth_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: auth_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: auth_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: auth_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: auth_params_set_input + pk_columns: auth_params_pk_columns_input! + ): auth_params + + """ + update multiples rows of table: "auth_params" + """ + update_auth_params_many( + """updates to execute, in order""" + updates: [auth_params_updates!]! + ): [auth_params_mutation_response] + + """ + update data of the table: "average_block_time_from_genesis" + """ + update_average_block_time_from_genesis( + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_from_genesis_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_from_genesis_set_input + + """filter the rows which have to be updated""" + where: average_block_time_from_genesis_bool_exp! + ): average_block_time_from_genesis_mutation_response + + """ + update single row of the table: "average_block_time_from_genesis" + """ + update_average_block_time_from_genesis_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_from_genesis_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_from_genesis_set_input + pk_columns: average_block_time_from_genesis_pk_columns_input! + ): average_block_time_from_genesis + + """ + update multiples rows of table: "average_block_time_from_genesis" + """ + update_average_block_time_from_genesis_many( + """updates to execute, in order""" + updates: [average_block_time_from_genesis_updates!]! + ): [average_block_time_from_genesis_mutation_response] + + """ + update data of the table: "average_block_time_per_day" + """ + update_average_block_time_per_day( + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_per_day_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_per_day_set_input + + """filter the rows which have to be updated""" + where: average_block_time_per_day_bool_exp! + ): average_block_time_per_day_mutation_response + + """ + update single row of the table: "average_block_time_per_day" + """ + update_average_block_time_per_day_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_per_day_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_per_day_set_input + pk_columns: average_block_time_per_day_pk_columns_input! + ): average_block_time_per_day + + """ + update multiples rows of table: "average_block_time_per_day" + """ + update_average_block_time_per_day_many( + """updates to execute, in order""" + updates: [average_block_time_per_day_updates!]! + ): [average_block_time_per_day_mutation_response] + + """ + update data of the table: "average_block_time_per_hour" + """ + update_average_block_time_per_hour( + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_per_hour_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_per_hour_set_input + + """filter the rows which have to be updated""" + where: average_block_time_per_hour_bool_exp! + ): average_block_time_per_hour_mutation_response + + """ + update single row of the table: "average_block_time_per_hour" + """ + update_average_block_time_per_hour_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_per_hour_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_per_hour_set_input + pk_columns: average_block_time_per_hour_pk_columns_input! + ): average_block_time_per_hour + + """ + update multiples rows of table: "average_block_time_per_hour" + """ + update_average_block_time_per_hour_many( + """updates to execute, in order""" + updates: [average_block_time_per_hour_updates!]! + ): [average_block_time_per_hour_mutation_response] + + """ + update data of the table: "average_block_time_per_minute" + """ + update_average_block_time_per_minute( + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_per_minute_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_per_minute_set_input + + """filter the rows which have to be updated""" + where: average_block_time_per_minute_bool_exp! + ): average_block_time_per_minute_mutation_response + + """ + update single row of the table: "average_block_time_per_minute" + """ + update_average_block_time_per_minute_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: average_block_time_per_minute_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: average_block_time_per_minute_set_input + pk_columns: average_block_time_per_minute_pk_columns_input! + ): average_block_time_per_minute + + """ + update multiples rows of table: "average_block_time_per_minute" + """ + update_average_block_time_per_minute_many( + """updates to execute, in order""" + updates: [average_block_time_per_minute_updates!]! + ): [average_block_time_per_minute_mutation_response] + + """ + update data of the table: "block" + """ + update_block( + """increments the numeric columns with given value of the filtered values""" + _inc: block_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: block_set_input + + """filter the rows which have to be updated""" + where: block_bool_exp! + ): block_mutation_response + + """ + update single row of the table: "block" + """ + update_block_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: block_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: block_set_input + pk_columns: block_pk_columns_input! + ): block + + """ + update multiples rows of table: "block" + """ + update_block_many( + """updates to execute, in order""" + updates: [block_updates!]! + ): [block_mutation_response] + + """ + update data of the table: "community_pool" + """ + update_community_pool( + """increments the numeric columns with given value of the filtered values""" + _inc: community_pool_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: community_pool_set_input + + """filter the rows which have to be updated""" + where: community_pool_bool_exp! + ): community_pool_mutation_response + + """ + update single row of the table: "community_pool" + """ + update_community_pool_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: community_pool_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: community_pool_set_input + pk_columns: community_pool_pk_columns_input! + ): community_pool + + """ + update multiples rows of table: "community_pool" + """ + update_community_pool_many( + """updates to execute, in order""" + updates: [community_pool_updates!]! + ): [community_pool_mutation_response] + + """ + update data of the table: "customparams_params" + """ + update_customparams_params( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: customparams_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: customparams_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: customparams_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: customparams_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: customparams_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: customparams_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: customparams_params_set_input + + """filter the rows which have to be updated""" + where: customparams_params_bool_exp! + ): customparams_params_mutation_response + + """ + update single row of the table: "customparams_params" + """ + update_customparams_params_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: customparams_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: customparams_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: customparams_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: customparams_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: customparams_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: customparams_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: customparams_params_set_input + pk_columns: customparams_params_pk_columns_input! + ): customparams_params + + """ + update multiples rows of table: "customparams_params" + """ + update_customparams_params_many( + """updates to execute, in order""" + updates: [customparams_params_updates!]! + ): [customparams_params_mutation_response] + + """ + update data of the table: "dex_params" + """ + update_dex_params( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: dex_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: dex_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: dex_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: dex_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: dex_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: dex_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: dex_params_set_input + + """filter the rows which have to be updated""" + where: dex_params_bool_exp! + ): dex_params_mutation_response + + """ + update single row of the table: "dex_params" + """ + update_dex_params_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: dex_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: dex_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: dex_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: dex_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: dex_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: dex_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: dex_params_set_input + pk_columns: dex_params_pk_columns_input! + ): dex_params + + """ + update multiples rows of table: "dex_params" + """ + update_dex_params_many( + """updates to execute, in order""" + updates: [dex_params_updates!]! + ): [dex_params_mutation_response] + + """ + update data of the table: "distribution_params" + """ + update_distribution_params( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: distribution_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: distribution_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: distribution_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: distribution_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: distribution_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: distribution_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: distribution_params_set_input + + """filter the rows which have to be updated""" + where: distribution_params_bool_exp! + ): distribution_params_mutation_response + + """ + update single row of the table: "distribution_params" + """ + update_distribution_params_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: distribution_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: distribution_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: distribution_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: distribution_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: distribution_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: distribution_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: distribution_params_set_input + pk_columns: distribution_params_pk_columns_input! + ): distribution_params + + """ + update multiples rows of table: "distribution_params" + """ + update_distribution_params_many( + """updates to execute, in order""" + updates: [distribution_params_updates!]! + ): [distribution_params_mutation_response] + + """ + update data of the table: "double_sign_evidence" + """ + update_double_sign_evidence( + """increments the numeric columns with given value of the filtered values""" + _inc: double_sign_evidence_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: double_sign_evidence_set_input + + """filter the rows which have to be updated""" + where: double_sign_evidence_bool_exp! + ): double_sign_evidence_mutation_response + + """ + update multiples rows of table: "double_sign_evidence" + """ + update_double_sign_evidence_many( + """updates to execute, in order""" + updates: [double_sign_evidence_updates!]! + ): [double_sign_evidence_mutation_response] + + """ + update data of the table: "double_sign_vote" + """ + update_double_sign_vote( + """increments the numeric columns with given value of the filtered values""" + _inc: double_sign_vote_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: double_sign_vote_set_input + + """filter the rows which have to be updated""" + where: double_sign_vote_bool_exp! + ): double_sign_vote_mutation_response + + """ + update single row of the table: "double_sign_vote" + """ + update_double_sign_vote_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: double_sign_vote_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: double_sign_vote_set_input + pk_columns: double_sign_vote_pk_columns_input! + ): double_sign_vote + + """ + update multiples rows of table: "double_sign_vote" + """ + update_double_sign_vote_many( + """updates to execute, in order""" + updates: [double_sign_vote_updates!]! + ): [double_sign_vote_mutation_response] + + """ + update data of the table: "fee_grant_allowance" + """ + update_fee_grant_allowance( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: fee_grant_allowance_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: fee_grant_allowance_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: fee_grant_allowance_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: fee_grant_allowance_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: fee_grant_allowance_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: fee_grant_allowance_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: fee_grant_allowance_set_input + + """filter the rows which have to be updated""" + where: fee_grant_allowance_bool_exp! + ): fee_grant_allowance_mutation_response + + """ + update single row of the table: "fee_grant_allowance" + """ + update_fee_grant_allowance_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: fee_grant_allowance_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: fee_grant_allowance_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: fee_grant_allowance_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: fee_grant_allowance_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: fee_grant_allowance_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: fee_grant_allowance_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: fee_grant_allowance_set_input + pk_columns: fee_grant_allowance_pk_columns_input! + ): fee_grant_allowance + + """ + update multiples rows of table: "fee_grant_allowance" + """ + update_fee_grant_allowance_many( + """updates to execute, in order""" + updates: [fee_grant_allowance_updates!]! + ): [fee_grant_allowance_mutation_response] + + """ + update data of the table: "feemodel_params" + """ + update_feemodel_params( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: feemodel_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: feemodel_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: feemodel_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: feemodel_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: feemodel_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: feemodel_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: feemodel_params_set_input + + """filter the rows which have to be updated""" + where: feemodel_params_bool_exp! + ): feemodel_params_mutation_response + + """ + update single row of the table: "feemodel_params" + """ + update_feemodel_params_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: feemodel_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: feemodel_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: feemodel_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: feemodel_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: feemodel_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: feemodel_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: feemodel_params_set_input + pk_columns: feemodel_params_pk_columns_input! + ): feemodel_params + + """ + update multiples rows of table: "feemodel_params" + """ + update_feemodel_params_many( + """updates to execute, in order""" + updates: [feemodel_params_updates!]! + ): [feemodel_params_mutation_response] + + """ + update data of the table: "genesis" + """ + update_genesis( + """increments the numeric columns with given value of the filtered values""" + _inc: genesis_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: genesis_set_input + + """filter the rows which have to be updated""" + where: genesis_bool_exp! + ): genesis_mutation_response + + """ + update single row of the table: "genesis" + """ + update_genesis_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: genesis_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: genesis_set_input + pk_columns: genesis_pk_columns_input! + ): genesis + + """ + update multiples rows of table: "genesis" + """ + update_genesis_many( + """updates to execute, in order""" + updates: [genesis_updates!]! + ): [genesis_mutation_response] + + """ + update data of the table: "gov_params" + """ + update_gov_params( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: gov_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: gov_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: gov_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: gov_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: gov_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: gov_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: gov_params_set_input + + """filter the rows which have to be updated""" + where: gov_params_bool_exp! + ): gov_params_mutation_response + + """ + update single row of the table: "gov_params" + """ + update_gov_params_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: gov_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: gov_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: gov_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: gov_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: gov_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: gov_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: gov_params_set_input + pk_columns: gov_params_pk_columns_input! + ): gov_params + + """ + update multiples rows of table: "gov_params" + """ + update_gov_params_many( + """updates to execute, in order""" + updates: [gov_params_updates!]! + ): [gov_params_mutation_response] + + """ + update data of the table: "inflation" + """ + update_inflation( + """increments the numeric columns with given value of the filtered values""" + _inc: inflation_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: inflation_set_input + + """filter the rows which have to be updated""" + where: inflation_bool_exp! + ): inflation_mutation_response + + """ + update single row of the table: "inflation" + """ + update_inflation_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: inflation_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: inflation_set_input + pk_columns: inflation_pk_columns_input! + ): inflation + + """ + update multiples rows of table: "inflation" + """ + update_inflation_many( + """updates to execute, in order""" + updates: [inflation_updates!]! + ): [inflation_mutation_response] + + """ + update data of the table: "message" + """ + update_message( + """increments the numeric columns with given value of the filtered values""" + _inc: message_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: message_set_input + + """filter the rows which have to be updated""" + where: message_bool_exp! + ): message_mutation_response + + """ + update multiples rows of table: "message" + """ + update_message_many( + """updates to execute, in order""" + updates: [message_updates!]! + ): [message_mutation_response] + + """ + update data of the table: "mint_params" + """ + update_mint_params( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: mint_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: mint_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: mint_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: mint_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: mint_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: mint_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: mint_params_set_input + + """filter the rows which have to be updated""" + where: mint_params_bool_exp! + ): mint_params_mutation_response + + """ + update single row of the table: "mint_params" + """ + update_mint_params_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: mint_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: mint_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: mint_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: mint_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: mint_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: mint_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: mint_params_set_input + pk_columns: mint_params_pk_columns_input! + ): mint_params + + """ + update multiples rows of table: "mint_params" + """ + update_mint_params_many( + """updates to execute, in order""" + updates: [mint_params_updates!]! + ): [mint_params_mutation_response] + + """ + update data of the table: "modules" + """ + update_modules( + """sets the columns of the filtered rows to the given values""" + _set: modules_set_input + + """filter the rows which have to be updated""" + where: modules_bool_exp! + ): modules_mutation_response + + """ + update single row of the table: "modules" + """ + update_modules_by_pk( + """sets the columns of the filtered rows to the given values""" + _set: modules_set_input + pk_columns: modules_pk_columns_input! + ): modules + + """ + update multiples rows of table: "modules" + """ + update_modules_many( + """updates to execute, in order""" + updates: [modules_updates!]! + ): [modules_mutation_response] + + """ + update data of the table: "pre_commit" + """ + update_pre_commit( + """increments the numeric columns with given value of the filtered values""" + _inc: pre_commit_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: pre_commit_set_input + + """filter the rows which have to be updated""" + where: pre_commit_bool_exp! + ): pre_commit_mutation_response + + """ + update multiples rows of table: "pre_commit" + """ + update_pre_commit_many( + """updates to execute, in order""" + updates: [pre_commit_updates!]! + ): [pre_commit_mutation_response] + + """ + update data of the table: "proposal" + """ + update_proposal( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: proposal_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: proposal_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: proposal_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: proposal_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: proposal_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_set_input + + """filter the rows which have to be updated""" + where: proposal_bool_exp! + ): proposal_mutation_response + + """ + update single row of the table: "proposal" + """ + update_proposal_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: proposal_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: proposal_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: proposal_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: proposal_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: proposal_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_set_input + pk_columns: proposal_pk_columns_input! + ): proposal + + """ + update data of the table: "proposal_deposit" + """ + update_proposal_deposit( + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_deposit_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_deposit_set_input + + """filter the rows which have to be updated""" + where: proposal_deposit_bool_exp! + ): proposal_deposit_mutation_response + + """ + update multiples rows of table: "proposal_deposit" + """ + update_proposal_deposit_many( + """updates to execute, in order""" + updates: [proposal_deposit_updates!]! + ): [proposal_deposit_mutation_response] + + """ + update multiples rows of table: "proposal" + """ + update_proposal_many( + """updates to execute, in order""" + updates: [proposal_updates!]! + ): [proposal_mutation_response] + + """ + update data of the table: "proposal_staking_pool_snapshot" + """ + update_proposal_staking_pool_snapshot( + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_staking_pool_snapshot_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_staking_pool_snapshot_set_input + + """filter the rows which have to be updated""" + where: proposal_staking_pool_snapshot_bool_exp! + ): proposal_staking_pool_snapshot_mutation_response + + """ + update single row of the table: "proposal_staking_pool_snapshot" + """ + update_proposal_staking_pool_snapshot_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_staking_pool_snapshot_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_staking_pool_snapshot_set_input + pk_columns: proposal_staking_pool_snapshot_pk_columns_input! + ): proposal_staking_pool_snapshot + + """ + update multiples rows of table: "proposal_staking_pool_snapshot" + """ + update_proposal_staking_pool_snapshot_many( + """updates to execute, in order""" + updates: [proposal_staking_pool_snapshot_updates!]! + ): [proposal_staking_pool_snapshot_mutation_response] + + """ + update data of the table: "proposal_tally_result" + """ + update_proposal_tally_result( + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_tally_result_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_tally_result_set_input + + """filter the rows which have to be updated""" + where: proposal_tally_result_bool_exp! + ): proposal_tally_result_mutation_response + + """ + update single row of the table: "proposal_tally_result" + """ + update_proposal_tally_result_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_tally_result_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_tally_result_set_input + pk_columns: proposal_tally_result_pk_columns_input! + ): proposal_tally_result + + """ + update multiples rows of table: "proposal_tally_result" + """ + update_proposal_tally_result_many( + """updates to execute, in order""" + updates: [proposal_tally_result_updates!]! + ): [proposal_tally_result_mutation_response] + + """ + update data of the table: "proposal_validator_status_snapshot" + """ + update_proposal_validator_status_snapshot( + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_validator_status_snapshot_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_validator_status_snapshot_set_input + + """filter the rows which have to be updated""" + where: proposal_validator_status_snapshot_bool_exp! + ): proposal_validator_status_snapshot_mutation_response + + """ + update single row of the table: "proposal_validator_status_snapshot" + """ + update_proposal_validator_status_snapshot_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_validator_status_snapshot_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_validator_status_snapshot_set_input + pk_columns: proposal_validator_status_snapshot_pk_columns_input! + ): proposal_validator_status_snapshot + + """ + update multiples rows of table: "proposal_validator_status_snapshot" + """ + update_proposal_validator_status_snapshot_many( + """updates to execute, in order""" + updates: [proposal_validator_status_snapshot_updates!]! + ): [proposal_validator_status_snapshot_mutation_response] + + """ + update data of the table: "proposal_vote" + """ + update_proposal_vote( + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_vote_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_vote_set_input + + """filter the rows which have to be updated""" + where: proposal_vote_bool_exp! + ): proposal_vote_mutation_response + + """ + update multiples rows of table: "proposal_vote" + """ + update_proposal_vote_many( + """updates to execute, in order""" + updates: [proposal_vote_updates!]! + ): [proposal_vote_mutation_response] + + """ + update data of the table: "slashing_params" + """ + update_slashing_params( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: slashing_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: slashing_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: slashing_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: slashing_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: slashing_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: slashing_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: slashing_params_set_input + + """filter the rows which have to be updated""" + where: slashing_params_bool_exp! + ): slashing_params_mutation_response + + """ + update single row of the table: "slashing_params" + """ + update_slashing_params_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: slashing_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: slashing_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: slashing_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: slashing_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: slashing_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: slashing_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: slashing_params_set_input + pk_columns: slashing_params_pk_columns_input! + ): slashing_params + + """ + update multiples rows of table: "slashing_params" + """ + update_slashing_params_many( + """updates to execute, in order""" + updates: [slashing_params_updates!]! + ): [slashing_params_mutation_response] + + """ + update data of the table: "software_upgrade_plan" + """ + update_software_upgrade_plan( + """increments the numeric columns with given value of the filtered values""" + _inc: software_upgrade_plan_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: software_upgrade_plan_set_input + + """filter the rows which have to be updated""" + where: software_upgrade_plan_bool_exp! + ): software_upgrade_plan_mutation_response + + """ + update multiples rows of table: "software_upgrade_plan" + """ + update_software_upgrade_plan_many( + """updates to execute, in order""" + updates: [software_upgrade_plan_updates!]! + ): [software_upgrade_plan_mutation_response] + + """ + update data of the table: "staking_params" + """ + update_staking_params( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: staking_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: staking_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: staking_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: staking_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: staking_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: staking_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: staking_params_set_input + + """filter the rows which have to be updated""" + where: staking_params_bool_exp! + ): staking_params_mutation_response + + """ + update single row of the table: "staking_params" + """ + update_staking_params_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: staking_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: staking_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: staking_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: staking_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: staking_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: staking_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: staking_params_set_input + pk_columns: staking_params_pk_columns_input! + ): staking_params + + """ + update multiples rows of table: "staking_params" + """ + update_staking_params_many( + """updates to execute, in order""" + updates: [staking_params_updates!]! + ): [staking_params_mutation_response] + + """ + update data of the table: "staking_pool" + """ + update_staking_pool( + """increments the numeric columns with given value of the filtered values""" + _inc: staking_pool_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: staking_pool_set_input + + """filter the rows which have to be updated""" + where: staking_pool_bool_exp! + ): staking_pool_mutation_response + + """ + update single row of the table: "staking_pool" + """ + update_staking_pool_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: staking_pool_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: staking_pool_set_input + pk_columns: staking_pool_pk_columns_input! + ): staking_pool + + """ + update multiples rows of table: "staking_pool" + """ + update_staking_pool_many( + """updates to execute, in order""" + updates: [staking_pool_updates!]! + ): [staking_pool_mutation_response] + + """ + update data of the table: "supply" + """ + update_supply( + """increments the numeric columns with given value of the filtered values""" + _inc: supply_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: supply_set_input + + """filter the rows which have to be updated""" + where: supply_bool_exp! + ): supply_mutation_response + + """ + update single row of the table: "supply" + """ + update_supply_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: supply_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: supply_set_input + pk_columns: supply_pk_columns_input! + ): supply + + """ + update multiples rows of table: "supply" + """ + update_supply_many( + """updates to execute, in order""" + updates: [supply_updates!]! + ): [supply_mutation_response] + + """ + update data of the table: "token" + """ + update_token( + """sets the columns of the filtered rows to the given values""" + _set: token_set_input + + """filter the rows which have to be updated""" + where: token_bool_exp! + ): token_mutation_response + + """ + update multiples rows of table: "token" + """ + update_token_many( + """updates to execute, in order""" + updates: [token_updates!]! + ): [token_mutation_response] + + """ + update data of the table: "token_price" + """ + update_token_price( + """increments the numeric columns with given value of the filtered values""" + _inc: token_price_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: token_price_set_input + + """filter the rows which have to be updated""" + where: token_price_bool_exp! + ): token_price_mutation_response + + """ + update single row of the table: "token_price" + """ + update_token_price_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: token_price_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: token_price_set_input + pk_columns: token_price_pk_columns_input! + ): token_price + + """ + update data of the table: "token_price_history" + """ + update_token_price_history( + """increments the numeric columns with given value of the filtered values""" + _inc: token_price_history_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: token_price_history_set_input + + """filter the rows which have to be updated""" + where: token_price_history_bool_exp! + ): token_price_history_mutation_response + + """ + update single row of the table: "token_price_history" + """ + update_token_price_history_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: token_price_history_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: token_price_history_set_input + pk_columns: token_price_history_pk_columns_input! + ): token_price_history + + """ + update multiples rows of table: "token_price_history" + """ + update_token_price_history_many( + """updates to execute, in order""" + updates: [token_price_history_updates!]! + ): [token_price_history_mutation_response] + + """ + update multiples rows of table: "token_price" + """ + update_token_price_many( + """updates to execute, in order""" + updates: [token_price_updates!]! + ): [token_price_mutation_response] + + """ + update data of the table: "token_unit" + """ + update_token_unit( + """increments the numeric columns with given value of the filtered values""" + _inc: token_unit_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: token_unit_set_input + + """filter the rows which have to be updated""" + where: token_unit_bool_exp! + ): token_unit_mutation_response + + """ + update multiples rows of table: "token_unit" + """ + update_token_unit_many( + """updates to execute, in order""" + updates: [token_unit_updates!]! + ): [token_unit_mutation_response] + + """ + update data of the table: "transaction" + """ + update_transaction( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: transaction_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: transaction_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: transaction_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: transaction_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: transaction_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: transaction_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: transaction_set_input + + """filter the rows which have to be updated""" + where: transaction_bool_exp! + ): transaction_mutation_response + + """ + update multiples rows of table: "transaction" + """ + update_transaction_many( + """updates to execute, in order""" + updates: [transaction_updates!]! + ): [transaction_mutation_response] + + """ + update data of the table: "validator" + """ + update_validator( + """sets the columns of the filtered rows to the given values""" + _set: validator_set_input + + """filter the rows which have to be updated""" + where: validator_bool_exp! + ): validator_mutation_response + + """ + update single row of the table: "validator" + """ + update_validator_by_pk( + """sets the columns of the filtered rows to the given values""" + _set: validator_set_input + pk_columns: validator_pk_columns_input! + ): validator + + """ + update data of the table: "validator_commission" + """ + update_validator_commission( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_commission_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_commission_set_input + + """filter the rows which have to be updated""" + where: validator_commission_bool_exp! + ): validator_commission_mutation_response + + """ + update single row of the table: "validator_commission" + """ + update_validator_commission_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_commission_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_commission_set_input + pk_columns: validator_commission_pk_columns_input! + ): validator_commission + + """ + update multiples rows of table: "validator_commission" + """ + update_validator_commission_many( + """updates to execute, in order""" + updates: [validator_commission_updates!]! + ): [validator_commission_mutation_response] + + """ + update data of the table: "validator_description" + """ + update_validator_description( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_description_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_description_set_input + + """filter the rows which have to be updated""" + where: validator_description_bool_exp! + ): validator_description_mutation_response + + """ + update single row of the table: "validator_description" + """ + update_validator_description_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_description_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_description_set_input + pk_columns: validator_description_pk_columns_input! + ): validator_description + + """ + update multiples rows of table: "validator_description" + """ + update_validator_description_many( + """updates to execute, in order""" + updates: [validator_description_updates!]! + ): [validator_description_mutation_response] + + """ + update data of the table: "validator_info" + """ + update_validator_info( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_info_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_info_set_input + + """filter the rows which have to be updated""" + where: validator_info_bool_exp! + ): validator_info_mutation_response + + """ + update single row of the table: "validator_info" + """ + update_validator_info_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_info_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_info_set_input + pk_columns: validator_info_pk_columns_input! + ): validator_info + + """ + update multiples rows of table: "validator_info" + """ + update_validator_info_many( + """updates to execute, in order""" + updates: [validator_info_updates!]! + ): [validator_info_mutation_response] + + """ + update multiples rows of table: "validator" + """ + update_validator_many( + """updates to execute, in order""" + updates: [validator_updates!]! + ): [validator_mutation_response] + + """ + update data of the table: "validator_signing_info" + """ + update_validator_signing_info( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_signing_info_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_signing_info_set_input + + """filter the rows which have to be updated""" + where: validator_signing_info_bool_exp! + ): validator_signing_info_mutation_response + + """ + update single row of the table: "validator_signing_info" + """ + update_validator_signing_info_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_signing_info_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_signing_info_set_input + pk_columns: validator_signing_info_pk_columns_input! + ): validator_signing_info + + """ + update multiples rows of table: "validator_signing_info" + """ + update_validator_signing_info_many( + """updates to execute, in order""" + updates: [validator_signing_info_updates!]! + ): [validator_signing_info_mutation_response] + + """ + update data of the table: "validator_status" + """ + update_validator_status( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_status_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_status_set_input + + """filter the rows which have to be updated""" + where: validator_status_bool_exp! + ): validator_status_mutation_response + + """ + update single row of the table: "validator_status" + """ + update_validator_status_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_status_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_status_set_input + pk_columns: validator_status_pk_columns_input! + ): validator_status + + """ + update multiples rows of table: "validator_status" + """ + update_validator_status_many( + """updates to execute, in order""" + updates: [validator_status_updates!]! + ): [validator_status_mutation_response] + + """ + update data of the table: "validator_voting_power" + """ + update_validator_voting_power( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_voting_power_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_voting_power_set_input + + """filter the rows which have to be updated""" + where: validator_voting_power_bool_exp! + ): validator_voting_power_mutation_response + + """ + update single row of the table: "validator_voting_power" + """ + update_validator_voting_power_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: validator_voting_power_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_voting_power_set_input + pk_columns: validator_voting_power_pk_columns_input! + ): validator_voting_power + + """ + update multiples rows of table: "validator_voting_power" + """ + update_validator_voting_power_many( + """updates to execute, in order""" + updates: [validator_voting_power_updates!]! + ): [validator_voting_power_mutation_response] + + """ + update data of the table: "vesting_account" + """ + update_vesting_account( + """increments the numeric columns with given value of the filtered values""" + _inc: vesting_account_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: vesting_account_set_input + + """filter the rows which have to be updated""" + where: vesting_account_bool_exp! + ): vesting_account_mutation_response + + """ + update single row of the table: "vesting_account" + """ + update_vesting_account_by_pk( + """increments the numeric columns with given value of the filtered values""" + _inc: vesting_account_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: vesting_account_set_input + pk_columns: vesting_account_pk_columns_input! + ): vesting_account + + """ + update multiples rows of table: "vesting_account" + """ + update_vesting_account_many( + """updates to execute, in order""" + updates: [vesting_account_updates!]! + ): [vesting_account_mutation_response] + + """ + update data of the table: "vesting_period" + """ + update_vesting_period( + """increments the numeric columns with given value of the filtered values""" + _inc: vesting_period_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: vesting_period_set_input + + """filter the rows which have to be updated""" + where: vesting_period_bool_exp! + ): vesting_period_mutation_response + + """ + update multiples rows of table: "vesting_period" + """ + update_vesting_period_many( + """updates to execute, in order""" + updates: [vesting_period_updates!]! + ): [vesting_period_mutation_response] +} + +scalar numeric + +""" +Boolean expression to compare columns of type "numeric". All fields are combined with logical 'AND'. +""" +input numeric_comparison_exp { + _eq: numeric + _gt: numeric + _gte: numeric + _in: [numeric!] + _is_null: Boolean + _lt: numeric + _lte: numeric + _neq: numeric + _nin: [numeric!] +} + +"""column ordering options""" +enum order_by { + """in ascending order, nulls last""" + asc + + """in ascending order, nulls first""" + asc_nulls_first + + """in ascending order, nulls last""" + asc_nulls_last + + """in descending order, nulls first""" + desc + + """in descending order, nulls first""" + desc_nulls_first + + """in descending order, nulls last""" + desc_nulls_last +} + +""" +columns and relationships of "pre_commit" +""" +type pre_commit { + height: bigint! + proposer_priority: bigint! + timestamp: timestamp! + + """An object relationship""" + validator: validator! + validator_address: String! + voting_power: bigint! +} + +""" +aggregated selection of "pre_commit" +""" +type pre_commit_aggregate { + aggregate: pre_commit_aggregate_fields + nodes: [pre_commit!]! +} + +input pre_commit_aggregate_bool_exp { + count: pre_commit_aggregate_bool_exp_count +} + +input pre_commit_aggregate_bool_exp_count { + arguments: [pre_commit_select_column!] + distinct: Boolean + filter: pre_commit_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "pre_commit" +""" +type pre_commit_aggregate_fields { + avg: pre_commit_avg_fields + count(columns: [pre_commit_select_column!], distinct: Boolean): Int! + max: pre_commit_max_fields + min: pre_commit_min_fields + stddev: pre_commit_stddev_fields + stddev_pop: pre_commit_stddev_pop_fields + stddev_samp: pre_commit_stddev_samp_fields + sum: pre_commit_sum_fields + var_pop: pre_commit_var_pop_fields + var_samp: pre_commit_var_samp_fields + variance: pre_commit_variance_fields +} + +""" +order by aggregate values of table "pre_commit" +""" +input pre_commit_aggregate_order_by { + avg: pre_commit_avg_order_by + count: order_by + max: pre_commit_max_order_by + min: pre_commit_min_order_by + stddev: pre_commit_stddev_order_by + stddev_pop: pre_commit_stddev_pop_order_by + stddev_samp: pre_commit_stddev_samp_order_by + sum: pre_commit_sum_order_by + var_pop: pre_commit_var_pop_order_by + var_samp: pre_commit_var_samp_order_by + variance: pre_commit_variance_order_by +} + +""" +input type for inserting array relation for remote table "pre_commit" +""" +input pre_commit_arr_rel_insert_input { + data: [pre_commit_insert_input!]! + + """upsert condition""" + on_conflict: pre_commit_on_conflict +} + +"""aggregate avg on columns""" +type pre_commit_avg_fields { + height: Float + proposer_priority: Float + voting_power: Float +} + +""" +order by avg() on columns of table "pre_commit" +""" +input pre_commit_avg_order_by { + height: order_by + proposer_priority: order_by + voting_power: order_by +} + +""" +Boolean expression to filter rows from the table "pre_commit". All fields are combined with a logical 'AND'. +""" +input pre_commit_bool_exp { + _and: [pre_commit_bool_exp!] + _not: pre_commit_bool_exp + _or: [pre_commit_bool_exp!] + height: bigint_comparison_exp + proposer_priority: bigint_comparison_exp + timestamp: timestamp_comparison_exp + validator: validator_bool_exp + validator_address: String_comparison_exp + voting_power: bigint_comparison_exp +} + +""" +unique or primary key constraints on table "pre_commit" +""" +enum pre_commit_constraint { + """ + unique or primary key constraint on columns "validator_address", "timestamp" + """ + pre_commit_validator_address_timestamp_key +} + +""" +input type for incrementing numeric columns in table "pre_commit" +""" +input pre_commit_inc_input { + height: bigint + proposer_priority: bigint + voting_power: bigint +} + +""" +input type for inserting data into table "pre_commit" +""" +input pre_commit_insert_input { + height: bigint + proposer_priority: bigint + timestamp: timestamp + validator: validator_obj_rel_insert_input + validator_address: String + voting_power: bigint +} + +"""aggregate max on columns""" +type pre_commit_max_fields { + height: bigint + proposer_priority: bigint + timestamp: timestamp + validator_address: String + voting_power: bigint +} + +""" +order by max() on columns of table "pre_commit" +""" +input pre_commit_max_order_by { + height: order_by + proposer_priority: order_by + timestamp: order_by + validator_address: order_by + voting_power: order_by +} + +"""aggregate min on columns""" +type pre_commit_min_fields { + height: bigint + proposer_priority: bigint + timestamp: timestamp + validator_address: String + voting_power: bigint +} + +""" +order by min() on columns of table "pre_commit" +""" +input pre_commit_min_order_by { + height: order_by + proposer_priority: order_by + timestamp: order_by + validator_address: order_by + voting_power: order_by +} + +""" +response of any mutation on the table "pre_commit" +""" +type pre_commit_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [pre_commit!]! +} + +""" +on_conflict condition type for table "pre_commit" +""" +input pre_commit_on_conflict { + constraint: pre_commit_constraint! + update_columns: [pre_commit_update_column!]! = [] + where: pre_commit_bool_exp +} + +"""Ordering options when selecting data from "pre_commit".""" +input pre_commit_order_by { + height: order_by + proposer_priority: order_by + timestamp: order_by + validator: validator_order_by + validator_address: order_by + voting_power: order_by +} + +""" +select columns of table "pre_commit" +""" +enum pre_commit_select_column { + """column name""" + height + + """column name""" + proposer_priority + + """column name""" + timestamp + + """column name""" + validator_address + + """column name""" + voting_power +} + +""" +input type for updating data in table "pre_commit" +""" +input pre_commit_set_input { + height: bigint + proposer_priority: bigint + timestamp: timestamp + validator_address: String + voting_power: bigint +} + +"""aggregate stddev on columns""" +type pre_commit_stddev_fields { + height: Float + proposer_priority: Float + voting_power: Float +} + +""" +order by stddev() on columns of table "pre_commit" +""" +input pre_commit_stddev_order_by { + height: order_by + proposer_priority: order_by + voting_power: order_by +} + +"""aggregate stddev_pop on columns""" +type pre_commit_stddev_pop_fields { + height: Float + proposer_priority: Float + voting_power: Float +} + +""" +order by stddev_pop() on columns of table "pre_commit" +""" +input pre_commit_stddev_pop_order_by { + height: order_by + proposer_priority: order_by + voting_power: order_by +} + +"""aggregate stddev_samp on columns""" +type pre_commit_stddev_samp_fields { + height: Float + proposer_priority: Float + voting_power: Float +} + +""" +order by stddev_samp() on columns of table "pre_commit" +""" +input pre_commit_stddev_samp_order_by { + height: order_by + proposer_priority: order_by + voting_power: order_by +} + +""" +Streaming cursor of the table "pre_commit" +""" +input pre_commit_stream_cursor_input { + """Stream column input with initial value""" + initial_value: pre_commit_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input pre_commit_stream_cursor_value_input { + height: bigint + proposer_priority: bigint + timestamp: timestamp + validator_address: String + voting_power: bigint +} + +"""aggregate sum on columns""" +type pre_commit_sum_fields { + height: bigint + proposer_priority: bigint + voting_power: bigint +} + +""" +order by sum() on columns of table "pre_commit" +""" +input pre_commit_sum_order_by { + height: order_by + proposer_priority: order_by + voting_power: order_by +} + +""" +update columns of table "pre_commit" +""" +enum pre_commit_update_column { + """column name""" + height + + """column name""" + proposer_priority + + """column name""" + timestamp + + """column name""" + validator_address + + """column name""" + voting_power +} + +input pre_commit_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: pre_commit_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: pre_commit_set_input + + """filter the rows which have to be updated""" + where: pre_commit_bool_exp! +} + +"""aggregate var_pop on columns""" +type pre_commit_var_pop_fields { + height: Float + proposer_priority: Float + voting_power: Float +} + +""" +order by var_pop() on columns of table "pre_commit" +""" +input pre_commit_var_pop_order_by { + height: order_by + proposer_priority: order_by + voting_power: order_by +} + +"""aggregate var_samp on columns""" +type pre_commit_var_samp_fields { + height: Float + proposer_priority: Float + voting_power: Float +} + +""" +order by var_samp() on columns of table "pre_commit" +""" +input pre_commit_var_samp_order_by { + height: order_by + proposer_priority: order_by + voting_power: order_by +} + +"""aggregate variance on columns""" +type pre_commit_variance_fields { + height: Float + proposer_priority: Float + voting_power: Float +} + +""" +order by variance() on columns of table "pre_commit" +""" +input pre_commit_variance_order_by { + height: order_by + proposer_priority: order_by + voting_power: order_by +} + +""" +columns and relationships of "proposal" +""" +type proposal { + content( + """JSON select path""" + path: String + ): jsonb! + deposit_end_time: timestamp + description: String! + id: Int! + metadata: String! + + """An array relationship""" + proposal_deposits( + """distinct select on columns""" + distinct_on: [proposal_deposit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_deposit_order_by!] + + """filter the rows returned""" + where: proposal_deposit_bool_exp + ): [proposal_deposit!]! + + """An aggregate relationship""" + proposal_deposits_aggregate( + """distinct select on columns""" + distinct_on: [proposal_deposit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_deposit_order_by!] + + """filter the rows returned""" + where: proposal_deposit_bool_exp + ): proposal_deposit_aggregate! + + """An object relationship""" + proposal_tally_result: proposal_tally_result + + """An array relationship""" + proposal_tally_results( + """distinct select on columns""" + distinct_on: [proposal_tally_result_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_tally_result_order_by!] + + """filter the rows returned""" + where: proposal_tally_result_bool_exp + ): [proposal_tally_result!]! + + """An aggregate relationship""" + proposal_tally_results_aggregate( + """distinct select on columns""" + distinct_on: [proposal_tally_result_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_tally_result_order_by!] + + """filter the rows returned""" + where: proposal_tally_result_bool_exp + ): proposal_tally_result_aggregate! + + """An array relationship""" + proposal_votes( + """distinct select on columns""" + distinct_on: [proposal_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_vote_order_by!] + + """filter the rows returned""" + where: proposal_vote_bool_exp + ): [proposal_vote!]! + + """An aggregate relationship""" + proposal_votes_aggregate( + """distinct select on columns""" + distinct_on: [proposal_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_vote_order_by!] + + """filter the rows returned""" + where: proposal_vote_bool_exp + ): proposal_vote_aggregate! + + """An object relationship""" + proposer: account! + proposer_address: String! + + """An object relationship""" + staking_pool_snapshot: proposal_staking_pool_snapshot + status: String + submit_time: timestamp! + title: String! + + """An array relationship""" + validator_status_snapshots( + """distinct select on columns""" + distinct_on: [proposal_validator_status_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_validator_status_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_validator_status_snapshot_bool_exp + ): [proposal_validator_status_snapshot!]! + + """An aggregate relationship""" + validator_status_snapshots_aggregate( + """distinct select on columns""" + distinct_on: [proposal_validator_status_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_validator_status_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_validator_status_snapshot_bool_exp + ): proposal_validator_status_snapshot_aggregate! + voting_end_time: timestamp + voting_start_time: timestamp +} + +""" +aggregated selection of "proposal" +""" +type proposal_aggregate { + aggregate: proposal_aggregate_fields + nodes: [proposal!]! +} + +input proposal_aggregate_bool_exp { + count: proposal_aggregate_bool_exp_count +} + +input proposal_aggregate_bool_exp_count { + arguments: [proposal_select_column!] + distinct: Boolean + filter: proposal_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "proposal" +""" +type proposal_aggregate_fields { + avg: proposal_avg_fields + count(columns: [proposal_select_column!], distinct: Boolean): Int! + max: proposal_max_fields + min: proposal_min_fields + stddev: proposal_stddev_fields + stddev_pop: proposal_stddev_pop_fields + stddev_samp: proposal_stddev_samp_fields + sum: proposal_sum_fields + var_pop: proposal_var_pop_fields + var_samp: proposal_var_samp_fields + variance: proposal_variance_fields +} + +""" +order by aggregate values of table "proposal" +""" +input proposal_aggregate_order_by { + avg: proposal_avg_order_by + count: order_by + max: proposal_max_order_by + min: proposal_min_order_by + stddev: proposal_stddev_order_by + stddev_pop: proposal_stddev_pop_order_by + stddev_samp: proposal_stddev_samp_order_by + sum: proposal_sum_order_by + var_pop: proposal_var_pop_order_by + var_samp: proposal_var_samp_order_by + variance: proposal_variance_order_by +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input proposal_append_input { + content: jsonb +} + +""" +input type for inserting array relation for remote table "proposal" +""" +input proposal_arr_rel_insert_input { + data: [proposal_insert_input!]! + + """upsert condition""" + on_conflict: proposal_on_conflict +} + +"""aggregate avg on columns""" +type proposal_avg_fields { + id: Float +} + +""" +order by avg() on columns of table "proposal" +""" +input proposal_avg_order_by { + id: order_by +} + +""" +Boolean expression to filter rows from the table "proposal". All fields are combined with a logical 'AND'. +""" +input proposal_bool_exp { + _and: [proposal_bool_exp!] + _not: proposal_bool_exp + _or: [proposal_bool_exp!] + content: jsonb_comparison_exp + deposit_end_time: timestamp_comparison_exp + description: String_comparison_exp + id: Int_comparison_exp + metadata: String_comparison_exp + proposal_deposits: proposal_deposit_bool_exp + proposal_deposits_aggregate: proposal_deposit_aggregate_bool_exp + proposal_tally_result: proposal_tally_result_bool_exp + proposal_tally_results: proposal_tally_result_bool_exp + proposal_tally_results_aggregate: proposal_tally_result_aggregate_bool_exp + proposal_votes: proposal_vote_bool_exp + proposal_votes_aggregate: proposal_vote_aggregate_bool_exp + proposer: account_bool_exp + proposer_address: String_comparison_exp + staking_pool_snapshot: proposal_staking_pool_snapshot_bool_exp + status: String_comparison_exp + submit_time: timestamp_comparison_exp + title: String_comparison_exp + validator_status_snapshots: proposal_validator_status_snapshot_bool_exp + validator_status_snapshots_aggregate: proposal_validator_status_snapshot_aggregate_bool_exp + voting_end_time: timestamp_comparison_exp + voting_start_time: timestamp_comparison_exp +} + +""" +unique or primary key constraints on table "proposal" +""" +enum proposal_constraint { + """ + unique or primary key constraint on columns "id" + """ + proposal_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input proposal_delete_at_path_input { + content: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input proposal_delete_elem_input { + content: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input proposal_delete_key_input { + content: String +} + +""" +columns and relationships of "proposal_deposit" +""" +type proposal_deposit { + amount: [coin!] + + """An object relationship""" + block: block + + """An object relationship""" + depositor: account + depositor_address: String + height: bigint! + + """An object relationship""" + proposal: proposal! + proposal_id: Int! + timestamp: timestamp + transaction_hash: String! +} + +""" +aggregated selection of "proposal_deposit" +""" +type proposal_deposit_aggregate { + aggregate: proposal_deposit_aggregate_fields + nodes: [proposal_deposit!]! +} + +input proposal_deposit_aggregate_bool_exp { + count: proposal_deposit_aggregate_bool_exp_count +} + +input proposal_deposit_aggregate_bool_exp_count { + arguments: [proposal_deposit_select_column!] + distinct: Boolean + filter: proposal_deposit_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "proposal_deposit" +""" +type proposal_deposit_aggregate_fields { + avg: proposal_deposit_avg_fields + count(columns: [proposal_deposit_select_column!], distinct: Boolean): Int! + max: proposal_deposit_max_fields + min: proposal_deposit_min_fields + stddev: proposal_deposit_stddev_fields + stddev_pop: proposal_deposit_stddev_pop_fields + stddev_samp: proposal_deposit_stddev_samp_fields + sum: proposal_deposit_sum_fields + var_pop: proposal_deposit_var_pop_fields + var_samp: proposal_deposit_var_samp_fields + variance: proposal_deposit_variance_fields +} + +""" +order by aggregate values of table "proposal_deposit" +""" +input proposal_deposit_aggregate_order_by { + avg: proposal_deposit_avg_order_by + count: order_by + max: proposal_deposit_max_order_by + min: proposal_deposit_min_order_by + stddev: proposal_deposit_stddev_order_by + stddev_pop: proposal_deposit_stddev_pop_order_by + stddev_samp: proposal_deposit_stddev_samp_order_by + sum: proposal_deposit_sum_order_by + var_pop: proposal_deposit_var_pop_order_by + var_samp: proposal_deposit_var_samp_order_by + variance: proposal_deposit_variance_order_by +} + +""" +input type for inserting array relation for remote table "proposal_deposit" +""" +input proposal_deposit_arr_rel_insert_input { + data: [proposal_deposit_insert_input!]! + + """upsert condition""" + on_conflict: proposal_deposit_on_conflict +} + +"""aggregate avg on columns""" +type proposal_deposit_avg_fields { + height: Float + proposal_id: Float +} + +""" +order by avg() on columns of table "proposal_deposit" +""" +input proposal_deposit_avg_order_by { + height: order_by + proposal_id: order_by +} + +""" +Boolean expression to filter rows from the table "proposal_deposit". All fields are combined with a logical 'AND'. +""" +input proposal_deposit_bool_exp { + _and: [proposal_deposit_bool_exp!] + _not: proposal_deposit_bool_exp + _or: [proposal_deposit_bool_exp!] + amount: coin_array_comparison_exp + block: block_bool_exp + depositor: account_bool_exp + depositor_address: String_comparison_exp + height: bigint_comparison_exp + proposal: proposal_bool_exp + proposal_id: Int_comparison_exp + timestamp: timestamp_comparison_exp + transaction_hash: String_comparison_exp +} + +""" +unique or primary key constraints on table "proposal_deposit" +""" +enum proposal_deposit_constraint { + """ + unique or primary key constraint on columns "transaction_hash", "proposal_id", "depositor_address" + """ + unique_deposit +} + +""" +input type for incrementing numeric columns in table "proposal_deposit" +""" +input proposal_deposit_inc_input { + height: bigint + proposal_id: Int +} + +""" +input type for inserting data into table "proposal_deposit" +""" +input proposal_deposit_insert_input { + amount: [coin!] + block: block_obj_rel_insert_input + depositor: account_obj_rel_insert_input + depositor_address: String + height: bigint + proposal: proposal_obj_rel_insert_input + proposal_id: Int + timestamp: timestamp + transaction_hash: String +} + +"""aggregate max on columns""" +type proposal_deposit_max_fields { + amount: [coin!] + depositor_address: String + height: bigint + proposal_id: Int + timestamp: timestamp + transaction_hash: String +} + +""" +order by max() on columns of table "proposal_deposit" +""" +input proposal_deposit_max_order_by { + amount: order_by + depositor_address: order_by + height: order_by + proposal_id: order_by + timestamp: order_by + transaction_hash: order_by +} + +"""aggregate min on columns""" +type proposal_deposit_min_fields { + amount: [coin!] + depositor_address: String + height: bigint + proposal_id: Int + timestamp: timestamp + transaction_hash: String +} + +""" +order by min() on columns of table "proposal_deposit" +""" +input proposal_deposit_min_order_by { + amount: order_by + depositor_address: order_by + height: order_by + proposal_id: order_by + timestamp: order_by + transaction_hash: order_by +} + +""" +response of any mutation on the table "proposal_deposit" +""" +type proposal_deposit_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [proposal_deposit!]! +} + +""" +on_conflict condition type for table "proposal_deposit" +""" +input proposal_deposit_on_conflict { + constraint: proposal_deposit_constraint! + update_columns: [proposal_deposit_update_column!]! = [] + where: proposal_deposit_bool_exp +} + +"""Ordering options when selecting data from "proposal_deposit".""" +input proposal_deposit_order_by { + amount: order_by + block: block_order_by + depositor: account_order_by + depositor_address: order_by + height: order_by + proposal: proposal_order_by + proposal_id: order_by + timestamp: order_by + transaction_hash: order_by +} + +""" +select columns of table "proposal_deposit" +""" +enum proposal_deposit_select_column { + """column name""" + amount + + """column name""" + depositor_address + + """column name""" + height + + """column name""" + proposal_id + + """column name""" + timestamp + + """column name""" + transaction_hash +} + +""" +input type for updating data in table "proposal_deposit" +""" +input proposal_deposit_set_input { + amount: [coin!] + depositor_address: String + height: bigint + proposal_id: Int + timestamp: timestamp + transaction_hash: String +} + +"""aggregate stddev on columns""" +type proposal_deposit_stddev_fields { + height: Float + proposal_id: Float +} + +""" +order by stddev() on columns of table "proposal_deposit" +""" +input proposal_deposit_stddev_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate stddev_pop on columns""" +type proposal_deposit_stddev_pop_fields { + height: Float + proposal_id: Float +} + +""" +order by stddev_pop() on columns of table "proposal_deposit" +""" +input proposal_deposit_stddev_pop_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate stddev_samp on columns""" +type proposal_deposit_stddev_samp_fields { + height: Float + proposal_id: Float +} + +""" +order by stddev_samp() on columns of table "proposal_deposit" +""" +input proposal_deposit_stddev_samp_order_by { + height: order_by + proposal_id: order_by +} + +""" +Streaming cursor of the table "proposal_deposit" +""" +input proposal_deposit_stream_cursor_input { + """Stream column input with initial value""" + initial_value: proposal_deposit_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input proposal_deposit_stream_cursor_value_input { + amount: [coin!] + depositor_address: String + height: bigint + proposal_id: Int + timestamp: timestamp + transaction_hash: String +} + +"""aggregate sum on columns""" +type proposal_deposit_sum_fields { + height: bigint + proposal_id: Int +} + +""" +order by sum() on columns of table "proposal_deposit" +""" +input proposal_deposit_sum_order_by { + height: order_by + proposal_id: order_by +} + +""" +update columns of table "proposal_deposit" +""" +enum proposal_deposit_update_column { + """column name""" + amount + + """column name""" + depositor_address + + """column name""" + height + + """column name""" + proposal_id + + """column name""" + timestamp + + """column name""" + transaction_hash +} + +input proposal_deposit_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_deposit_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_deposit_set_input + + """filter the rows which have to be updated""" + where: proposal_deposit_bool_exp! +} + +"""aggregate var_pop on columns""" +type proposal_deposit_var_pop_fields { + height: Float + proposal_id: Float +} + +""" +order by var_pop() on columns of table "proposal_deposit" +""" +input proposal_deposit_var_pop_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate var_samp on columns""" +type proposal_deposit_var_samp_fields { + height: Float + proposal_id: Float +} + +""" +order by var_samp() on columns of table "proposal_deposit" +""" +input proposal_deposit_var_samp_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate variance on columns""" +type proposal_deposit_variance_fields { + height: Float + proposal_id: Float +} + +""" +order by variance() on columns of table "proposal_deposit" +""" +input proposal_deposit_variance_order_by { + height: order_by + proposal_id: order_by +} + +""" +input type for incrementing numeric columns in table "proposal" +""" +input proposal_inc_input { + id: Int +} + +""" +input type for inserting data into table "proposal" +""" +input proposal_insert_input { + content: jsonb + deposit_end_time: timestamp + description: String + id: Int + metadata: String + proposal_deposits: proposal_deposit_arr_rel_insert_input + proposal_tally_result: proposal_tally_result_obj_rel_insert_input + proposal_tally_results: proposal_tally_result_arr_rel_insert_input + proposal_votes: proposal_vote_arr_rel_insert_input + proposer: account_obj_rel_insert_input + proposer_address: String + staking_pool_snapshot: proposal_staking_pool_snapshot_obj_rel_insert_input + status: String + submit_time: timestamp + title: String + validator_status_snapshots: proposal_validator_status_snapshot_arr_rel_insert_input + voting_end_time: timestamp + voting_start_time: timestamp +} + +"""aggregate max on columns""" +type proposal_max_fields { + deposit_end_time: timestamp + description: String + id: Int + metadata: String + proposer_address: String + status: String + submit_time: timestamp + title: String + voting_end_time: timestamp + voting_start_time: timestamp +} + +""" +order by max() on columns of table "proposal" +""" +input proposal_max_order_by { + deposit_end_time: order_by + description: order_by + id: order_by + metadata: order_by + proposer_address: order_by + status: order_by + submit_time: order_by + title: order_by + voting_end_time: order_by + voting_start_time: order_by +} + +"""aggregate min on columns""" +type proposal_min_fields { + deposit_end_time: timestamp + description: String + id: Int + metadata: String + proposer_address: String + status: String + submit_time: timestamp + title: String + voting_end_time: timestamp + voting_start_time: timestamp +} + +""" +order by min() on columns of table "proposal" +""" +input proposal_min_order_by { + deposit_end_time: order_by + description: order_by + id: order_by + metadata: order_by + proposer_address: order_by + status: order_by + submit_time: order_by + title: order_by + voting_end_time: order_by + voting_start_time: order_by +} + +""" +response of any mutation on the table "proposal" +""" +type proposal_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [proposal!]! +} + +""" +input type for inserting object relation for remote table "proposal" +""" +input proposal_obj_rel_insert_input { + data: proposal_insert_input! + + """upsert condition""" + on_conflict: proposal_on_conflict +} + +""" +on_conflict condition type for table "proposal" +""" +input proposal_on_conflict { + constraint: proposal_constraint! + update_columns: [proposal_update_column!]! = [] + where: proposal_bool_exp +} + +"""Ordering options when selecting data from "proposal".""" +input proposal_order_by { + content: order_by + deposit_end_time: order_by + description: order_by + id: order_by + metadata: order_by + proposal_deposits_aggregate: proposal_deposit_aggregate_order_by + proposal_tally_result: proposal_tally_result_order_by + proposal_tally_results_aggregate: proposal_tally_result_aggregate_order_by + proposal_votes_aggregate: proposal_vote_aggregate_order_by + proposer: account_order_by + proposer_address: order_by + staking_pool_snapshot: proposal_staking_pool_snapshot_order_by + status: order_by + submit_time: order_by + title: order_by + validator_status_snapshots_aggregate: proposal_validator_status_snapshot_aggregate_order_by + voting_end_time: order_by + voting_start_time: order_by +} + +"""primary key columns input for table: proposal""" +input proposal_pk_columns_input { + id: Int! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input proposal_prepend_input { + content: jsonb +} + +""" +select columns of table "proposal" +""" +enum proposal_select_column { + """column name""" + content + + """column name""" + deposit_end_time + + """column name""" + description + + """column name""" + id + + """column name""" + metadata + + """column name""" + proposer_address + + """column name""" + status + + """column name""" + submit_time + + """column name""" + title + + """column name""" + voting_end_time + + """column name""" + voting_start_time +} + +""" +input type for updating data in table "proposal" +""" +input proposal_set_input { + content: jsonb + deposit_end_time: timestamp + description: String + id: Int + metadata: String + proposer_address: String + status: String + submit_time: timestamp + title: String + voting_end_time: timestamp + voting_start_time: timestamp +} + +""" +columns and relationships of "proposal_staking_pool_snapshot" +""" +type proposal_staking_pool_snapshot { + bonded_tokens: String! + height: bigint! + not_bonded_tokens: String! + + """An object relationship""" + proposal: proposal! + proposal_id: Int! +} + +""" +aggregated selection of "proposal_staking_pool_snapshot" +""" +type proposal_staking_pool_snapshot_aggregate { + aggregate: proposal_staking_pool_snapshot_aggregate_fields + nodes: [proposal_staking_pool_snapshot!]! +} + +""" +aggregate fields of "proposal_staking_pool_snapshot" +""" +type proposal_staking_pool_snapshot_aggregate_fields { + avg: proposal_staking_pool_snapshot_avg_fields + count(columns: [proposal_staking_pool_snapshot_select_column!], distinct: Boolean): Int! + max: proposal_staking_pool_snapshot_max_fields + min: proposal_staking_pool_snapshot_min_fields + stddev: proposal_staking_pool_snapshot_stddev_fields + stddev_pop: proposal_staking_pool_snapshot_stddev_pop_fields + stddev_samp: proposal_staking_pool_snapshot_stddev_samp_fields + sum: proposal_staking_pool_snapshot_sum_fields + var_pop: proposal_staking_pool_snapshot_var_pop_fields + var_samp: proposal_staking_pool_snapshot_var_samp_fields + variance: proposal_staking_pool_snapshot_variance_fields +} + +"""aggregate avg on columns""" +type proposal_staking_pool_snapshot_avg_fields { + height: Float + proposal_id: Float +} + +""" +Boolean expression to filter rows from the table "proposal_staking_pool_snapshot". All fields are combined with a logical 'AND'. +""" +input proposal_staking_pool_snapshot_bool_exp { + _and: [proposal_staking_pool_snapshot_bool_exp!] + _not: proposal_staking_pool_snapshot_bool_exp + _or: [proposal_staking_pool_snapshot_bool_exp!] + bonded_tokens: String_comparison_exp + height: bigint_comparison_exp + not_bonded_tokens: String_comparison_exp + proposal: proposal_bool_exp + proposal_id: Int_comparison_exp +} + +""" +unique or primary key constraints on table "proposal_staking_pool_snapshot" +""" +enum proposal_staking_pool_snapshot_constraint { + """ + unique or primary key constraint on columns "proposal_id" + """ + unique_staking_pool_snapshot +} + +""" +input type for incrementing numeric columns in table "proposal_staking_pool_snapshot" +""" +input proposal_staking_pool_snapshot_inc_input { + height: bigint + proposal_id: Int +} + +""" +input type for inserting data into table "proposal_staking_pool_snapshot" +""" +input proposal_staking_pool_snapshot_insert_input { + bonded_tokens: String + height: bigint + not_bonded_tokens: String + proposal: proposal_obj_rel_insert_input + proposal_id: Int +} + +"""aggregate max on columns""" +type proposal_staking_pool_snapshot_max_fields { + bonded_tokens: String + height: bigint + not_bonded_tokens: String + proposal_id: Int +} + +"""aggregate min on columns""" +type proposal_staking_pool_snapshot_min_fields { + bonded_tokens: String + height: bigint + not_bonded_tokens: String + proposal_id: Int +} + +""" +response of any mutation on the table "proposal_staking_pool_snapshot" +""" +type proposal_staking_pool_snapshot_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [proposal_staking_pool_snapshot!]! +} + +""" +input type for inserting object relation for remote table "proposal_staking_pool_snapshot" +""" +input proposal_staking_pool_snapshot_obj_rel_insert_input { + data: proposal_staking_pool_snapshot_insert_input! + + """upsert condition""" + on_conflict: proposal_staking_pool_snapshot_on_conflict +} + +""" +on_conflict condition type for table "proposal_staking_pool_snapshot" +""" +input proposal_staking_pool_snapshot_on_conflict { + constraint: proposal_staking_pool_snapshot_constraint! + update_columns: [proposal_staking_pool_snapshot_update_column!]! = [] + where: proposal_staking_pool_snapshot_bool_exp +} + +""" +Ordering options when selecting data from "proposal_staking_pool_snapshot". +""" +input proposal_staking_pool_snapshot_order_by { + bonded_tokens: order_by + height: order_by + not_bonded_tokens: order_by + proposal: proposal_order_by + proposal_id: order_by +} + +"""primary key columns input for table: proposal_staking_pool_snapshot""" +input proposal_staking_pool_snapshot_pk_columns_input { + proposal_id: Int! +} + +""" +select columns of table "proposal_staking_pool_snapshot" +""" +enum proposal_staking_pool_snapshot_select_column { + """column name""" + bonded_tokens + + """column name""" + height + + """column name""" + not_bonded_tokens + + """column name""" + proposal_id +} + +""" +input type for updating data in table "proposal_staking_pool_snapshot" +""" +input proposal_staking_pool_snapshot_set_input { + bonded_tokens: String + height: bigint + not_bonded_tokens: String + proposal_id: Int +} + +"""aggregate stddev on columns""" +type proposal_staking_pool_snapshot_stddev_fields { + height: Float + proposal_id: Float +} + +"""aggregate stddev_pop on columns""" +type proposal_staking_pool_snapshot_stddev_pop_fields { + height: Float + proposal_id: Float +} + +"""aggregate stddev_samp on columns""" +type proposal_staking_pool_snapshot_stddev_samp_fields { + height: Float + proposal_id: Float +} + +""" +Streaming cursor of the table "proposal_staking_pool_snapshot" +""" +input proposal_staking_pool_snapshot_stream_cursor_input { + """Stream column input with initial value""" + initial_value: proposal_staking_pool_snapshot_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input proposal_staking_pool_snapshot_stream_cursor_value_input { + bonded_tokens: String + height: bigint + not_bonded_tokens: String + proposal_id: Int +} + +"""aggregate sum on columns""" +type proposal_staking_pool_snapshot_sum_fields { + height: bigint + proposal_id: Int +} + +""" +update columns of table "proposal_staking_pool_snapshot" +""" +enum proposal_staking_pool_snapshot_update_column { + """column name""" + bonded_tokens + + """column name""" + height + + """column name""" + not_bonded_tokens + + """column name""" + proposal_id +} + +input proposal_staking_pool_snapshot_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_staking_pool_snapshot_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_staking_pool_snapshot_set_input + + """filter the rows which have to be updated""" + where: proposal_staking_pool_snapshot_bool_exp! +} + +"""aggregate var_pop on columns""" +type proposal_staking_pool_snapshot_var_pop_fields { + height: Float + proposal_id: Float +} + +"""aggregate var_samp on columns""" +type proposal_staking_pool_snapshot_var_samp_fields { + height: Float + proposal_id: Float +} + +"""aggregate variance on columns""" +type proposal_staking_pool_snapshot_variance_fields { + height: Float + proposal_id: Float +} + +"""aggregate stddev on columns""" +type proposal_stddev_fields { + id: Float +} + +""" +order by stddev() on columns of table "proposal" +""" +input proposal_stddev_order_by { + id: order_by +} + +"""aggregate stddev_pop on columns""" +type proposal_stddev_pop_fields { + id: Float +} + +""" +order by stddev_pop() on columns of table "proposal" +""" +input proposal_stddev_pop_order_by { + id: order_by +} + +"""aggregate stddev_samp on columns""" +type proposal_stddev_samp_fields { + id: Float +} + +""" +order by stddev_samp() on columns of table "proposal" +""" +input proposal_stddev_samp_order_by { + id: order_by +} + +""" +Streaming cursor of the table "proposal" +""" +input proposal_stream_cursor_input { + """Stream column input with initial value""" + initial_value: proposal_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input proposal_stream_cursor_value_input { + content: jsonb + deposit_end_time: timestamp + description: String + id: Int + metadata: String + proposer_address: String + status: String + submit_time: timestamp + title: String + voting_end_time: timestamp + voting_start_time: timestamp +} + +"""aggregate sum on columns""" +type proposal_sum_fields { + id: Int +} + +""" +order by sum() on columns of table "proposal" +""" +input proposal_sum_order_by { + id: order_by +} + +""" +columns and relationships of "proposal_tally_result" +""" +type proposal_tally_result { + abstain: String! + height: bigint! + no: String! + no_with_veto: String! + + """An object relationship""" + proposal: proposal! + proposal_id: Int! + yes: String! +} + +""" +aggregated selection of "proposal_tally_result" +""" +type proposal_tally_result_aggregate { + aggregate: proposal_tally_result_aggregate_fields + nodes: [proposal_tally_result!]! +} + +input proposal_tally_result_aggregate_bool_exp { + count: proposal_tally_result_aggregate_bool_exp_count +} + +input proposal_tally_result_aggregate_bool_exp_count { + arguments: [proposal_tally_result_select_column!] + distinct: Boolean + filter: proposal_tally_result_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "proposal_tally_result" +""" +type proposal_tally_result_aggregate_fields { + avg: proposal_tally_result_avg_fields + count(columns: [proposal_tally_result_select_column!], distinct: Boolean): Int! + max: proposal_tally_result_max_fields + min: proposal_tally_result_min_fields + stddev: proposal_tally_result_stddev_fields + stddev_pop: proposal_tally_result_stddev_pop_fields + stddev_samp: proposal_tally_result_stddev_samp_fields + sum: proposal_tally_result_sum_fields + var_pop: proposal_tally_result_var_pop_fields + var_samp: proposal_tally_result_var_samp_fields + variance: proposal_tally_result_variance_fields +} + +""" +order by aggregate values of table "proposal_tally_result" +""" +input proposal_tally_result_aggregate_order_by { + avg: proposal_tally_result_avg_order_by + count: order_by + max: proposal_tally_result_max_order_by + min: proposal_tally_result_min_order_by + stddev: proposal_tally_result_stddev_order_by + stddev_pop: proposal_tally_result_stddev_pop_order_by + stddev_samp: proposal_tally_result_stddev_samp_order_by + sum: proposal_tally_result_sum_order_by + var_pop: proposal_tally_result_var_pop_order_by + var_samp: proposal_tally_result_var_samp_order_by + variance: proposal_tally_result_variance_order_by +} + +""" +input type for inserting array relation for remote table "proposal_tally_result" +""" +input proposal_tally_result_arr_rel_insert_input { + data: [proposal_tally_result_insert_input!]! + + """upsert condition""" + on_conflict: proposal_tally_result_on_conflict +} + +"""aggregate avg on columns""" +type proposal_tally_result_avg_fields { + height: Float + proposal_id: Float +} + +""" +order by avg() on columns of table "proposal_tally_result" +""" +input proposal_tally_result_avg_order_by { + height: order_by + proposal_id: order_by +} + +""" +Boolean expression to filter rows from the table "proposal_tally_result". All fields are combined with a logical 'AND'. +""" +input proposal_tally_result_bool_exp { + _and: [proposal_tally_result_bool_exp!] + _not: proposal_tally_result_bool_exp + _or: [proposal_tally_result_bool_exp!] + abstain: String_comparison_exp + height: bigint_comparison_exp + no: String_comparison_exp + no_with_veto: String_comparison_exp + proposal: proposal_bool_exp + proposal_id: Int_comparison_exp + yes: String_comparison_exp +} + +""" +unique or primary key constraints on table "proposal_tally_result" +""" +enum proposal_tally_result_constraint { + """ + unique or primary key constraint on columns "proposal_id" + """ + unique_tally_result +} + +""" +input type for incrementing numeric columns in table "proposal_tally_result" +""" +input proposal_tally_result_inc_input { + height: bigint + proposal_id: Int +} + +""" +input type for inserting data into table "proposal_tally_result" +""" +input proposal_tally_result_insert_input { + abstain: String + height: bigint + no: String + no_with_veto: String + proposal: proposal_obj_rel_insert_input + proposal_id: Int + yes: String +} + +"""aggregate max on columns""" +type proposal_tally_result_max_fields { + abstain: String + height: bigint + no: String + no_with_veto: String + proposal_id: Int + yes: String +} + +""" +order by max() on columns of table "proposal_tally_result" +""" +input proposal_tally_result_max_order_by { + abstain: order_by + height: order_by + no: order_by + no_with_veto: order_by + proposal_id: order_by + yes: order_by +} + +"""aggregate min on columns""" +type proposal_tally_result_min_fields { + abstain: String + height: bigint + no: String + no_with_veto: String + proposal_id: Int + yes: String +} + +""" +order by min() on columns of table "proposal_tally_result" +""" +input proposal_tally_result_min_order_by { + abstain: order_by + height: order_by + no: order_by + no_with_veto: order_by + proposal_id: order_by + yes: order_by +} + +""" +response of any mutation on the table "proposal_tally_result" +""" +type proposal_tally_result_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [proposal_tally_result!]! +} + +""" +input type for inserting object relation for remote table "proposal_tally_result" +""" +input proposal_tally_result_obj_rel_insert_input { + data: proposal_tally_result_insert_input! + + """upsert condition""" + on_conflict: proposal_tally_result_on_conflict +} + +""" +on_conflict condition type for table "proposal_tally_result" +""" +input proposal_tally_result_on_conflict { + constraint: proposal_tally_result_constraint! + update_columns: [proposal_tally_result_update_column!]! = [] + where: proposal_tally_result_bool_exp +} + +"""Ordering options when selecting data from "proposal_tally_result".""" +input proposal_tally_result_order_by { + abstain: order_by + height: order_by + no: order_by + no_with_veto: order_by + proposal: proposal_order_by + proposal_id: order_by + yes: order_by +} + +"""primary key columns input for table: proposal_tally_result""" +input proposal_tally_result_pk_columns_input { + proposal_id: Int! +} + +""" +select columns of table "proposal_tally_result" +""" +enum proposal_tally_result_select_column { + """column name""" + abstain + + """column name""" + height + + """column name""" + no + + """column name""" + no_with_veto + + """column name""" + proposal_id + + """column name""" + yes +} + +""" +input type for updating data in table "proposal_tally_result" +""" +input proposal_tally_result_set_input { + abstain: String + height: bigint + no: String + no_with_veto: String + proposal_id: Int + yes: String +} + +"""aggregate stddev on columns""" +type proposal_tally_result_stddev_fields { + height: Float + proposal_id: Float +} + +""" +order by stddev() on columns of table "proposal_tally_result" +""" +input proposal_tally_result_stddev_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate stddev_pop on columns""" +type proposal_tally_result_stddev_pop_fields { + height: Float + proposal_id: Float +} + +""" +order by stddev_pop() on columns of table "proposal_tally_result" +""" +input proposal_tally_result_stddev_pop_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate stddev_samp on columns""" +type proposal_tally_result_stddev_samp_fields { + height: Float + proposal_id: Float +} + +""" +order by stddev_samp() on columns of table "proposal_tally_result" +""" +input proposal_tally_result_stddev_samp_order_by { + height: order_by + proposal_id: order_by +} + +""" +Streaming cursor of the table "proposal_tally_result" +""" +input proposal_tally_result_stream_cursor_input { + """Stream column input with initial value""" + initial_value: proposal_tally_result_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input proposal_tally_result_stream_cursor_value_input { + abstain: String + height: bigint + no: String + no_with_veto: String + proposal_id: Int + yes: String +} + +"""aggregate sum on columns""" +type proposal_tally_result_sum_fields { + height: bigint + proposal_id: Int +} + +""" +order by sum() on columns of table "proposal_tally_result" +""" +input proposal_tally_result_sum_order_by { + height: order_by + proposal_id: order_by +} + +""" +update columns of table "proposal_tally_result" +""" +enum proposal_tally_result_update_column { + """column name""" + abstain + + """column name""" + height + + """column name""" + no + + """column name""" + no_with_veto + + """column name""" + proposal_id + + """column name""" + yes +} + +input proposal_tally_result_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_tally_result_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_tally_result_set_input + + """filter the rows which have to be updated""" + where: proposal_tally_result_bool_exp! +} + +"""aggregate var_pop on columns""" +type proposal_tally_result_var_pop_fields { + height: Float + proposal_id: Float +} + +""" +order by var_pop() on columns of table "proposal_tally_result" +""" +input proposal_tally_result_var_pop_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate var_samp on columns""" +type proposal_tally_result_var_samp_fields { + height: Float + proposal_id: Float +} + +""" +order by var_samp() on columns of table "proposal_tally_result" +""" +input proposal_tally_result_var_samp_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate variance on columns""" +type proposal_tally_result_variance_fields { + height: Float + proposal_id: Float +} + +""" +order by variance() on columns of table "proposal_tally_result" +""" +input proposal_tally_result_variance_order_by { + height: order_by + proposal_id: order_by +} + +""" +update columns of table "proposal" +""" +enum proposal_update_column { + """column name""" + content + + """column name""" + deposit_end_time + + """column name""" + description + + """column name""" + id + + """column name""" + metadata + + """column name""" + proposer_address + + """column name""" + status + + """column name""" + submit_time + + """column name""" + title + + """column name""" + voting_end_time + + """column name""" + voting_start_time +} + +input proposal_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: proposal_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: proposal_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: proposal_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: proposal_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: proposal_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_set_input + + """filter the rows which have to be updated""" + where: proposal_bool_exp! +} + +""" +columns and relationships of "proposal_validator_status_snapshot" +""" +type proposal_validator_status_snapshot { + height: bigint! + id: Int! + jailed: Boolean! + + """An object relationship""" + proposal: proposal + proposal_id: Int + status: Int! + + """An object relationship""" + validator: validator! + validator_address: String! + voting_power: bigint! +} + +""" +aggregated selection of "proposal_validator_status_snapshot" +""" +type proposal_validator_status_snapshot_aggregate { + aggregate: proposal_validator_status_snapshot_aggregate_fields + nodes: [proposal_validator_status_snapshot!]! +} + +input proposal_validator_status_snapshot_aggregate_bool_exp { + bool_and: proposal_validator_status_snapshot_aggregate_bool_exp_bool_and + bool_or: proposal_validator_status_snapshot_aggregate_bool_exp_bool_or + count: proposal_validator_status_snapshot_aggregate_bool_exp_count +} + +input proposal_validator_status_snapshot_aggregate_bool_exp_bool_and { + arguments: proposal_validator_status_snapshot_select_column_proposal_validator_status_snapshot_aggregate_bool_exp_bool_and_arguments_columns! + distinct: Boolean + filter: proposal_validator_status_snapshot_bool_exp + predicate: Boolean_comparison_exp! +} + +input proposal_validator_status_snapshot_aggregate_bool_exp_bool_or { + arguments: proposal_validator_status_snapshot_select_column_proposal_validator_status_snapshot_aggregate_bool_exp_bool_or_arguments_columns! + distinct: Boolean + filter: proposal_validator_status_snapshot_bool_exp + predicate: Boolean_comparison_exp! +} + +input proposal_validator_status_snapshot_aggregate_bool_exp_count { + arguments: [proposal_validator_status_snapshot_select_column!] + distinct: Boolean + filter: proposal_validator_status_snapshot_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "proposal_validator_status_snapshot" +""" +type proposal_validator_status_snapshot_aggregate_fields { + avg: proposal_validator_status_snapshot_avg_fields + count(columns: [proposal_validator_status_snapshot_select_column!], distinct: Boolean): Int! + max: proposal_validator_status_snapshot_max_fields + min: proposal_validator_status_snapshot_min_fields + stddev: proposal_validator_status_snapshot_stddev_fields + stddev_pop: proposal_validator_status_snapshot_stddev_pop_fields + stddev_samp: proposal_validator_status_snapshot_stddev_samp_fields + sum: proposal_validator_status_snapshot_sum_fields + var_pop: proposal_validator_status_snapshot_var_pop_fields + var_samp: proposal_validator_status_snapshot_var_samp_fields + variance: proposal_validator_status_snapshot_variance_fields +} + +""" +order by aggregate values of table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_aggregate_order_by { + avg: proposal_validator_status_snapshot_avg_order_by + count: order_by + max: proposal_validator_status_snapshot_max_order_by + min: proposal_validator_status_snapshot_min_order_by + stddev: proposal_validator_status_snapshot_stddev_order_by + stddev_pop: proposal_validator_status_snapshot_stddev_pop_order_by + stddev_samp: proposal_validator_status_snapshot_stddev_samp_order_by + sum: proposal_validator_status_snapshot_sum_order_by + var_pop: proposal_validator_status_snapshot_var_pop_order_by + var_samp: proposal_validator_status_snapshot_var_samp_order_by + variance: proposal_validator_status_snapshot_variance_order_by +} + +""" +input type for inserting array relation for remote table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_arr_rel_insert_input { + data: [proposal_validator_status_snapshot_insert_input!]! + + """upsert condition""" + on_conflict: proposal_validator_status_snapshot_on_conflict +} + +"""aggregate avg on columns""" +type proposal_validator_status_snapshot_avg_fields { + height: Float + id: Float + proposal_id: Float + status: Float + voting_power: Float +} + +""" +order by avg() on columns of table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_avg_order_by { + height: order_by + id: order_by + proposal_id: order_by + status: order_by + voting_power: order_by +} + +""" +Boolean expression to filter rows from the table "proposal_validator_status_snapshot". All fields are combined with a logical 'AND'. +""" +input proposal_validator_status_snapshot_bool_exp { + _and: [proposal_validator_status_snapshot_bool_exp!] + _not: proposal_validator_status_snapshot_bool_exp + _or: [proposal_validator_status_snapshot_bool_exp!] + height: bigint_comparison_exp + id: Int_comparison_exp + jailed: Boolean_comparison_exp + proposal: proposal_bool_exp + proposal_id: Int_comparison_exp + status: Int_comparison_exp + validator: validator_bool_exp + validator_address: String_comparison_exp + voting_power: bigint_comparison_exp +} + +""" +unique or primary key constraints on table "proposal_validator_status_snapshot" +""" +enum proposal_validator_status_snapshot_constraint { + """ + unique or primary key constraint on columns "id" + """ + proposal_validator_status_snapshot_pkey + + """ + unique or primary key constraint on columns "validator_address", "proposal_id" + """ + unique_validator_status_snapshot +} + +""" +input type for incrementing numeric columns in table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_inc_input { + height: bigint + id: Int + proposal_id: Int + status: Int + voting_power: bigint +} + +""" +input type for inserting data into table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_insert_input { + height: bigint + id: Int + jailed: Boolean + proposal: proposal_obj_rel_insert_input + proposal_id: Int + status: Int + validator: validator_obj_rel_insert_input + validator_address: String + voting_power: bigint +} + +"""aggregate max on columns""" +type proposal_validator_status_snapshot_max_fields { + height: bigint + id: Int + proposal_id: Int + status: Int + validator_address: String + voting_power: bigint +} + +""" +order by max() on columns of table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_max_order_by { + height: order_by + id: order_by + proposal_id: order_by + status: order_by + validator_address: order_by + voting_power: order_by +} + +"""aggregate min on columns""" +type proposal_validator_status_snapshot_min_fields { + height: bigint + id: Int + proposal_id: Int + status: Int + validator_address: String + voting_power: bigint +} + +""" +order by min() on columns of table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_min_order_by { + height: order_by + id: order_by + proposal_id: order_by + status: order_by + validator_address: order_by + voting_power: order_by +} + +""" +response of any mutation on the table "proposal_validator_status_snapshot" +""" +type proposal_validator_status_snapshot_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [proposal_validator_status_snapshot!]! +} + +""" +input type for inserting object relation for remote table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_obj_rel_insert_input { + data: proposal_validator_status_snapshot_insert_input! + + """upsert condition""" + on_conflict: proposal_validator_status_snapshot_on_conflict +} + +""" +on_conflict condition type for table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_on_conflict { + constraint: proposal_validator_status_snapshot_constraint! + update_columns: [proposal_validator_status_snapshot_update_column!]! = [] + where: proposal_validator_status_snapshot_bool_exp +} + +""" +Ordering options when selecting data from "proposal_validator_status_snapshot". +""" +input proposal_validator_status_snapshot_order_by { + height: order_by + id: order_by + jailed: order_by + proposal: proposal_order_by + proposal_id: order_by + status: order_by + validator: validator_order_by + validator_address: order_by + voting_power: order_by +} + +""" +primary key columns input for table: proposal_validator_status_snapshot +""" +input proposal_validator_status_snapshot_pk_columns_input { + id: Int! +} + +""" +select columns of table "proposal_validator_status_snapshot" +""" +enum proposal_validator_status_snapshot_select_column { + """column name""" + height + + """column name""" + id + + """column name""" + jailed + + """column name""" + proposal_id + + """column name""" + status + + """column name""" + validator_address + + """column name""" + voting_power +} + +""" +select "proposal_validator_status_snapshot_aggregate_bool_exp_bool_and_arguments_columns" columns of table "proposal_validator_status_snapshot" +""" +enum proposal_validator_status_snapshot_select_column_proposal_validator_status_snapshot_aggregate_bool_exp_bool_and_arguments_columns { + """column name""" + jailed +} + +""" +select "proposal_validator_status_snapshot_aggregate_bool_exp_bool_or_arguments_columns" columns of table "proposal_validator_status_snapshot" +""" +enum proposal_validator_status_snapshot_select_column_proposal_validator_status_snapshot_aggregate_bool_exp_bool_or_arguments_columns { + """column name""" + jailed +} + +""" +input type for updating data in table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_set_input { + height: bigint + id: Int + jailed: Boolean + proposal_id: Int + status: Int + validator_address: String + voting_power: bigint +} + +"""aggregate stddev on columns""" +type proposal_validator_status_snapshot_stddev_fields { + height: Float + id: Float + proposal_id: Float + status: Float + voting_power: Float +} + +""" +order by stddev() on columns of table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_stddev_order_by { + height: order_by + id: order_by + proposal_id: order_by + status: order_by + voting_power: order_by +} + +"""aggregate stddev_pop on columns""" +type proposal_validator_status_snapshot_stddev_pop_fields { + height: Float + id: Float + proposal_id: Float + status: Float + voting_power: Float +} + +""" +order by stddev_pop() on columns of table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_stddev_pop_order_by { + height: order_by + id: order_by + proposal_id: order_by + status: order_by + voting_power: order_by +} + +"""aggregate stddev_samp on columns""" +type proposal_validator_status_snapshot_stddev_samp_fields { + height: Float + id: Float + proposal_id: Float + status: Float + voting_power: Float +} + +""" +order by stddev_samp() on columns of table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_stddev_samp_order_by { + height: order_by + id: order_by + proposal_id: order_by + status: order_by + voting_power: order_by +} + +""" +Streaming cursor of the table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_stream_cursor_input { + """Stream column input with initial value""" + initial_value: proposal_validator_status_snapshot_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input proposal_validator_status_snapshot_stream_cursor_value_input { + height: bigint + id: Int + jailed: Boolean + proposal_id: Int + status: Int + validator_address: String + voting_power: bigint +} + +"""aggregate sum on columns""" +type proposal_validator_status_snapshot_sum_fields { + height: bigint + id: Int + proposal_id: Int + status: Int + voting_power: bigint +} + +""" +order by sum() on columns of table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_sum_order_by { + height: order_by + id: order_by + proposal_id: order_by + status: order_by + voting_power: order_by +} + +""" +update columns of table "proposal_validator_status_snapshot" +""" +enum proposal_validator_status_snapshot_update_column { + """column name""" + height + + """column name""" + id + + """column name""" + jailed + + """column name""" + proposal_id + + """column name""" + status + + """column name""" + validator_address + + """column name""" + voting_power +} + +input proposal_validator_status_snapshot_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_validator_status_snapshot_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_validator_status_snapshot_set_input + + """filter the rows which have to be updated""" + where: proposal_validator_status_snapshot_bool_exp! +} + +"""aggregate var_pop on columns""" +type proposal_validator_status_snapshot_var_pop_fields { + height: Float + id: Float + proposal_id: Float + status: Float + voting_power: Float +} + +""" +order by var_pop() on columns of table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_var_pop_order_by { + height: order_by + id: order_by + proposal_id: order_by + status: order_by + voting_power: order_by +} + +"""aggregate var_samp on columns""" +type proposal_validator_status_snapshot_var_samp_fields { + height: Float + id: Float + proposal_id: Float + status: Float + voting_power: Float +} + +""" +order by var_samp() on columns of table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_var_samp_order_by { + height: order_by + id: order_by + proposal_id: order_by + status: order_by + voting_power: order_by +} + +"""aggregate variance on columns""" +type proposal_validator_status_snapshot_variance_fields { + height: Float + id: Float + proposal_id: Float + status: Float + voting_power: Float +} + +""" +order by variance() on columns of table "proposal_validator_status_snapshot" +""" +input proposal_validator_status_snapshot_variance_order_by { + height: order_by + id: order_by + proposal_id: order_by + status: order_by + voting_power: order_by +} + +"""aggregate var_pop on columns""" +type proposal_var_pop_fields { + id: Float +} + +""" +order by var_pop() on columns of table "proposal" +""" +input proposal_var_pop_order_by { + id: order_by +} + +"""aggregate var_samp on columns""" +type proposal_var_samp_fields { + id: Float +} + +""" +order by var_samp() on columns of table "proposal" +""" +input proposal_var_samp_order_by { + id: order_by +} + +"""aggregate variance on columns""" +type proposal_variance_fields { + id: Float +} + +""" +order by variance() on columns of table "proposal" +""" +input proposal_variance_order_by { + id: order_by +} + +""" +columns and relationships of "proposal_vote" +""" +type proposal_vote { + """An object relationship""" + account: account! + + """An object relationship""" + block: block + height: bigint! + option: String! + + """An object relationship""" + proposal: proposal! + proposal_id: Int! + timestamp: timestamp + voter_address: String! + weight: String! +} + +""" +aggregated selection of "proposal_vote" +""" +type proposal_vote_aggregate { + aggregate: proposal_vote_aggregate_fields + nodes: [proposal_vote!]! +} + +input proposal_vote_aggregate_bool_exp { + count: proposal_vote_aggregate_bool_exp_count +} + +input proposal_vote_aggregate_bool_exp_count { + arguments: [proposal_vote_select_column!] + distinct: Boolean + filter: proposal_vote_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "proposal_vote" +""" +type proposal_vote_aggregate_fields { + avg: proposal_vote_avg_fields + count(columns: [proposal_vote_select_column!], distinct: Boolean): Int! + max: proposal_vote_max_fields + min: proposal_vote_min_fields + stddev: proposal_vote_stddev_fields + stddev_pop: proposal_vote_stddev_pop_fields + stddev_samp: proposal_vote_stddev_samp_fields + sum: proposal_vote_sum_fields + var_pop: proposal_vote_var_pop_fields + var_samp: proposal_vote_var_samp_fields + variance: proposal_vote_variance_fields +} + +""" +order by aggregate values of table "proposal_vote" +""" +input proposal_vote_aggregate_order_by { + avg: proposal_vote_avg_order_by + count: order_by + max: proposal_vote_max_order_by + min: proposal_vote_min_order_by + stddev: proposal_vote_stddev_order_by + stddev_pop: proposal_vote_stddev_pop_order_by + stddev_samp: proposal_vote_stddev_samp_order_by + sum: proposal_vote_sum_order_by + var_pop: proposal_vote_var_pop_order_by + var_samp: proposal_vote_var_samp_order_by + variance: proposal_vote_variance_order_by +} + +""" +input type for inserting array relation for remote table "proposal_vote" +""" +input proposal_vote_arr_rel_insert_input { + data: [proposal_vote_insert_input!]! + + """upsert condition""" + on_conflict: proposal_vote_on_conflict +} + +"""aggregate avg on columns""" +type proposal_vote_avg_fields { + height: Float + proposal_id: Float +} + +""" +order by avg() on columns of table "proposal_vote" +""" +input proposal_vote_avg_order_by { + height: order_by + proposal_id: order_by +} + +""" +Boolean expression to filter rows from the table "proposal_vote". All fields are combined with a logical 'AND'. +""" +input proposal_vote_bool_exp { + _and: [proposal_vote_bool_exp!] + _not: proposal_vote_bool_exp + _or: [proposal_vote_bool_exp!] + account: account_bool_exp + block: block_bool_exp + height: bigint_comparison_exp + option: String_comparison_exp + proposal: proposal_bool_exp + proposal_id: Int_comparison_exp + timestamp: timestamp_comparison_exp + voter_address: String_comparison_exp + weight: String_comparison_exp +} + +""" +unique or primary key constraints on table "proposal_vote" +""" +enum proposal_vote_constraint { + """ + unique or primary key constraint on columns "voter_address", "option", "proposal_id" + """ + unique_vote +} + +""" +input type for incrementing numeric columns in table "proposal_vote" +""" +input proposal_vote_inc_input { + height: bigint + proposal_id: Int +} + +""" +input type for inserting data into table "proposal_vote" +""" +input proposal_vote_insert_input { + account: account_obj_rel_insert_input + block: block_obj_rel_insert_input + height: bigint + option: String + proposal: proposal_obj_rel_insert_input + proposal_id: Int + timestamp: timestamp + voter_address: String + weight: String +} + +"""aggregate max on columns""" +type proposal_vote_max_fields { + height: bigint + option: String + proposal_id: Int + timestamp: timestamp + voter_address: String + weight: String +} + +""" +order by max() on columns of table "proposal_vote" +""" +input proposal_vote_max_order_by { + height: order_by + option: order_by + proposal_id: order_by + timestamp: order_by + voter_address: order_by + weight: order_by +} + +"""aggregate min on columns""" +type proposal_vote_min_fields { + height: bigint + option: String + proposal_id: Int + timestamp: timestamp + voter_address: String + weight: String +} + +""" +order by min() on columns of table "proposal_vote" +""" +input proposal_vote_min_order_by { + height: order_by + option: order_by + proposal_id: order_by + timestamp: order_by + voter_address: order_by + weight: order_by +} + +""" +response of any mutation on the table "proposal_vote" +""" +type proposal_vote_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [proposal_vote!]! +} + +""" +on_conflict condition type for table "proposal_vote" +""" +input proposal_vote_on_conflict { + constraint: proposal_vote_constraint! + update_columns: [proposal_vote_update_column!]! = [] + where: proposal_vote_bool_exp +} + +"""Ordering options when selecting data from "proposal_vote".""" +input proposal_vote_order_by { + account: account_order_by + block: block_order_by + height: order_by + option: order_by + proposal: proposal_order_by + proposal_id: order_by + timestamp: order_by + voter_address: order_by + weight: order_by +} + +""" +select columns of table "proposal_vote" +""" +enum proposal_vote_select_column { + """column name""" + height + + """column name""" + option + + """column name""" + proposal_id + + """column name""" + timestamp + + """column name""" + voter_address + + """column name""" + weight +} + +""" +input type for updating data in table "proposal_vote" +""" +input proposal_vote_set_input { + height: bigint + option: String + proposal_id: Int + timestamp: timestamp + voter_address: String + weight: String +} + +"""aggregate stddev on columns""" +type proposal_vote_stddev_fields { + height: Float + proposal_id: Float +} + +""" +order by stddev() on columns of table "proposal_vote" +""" +input proposal_vote_stddev_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate stddev_pop on columns""" +type proposal_vote_stddev_pop_fields { + height: Float + proposal_id: Float +} + +""" +order by stddev_pop() on columns of table "proposal_vote" +""" +input proposal_vote_stddev_pop_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate stddev_samp on columns""" +type proposal_vote_stddev_samp_fields { + height: Float + proposal_id: Float +} + +""" +order by stddev_samp() on columns of table "proposal_vote" +""" +input proposal_vote_stddev_samp_order_by { + height: order_by + proposal_id: order_by +} + +""" +Streaming cursor of the table "proposal_vote" +""" +input proposal_vote_stream_cursor_input { + """Stream column input with initial value""" + initial_value: proposal_vote_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input proposal_vote_stream_cursor_value_input { + height: bigint + option: String + proposal_id: Int + timestamp: timestamp + voter_address: String + weight: String +} + +"""aggregate sum on columns""" +type proposal_vote_sum_fields { + height: bigint + proposal_id: Int +} + +""" +order by sum() on columns of table "proposal_vote" +""" +input proposal_vote_sum_order_by { + height: order_by + proposal_id: order_by +} + +""" +update columns of table "proposal_vote" +""" +enum proposal_vote_update_column { + """column name""" + height + + """column name""" + option + + """column name""" + proposal_id + + """column name""" + timestamp + + """column name""" + voter_address + + """column name""" + weight +} + +input proposal_vote_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: proposal_vote_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: proposal_vote_set_input + + """filter the rows which have to be updated""" + where: proposal_vote_bool_exp! +} + +"""aggregate var_pop on columns""" +type proposal_vote_var_pop_fields { + height: Float + proposal_id: Float +} + +""" +order by var_pop() on columns of table "proposal_vote" +""" +input proposal_vote_var_pop_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate var_samp on columns""" +type proposal_vote_var_samp_fields { + height: Float + proposal_id: Float +} + +""" +order by var_samp() on columns of table "proposal_vote" +""" +input proposal_vote_var_samp_order_by { + height: order_by + proposal_id: order_by +} + +"""aggregate variance on columns""" +type proposal_vote_variance_fields { + height: Float + proposal_id: Float +} + +""" +order by variance() on columns of table "proposal_vote" +""" +input proposal_vote_variance_order_by { + height: order_by + proposal_id: order_by +} + +type query_root { + """ + fetch data from the table: "account" + """ + account( + """distinct select on columns""" + distinct_on: [account_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [account_order_by!] + + """filter the rows returned""" + where: account_bool_exp + ): [account!]! + + """ + fetch aggregated fields from the table: "account" + """ + account_aggregate( + """distinct select on columns""" + distinct_on: [account_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [account_order_by!] + + """filter the rows returned""" + where: account_bool_exp + ): account_aggregate! + + """fetch data from the table: "account" using primary key columns""" + account_by_pk(address: String!): account + + """ + fetch data from the table: "account_denom_balance" + """ + account_denom_balance( + """distinct select on columns""" + distinct_on: [account_denom_balance_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [account_denom_balance_order_by!] + + """filter the rows returned""" + where: account_denom_balance_bool_exp + ): [account_denom_balance!]! + + """ + fetch aggregated fields from the table: "account_denom_balance" + """ + account_denom_balance_aggregate( + """distinct select on columns""" + distinct_on: [account_denom_balance_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [account_denom_balance_order_by!] + + """filter the rows returned""" + where: account_denom_balance_bool_exp + ): account_denom_balance_aggregate! + + """ + fetch data from the table: "account_denom_balance" using primary key columns + """ + account_denom_balance_by_pk(address: String!, denom: String!): account_denom_balance + action_account_balance(address: String!, height: Int): ActionBalance + action_delegation(address: String!, count_total: Boolean, height: Int, limit: Int, offset: Int): ActionDelegationResponse + action_delegation_reward(address: String!, height: Int): [ActionDelegationReward] + action_delegation_total(address: String!, height: Int): ActionBalance + action_delegator_withdraw_address(address: String!): ActionAddress! + action_redelegation(address: String!, count_total: Boolean, height: Int, limit: Int, offset: Int): ActionRedelegationResponse + action_unbonding_delegation(address: String!, count_total: Boolean, height: Int, limit: Int, offset: Int): ActionUnbondingDelegationResponse + action_unbonding_delegation_total(address: String!, height: Int): ActionBalance + action_validator_commission_amount(address: String!): ActionValidatorCommissionAmount + action_validator_delegations(address: String!, count_total: Boolean, limit: Int, offset: Int): ActionDelegationResponse + action_validator_redelegations_from(address: String!, count_total: Boolean, height: Int, limit: Int, offset: Int): ActionRedelegationResponse + action_validator_unbonding_delegations(address: String!, count_total: Boolean, limit: Int, offset: Int): ActionUnbondingDelegationResponse + + """ + fetch data from the table: "assetft_params" + """ + assetft_params( + """distinct select on columns""" + distinct_on: [assetft_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [assetft_params_order_by!] + + """filter the rows returned""" + where: assetft_params_bool_exp + ): [assetft_params!]! + + """ + fetch aggregated fields from the table: "assetft_params" + """ + assetft_params_aggregate( + """distinct select on columns""" + distinct_on: [assetft_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [assetft_params_order_by!] + + """filter the rows returned""" + where: assetft_params_bool_exp + ): assetft_params_aggregate! + + """fetch data from the table: "assetft_params" using primary key columns""" + assetft_params_by_pk(one_row_id: Boolean!): assetft_params + + """ + fetch data from the table: "assetnft_params" + """ + assetnft_params( + """distinct select on columns""" + distinct_on: [assetnft_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [assetnft_params_order_by!] + + """filter the rows returned""" + where: assetnft_params_bool_exp + ): [assetnft_params!]! + + """ + fetch aggregated fields from the table: "assetnft_params" + """ + assetnft_params_aggregate( + """distinct select on columns""" + distinct_on: [assetnft_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [assetnft_params_order_by!] + + """filter the rows returned""" + where: assetnft_params_bool_exp + ): assetnft_params_aggregate! + + """fetch data from the table: "assetnft_params" using primary key columns""" + assetnft_params_by_pk(one_row_id: Boolean!): assetnft_params + + """ + fetch data from the table: "auth_params" + """ + auth_params( + """distinct select on columns""" + distinct_on: [auth_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [auth_params_order_by!] + + """filter the rows returned""" + where: auth_params_bool_exp + ): [auth_params!]! + + """ + fetch aggregated fields from the table: "auth_params" + """ + auth_params_aggregate( + """distinct select on columns""" + distinct_on: [auth_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [auth_params_order_by!] + + """filter the rows returned""" + where: auth_params_bool_exp + ): auth_params_aggregate! + + """fetch data from the table: "auth_params" using primary key columns""" + auth_params_by_pk(one_row_id: Boolean!): auth_params + + """ + fetch data from the table: "average_block_time_from_genesis" + """ + average_block_time_from_genesis( + """distinct select on columns""" + distinct_on: [average_block_time_from_genesis_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_from_genesis_order_by!] + + """filter the rows returned""" + where: average_block_time_from_genesis_bool_exp + ): [average_block_time_from_genesis!]! + + """ + fetch aggregated fields from the table: "average_block_time_from_genesis" + """ + average_block_time_from_genesis_aggregate( + """distinct select on columns""" + distinct_on: [average_block_time_from_genesis_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_from_genesis_order_by!] + + """filter the rows returned""" + where: average_block_time_from_genesis_bool_exp + ): average_block_time_from_genesis_aggregate! + + """ + fetch data from the table: "average_block_time_from_genesis" using primary key columns + """ + average_block_time_from_genesis_by_pk(one_row_id: Boolean!): average_block_time_from_genesis + + """ + fetch data from the table: "average_block_time_per_day" + """ + average_block_time_per_day( + """distinct select on columns""" + distinct_on: [average_block_time_per_day_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_day_order_by!] + + """filter the rows returned""" + where: average_block_time_per_day_bool_exp + ): [average_block_time_per_day!]! + + """ + fetch aggregated fields from the table: "average_block_time_per_day" + """ + average_block_time_per_day_aggregate( + """distinct select on columns""" + distinct_on: [average_block_time_per_day_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_day_order_by!] + + """filter the rows returned""" + where: average_block_time_per_day_bool_exp + ): average_block_time_per_day_aggregate! + + """ + fetch data from the table: "average_block_time_per_day" using primary key columns + """ + average_block_time_per_day_by_pk(one_row_id: Boolean!): average_block_time_per_day + + """ + fetch data from the table: "average_block_time_per_hour" + """ + average_block_time_per_hour( + """distinct select on columns""" + distinct_on: [average_block_time_per_hour_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_hour_order_by!] + + """filter the rows returned""" + where: average_block_time_per_hour_bool_exp + ): [average_block_time_per_hour!]! + + """ + fetch aggregated fields from the table: "average_block_time_per_hour" + """ + average_block_time_per_hour_aggregate( + """distinct select on columns""" + distinct_on: [average_block_time_per_hour_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_hour_order_by!] + + """filter the rows returned""" + where: average_block_time_per_hour_bool_exp + ): average_block_time_per_hour_aggregate! + + """ + fetch data from the table: "average_block_time_per_hour" using primary key columns + """ + average_block_time_per_hour_by_pk(one_row_id: Boolean!): average_block_time_per_hour + + """ + fetch data from the table: "average_block_time_per_minute" + """ + average_block_time_per_minute( + """distinct select on columns""" + distinct_on: [average_block_time_per_minute_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_minute_order_by!] + + """filter the rows returned""" + where: average_block_time_per_minute_bool_exp + ): [average_block_time_per_minute!]! + + """ + fetch aggregated fields from the table: "average_block_time_per_minute" + """ + average_block_time_per_minute_aggregate( + """distinct select on columns""" + distinct_on: [average_block_time_per_minute_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_minute_order_by!] + + """filter the rows returned""" + where: average_block_time_per_minute_bool_exp + ): average_block_time_per_minute_aggregate! + + """ + fetch data from the table: "average_block_time_per_minute" using primary key columns + """ + average_block_time_per_minute_by_pk(one_row_id: Boolean!): average_block_time_per_minute + + """ + fetch data from the table: "block" + """ + block( + """distinct select on columns""" + distinct_on: [block_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [block_order_by!] + + """filter the rows returned""" + where: block_bool_exp + ): [block!]! + + """ + fetch aggregated fields from the table: "block" + """ + block_aggregate( + """distinct select on columns""" + distinct_on: [block_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [block_order_by!] + + """filter the rows returned""" + where: block_bool_exp + ): block_aggregate! + + """fetch data from the table: "block" using primary key columns""" + block_by_pk(height: bigint!): block + + """ + fetch data from the table: "community_pool" + """ + community_pool( + """distinct select on columns""" + distinct_on: [community_pool_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [community_pool_order_by!] + + """filter the rows returned""" + where: community_pool_bool_exp + ): [community_pool!]! + + """ + fetch aggregated fields from the table: "community_pool" + """ + community_pool_aggregate( + """distinct select on columns""" + distinct_on: [community_pool_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [community_pool_order_by!] + + """filter the rows returned""" + where: community_pool_bool_exp + ): community_pool_aggregate! + + """fetch data from the table: "community_pool" using primary key columns""" + community_pool_by_pk(one_row_id: Boolean!): community_pool + + """ + fetch data from the table: "customparams_params" + """ + customparams_params( + """distinct select on columns""" + distinct_on: [customparams_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [customparams_params_order_by!] + + """filter the rows returned""" + where: customparams_params_bool_exp + ): [customparams_params!]! + + """ + fetch aggregated fields from the table: "customparams_params" + """ + customparams_params_aggregate( + """distinct select on columns""" + distinct_on: [customparams_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [customparams_params_order_by!] + + """filter the rows returned""" + where: customparams_params_bool_exp + ): customparams_params_aggregate! + + """ + fetch data from the table: "customparams_params" using primary key columns + """ + customparams_params_by_pk(one_row_id: Boolean!): customparams_params + + """ + fetch data from the table: "dex_params" + """ + dex_params( + """distinct select on columns""" + distinct_on: [dex_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [dex_params_order_by!] + + """filter the rows returned""" + where: dex_params_bool_exp + ): [dex_params!]! + + """ + fetch aggregated fields from the table: "dex_params" + """ + dex_params_aggregate( + """distinct select on columns""" + distinct_on: [dex_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [dex_params_order_by!] + + """filter the rows returned""" + where: dex_params_bool_exp + ): dex_params_aggregate! + + """fetch data from the table: "dex_params" using primary key columns""" + dex_params_by_pk(one_row_id: Boolean!): dex_params + + """ + fetch data from the table: "distribution_params" + """ + distribution_params( + """distinct select on columns""" + distinct_on: [distribution_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [distribution_params_order_by!] + + """filter the rows returned""" + where: distribution_params_bool_exp + ): [distribution_params!]! + + """ + fetch aggregated fields from the table: "distribution_params" + """ + distribution_params_aggregate( + """distinct select on columns""" + distinct_on: [distribution_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [distribution_params_order_by!] + + """filter the rows returned""" + where: distribution_params_bool_exp + ): distribution_params_aggregate! + + """ + fetch data from the table: "distribution_params" using primary key columns + """ + distribution_params_by_pk(one_row_id: Boolean!): distribution_params + + """ + fetch data from the table: "double_sign_evidence" + """ + double_sign_evidence( + """distinct select on columns""" + distinct_on: [double_sign_evidence_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_evidence_order_by!] + + """filter the rows returned""" + where: double_sign_evidence_bool_exp + ): [double_sign_evidence!]! + + """ + fetch aggregated fields from the table: "double_sign_evidence" + """ + double_sign_evidence_aggregate( + """distinct select on columns""" + distinct_on: [double_sign_evidence_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_evidence_order_by!] + + """filter the rows returned""" + where: double_sign_evidence_bool_exp + ): double_sign_evidence_aggregate! + + """ + fetch data from the table: "double_sign_vote" + """ + double_sign_vote( + """distinct select on columns""" + distinct_on: [double_sign_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_vote_order_by!] + + """filter the rows returned""" + where: double_sign_vote_bool_exp + ): [double_sign_vote!]! + + """ + fetch aggregated fields from the table: "double_sign_vote" + """ + double_sign_vote_aggregate( + """distinct select on columns""" + distinct_on: [double_sign_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_vote_order_by!] + + """filter the rows returned""" + where: double_sign_vote_bool_exp + ): double_sign_vote_aggregate! + + """ + fetch data from the table: "double_sign_vote" using primary key columns + """ + double_sign_vote_by_pk(id: Int!): double_sign_vote + + """ + fetch data from the table: "fee_grant_allowance" + """ + fee_grant_allowance( + """distinct select on columns""" + distinct_on: [fee_grant_allowance_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [fee_grant_allowance_order_by!] + + """filter the rows returned""" + where: fee_grant_allowance_bool_exp + ): [fee_grant_allowance!]! + + """ + fetch aggregated fields from the table: "fee_grant_allowance" + """ + fee_grant_allowance_aggregate( + """distinct select on columns""" + distinct_on: [fee_grant_allowance_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [fee_grant_allowance_order_by!] + + """filter the rows returned""" + where: fee_grant_allowance_bool_exp + ): fee_grant_allowance_aggregate! + + """ + fetch data from the table: "fee_grant_allowance" using primary key columns + """ + fee_grant_allowance_by_pk(id: Int!): fee_grant_allowance + + """ + fetch data from the table: "feemodel_params" + """ + feemodel_params( + """distinct select on columns""" + distinct_on: [feemodel_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [feemodel_params_order_by!] + + """filter the rows returned""" + where: feemodel_params_bool_exp + ): [feemodel_params!]! + + """ + fetch aggregated fields from the table: "feemodel_params" + """ + feemodel_params_aggregate( + """distinct select on columns""" + distinct_on: [feemodel_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [feemodel_params_order_by!] + + """filter the rows returned""" + where: feemodel_params_bool_exp + ): feemodel_params_aggregate! + + """fetch data from the table: "feemodel_params" using primary key columns""" + feemodel_params_by_pk(one_row_id: Boolean!): feemodel_params + + """ + fetch data from the table: "genesis" + """ + genesis( + """distinct select on columns""" + distinct_on: [genesis_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [genesis_order_by!] + + """filter the rows returned""" + where: genesis_bool_exp + ): [genesis!]! + + """ + fetch aggregated fields from the table: "genesis" + """ + genesis_aggregate( + """distinct select on columns""" + distinct_on: [genesis_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [genesis_order_by!] + + """filter the rows returned""" + where: genesis_bool_exp + ): genesis_aggregate! + + """fetch data from the table: "genesis" using primary key columns""" + genesis_by_pk(one_row_id: Boolean!): genesis + + """ + fetch data from the table: "gov_params" + """ + gov_params( + """distinct select on columns""" + distinct_on: [gov_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [gov_params_order_by!] + + """filter the rows returned""" + where: gov_params_bool_exp + ): [gov_params!]! + + """ + fetch aggregated fields from the table: "gov_params" + """ + gov_params_aggregate( + """distinct select on columns""" + distinct_on: [gov_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [gov_params_order_by!] + + """filter the rows returned""" + where: gov_params_bool_exp + ): gov_params_aggregate! + + """fetch data from the table: "gov_params" using primary key columns""" + gov_params_by_pk(one_row_id: Boolean!): gov_params + + """ + fetch data from the table: "inflation" + """ + inflation( + """distinct select on columns""" + distinct_on: [inflation_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [inflation_order_by!] + + """filter the rows returned""" + where: inflation_bool_exp + ): [inflation!]! + + """ + fetch aggregated fields from the table: "inflation" + """ + inflation_aggregate( + """distinct select on columns""" + distinct_on: [inflation_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [inflation_order_by!] + + """filter the rows returned""" + where: inflation_bool_exp + ): inflation_aggregate! + + """fetch data from the table: "inflation" using primary key columns""" + inflation_by_pk(one_row_id: Boolean!): inflation + + """ + fetch data from the table: "message" + """ + message( + """distinct select on columns""" + distinct_on: [message_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [message_order_by!] + + """filter the rows returned""" + where: message_bool_exp + ): [message!]! + + """ + fetch aggregated fields from the table: "message" + """ + message_aggregate( + """distinct select on columns""" + distinct_on: [message_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [message_order_by!] + + """filter the rows returned""" + where: message_bool_exp + ): message_aggregate! + + """ + execute function "messages_by_address" which returns "message" + """ + messages_by_address( + """ + input parameters for function "messages_by_address" + """ + args: messages_by_address_args! + + """distinct select on columns""" + distinct_on: [message_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [message_order_by!] + + """filter the rows returned""" + where: message_bool_exp + ): [message!]! + + """ + execute function "messages_by_address" and query aggregates on result of table type "message" + """ + messages_by_address_aggregate( + """ + input parameters for function "messages_by_address_aggregate" + """ + args: messages_by_address_args! + + """distinct select on columns""" + distinct_on: [message_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [message_order_by!] + + """filter the rows returned""" + where: message_bool_exp + ): message_aggregate! + + """ + fetch data from the table: "mint_params" + """ + mint_params( + """distinct select on columns""" + distinct_on: [mint_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [mint_params_order_by!] + + """filter the rows returned""" + where: mint_params_bool_exp + ): [mint_params!]! + + """ + fetch aggregated fields from the table: "mint_params" + """ + mint_params_aggregate( + """distinct select on columns""" + distinct_on: [mint_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [mint_params_order_by!] + + """filter the rows returned""" + where: mint_params_bool_exp + ): mint_params_aggregate! + + """fetch data from the table: "mint_params" using primary key columns""" + mint_params_by_pk(one_row_id: Boolean!): mint_params + + """ + fetch data from the table: "modules" + """ + modules( + """distinct select on columns""" + distinct_on: [modules_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [modules_order_by!] + + """filter the rows returned""" + where: modules_bool_exp + ): [modules!]! + + """ + fetch aggregated fields from the table: "modules" + """ + modules_aggregate( + """distinct select on columns""" + distinct_on: [modules_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [modules_order_by!] + + """filter the rows returned""" + where: modules_bool_exp + ): modules_aggregate! + + """fetch data from the table: "modules" using primary key columns""" + modules_by_pk(module_name: String!): modules + + """ + fetch data from the table: "pre_commit" + """ + pre_commit( + """distinct select on columns""" + distinct_on: [pre_commit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pre_commit_order_by!] + + """filter the rows returned""" + where: pre_commit_bool_exp + ): [pre_commit!]! + + """ + fetch aggregated fields from the table: "pre_commit" + """ + pre_commit_aggregate( + """distinct select on columns""" + distinct_on: [pre_commit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pre_commit_order_by!] + + """filter the rows returned""" + where: pre_commit_bool_exp + ): pre_commit_aggregate! + + """ + fetch data from the table: "proposal" + """ + proposal( + """distinct select on columns""" + distinct_on: [proposal_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_order_by!] + + """filter the rows returned""" + where: proposal_bool_exp + ): [proposal!]! + + """ + fetch aggregated fields from the table: "proposal" + """ + proposal_aggregate( + """distinct select on columns""" + distinct_on: [proposal_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_order_by!] + + """filter the rows returned""" + where: proposal_bool_exp + ): proposal_aggregate! + + """fetch data from the table: "proposal" using primary key columns""" + proposal_by_pk(id: Int!): proposal + + """ + fetch data from the table: "proposal_deposit" + """ + proposal_deposit( + """distinct select on columns""" + distinct_on: [proposal_deposit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_deposit_order_by!] + + """filter the rows returned""" + where: proposal_deposit_bool_exp + ): [proposal_deposit!]! + + """ + fetch aggregated fields from the table: "proposal_deposit" + """ + proposal_deposit_aggregate( + """distinct select on columns""" + distinct_on: [proposal_deposit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_deposit_order_by!] + + """filter the rows returned""" + where: proposal_deposit_bool_exp + ): proposal_deposit_aggregate! + + """ + fetch data from the table: "proposal_staking_pool_snapshot" + """ + proposal_staking_pool_snapshot( + """distinct select on columns""" + distinct_on: [proposal_staking_pool_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_staking_pool_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_staking_pool_snapshot_bool_exp + ): [proposal_staking_pool_snapshot!]! + + """ + fetch aggregated fields from the table: "proposal_staking_pool_snapshot" + """ + proposal_staking_pool_snapshot_aggregate( + """distinct select on columns""" + distinct_on: [proposal_staking_pool_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_staking_pool_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_staking_pool_snapshot_bool_exp + ): proposal_staking_pool_snapshot_aggregate! + + """ + fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns + """ + proposal_staking_pool_snapshot_by_pk(proposal_id: Int!): proposal_staking_pool_snapshot + + """ + fetch data from the table: "proposal_tally_result" + """ + proposal_tally_result( + """distinct select on columns""" + distinct_on: [proposal_tally_result_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_tally_result_order_by!] + + """filter the rows returned""" + where: proposal_tally_result_bool_exp + ): [proposal_tally_result!]! + + """ + fetch aggregated fields from the table: "proposal_tally_result" + """ + proposal_tally_result_aggregate( + """distinct select on columns""" + distinct_on: [proposal_tally_result_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_tally_result_order_by!] + + """filter the rows returned""" + where: proposal_tally_result_bool_exp + ): proposal_tally_result_aggregate! + + """ + fetch data from the table: "proposal_tally_result" using primary key columns + """ + proposal_tally_result_by_pk(proposal_id: Int!): proposal_tally_result + + """ + fetch data from the table: "proposal_validator_status_snapshot" + """ + proposal_validator_status_snapshot( + """distinct select on columns""" + distinct_on: [proposal_validator_status_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_validator_status_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_validator_status_snapshot_bool_exp + ): [proposal_validator_status_snapshot!]! + + """ + fetch aggregated fields from the table: "proposal_validator_status_snapshot" + """ + proposal_validator_status_snapshot_aggregate( + """distinct select on columns""" + distinct_on: [proposal_validator_status_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_validator_status_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_validator_status_snapshot_bool_exp + ): proposal_validator_status_snapshot_aggregate! + + """ + fetch data from the table: "proposal_validator_status_snapshot" using primary key columns + """ + proposal_validator_status_snapshot_by_pk(id: Int!): proposal_validator_status_snapshot + + """ + fetch data from the table: "proposal_vote" + """ + proposal_vote( + """distinct select on columns""" + distinct_on: [proposal_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_vote_order_by!] + + """filter the rows returned""" + where: proposal_vote_bool_exp + ): [proposal_vote!]! + + """ + fetch aggregated fields from the table: "proposal_vote" + """ + proposal_vote_aggregate( + """distinct select on columns""" + distinct_on: [proposal_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_vote_order_by!] + + """filter the rows returned""" + where: proposal_vote_bool_exp + ): proposal_vote_aggregate! + + """ + fetch data from the table: "slashing_params" + """ + slashing_params( + """distinct select on columns""" + distinct_on: [slashing_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [slashing_params_order_by!] + + """filter the rows returned""" + where: slashing_params_bool_exp + ): [slashing_params!]! + + """ + fetch aggregated fields from the table: "slashing_params" + """ + slashing_params_aggregate( + """distinct select on columns""" + distinct_on: [slashing_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [slashing_params_order_by!] + + """filter the rows returned""" + where: slashing_params_bool_exp + ): slashing_params_aggregate! + + """fetch data from the table: "slashing_params" using primary key columns""" + slashing_params_by_pk(one_row_id: Boolean!): slashing_params + + """ + fetch data from the table: "software_upgrade_plan" + """ + software_upgrade_plan( + """distinct select on columns""" + distinct_on: [software_upgrade_plan_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [software_upgrade_plan_order_by!] + + """filter the rows returned""" + where: software_upgrade_plan_bool_exp + ): [software_upgrade_plan!]! + + """ + fetch aggregated fields from the table: "software_upgrade_plan" + """ + software_upgrade_plan_aggregate( + """distinct select on columns""" + distinct_on: [software_upgrade_plan_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [software_upgrade_plan_order_by!] + + """filter the rows returned""" + where: software_upgrade_plan_bool_exp + ): software_upgrade_plan_aggregate! + + """ + fetch data from the table: "staking_params" + """ + staking_params( + """distinct select on columns""" + distinct_on: [staking_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [staking_params_order_by!] + + """filter the rows returned""" + where: staking_params_bool_exp + ): [staking_params!]! + + """ + fetch aggregated fields from the table: "staking_params" + """ + staking_params_aggregate( + """distinct select on columns""" + distinct_on: [staking_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [staking_params_order_by!] + + """filter the rows returned""" + where: staking_params_bool_exp + ): staking_params_aggregate! + + """fetch data from the table: "staking_params" using primary key columns""" + staking_params_by_pk(one_row_id: Boolean!): staking_params + + """ + fetch data from the table: "staking_pool" + """ + staking_pool( + """distinct select on columns""" + distinct_on: [staking_pool_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [staking_pool_order_by!] + + """filter the rows returned""" + where: staking_pool_bool_exp + ): [staking_pool!]! + + """ + fetch aggregated fields from the table: "staking_pool" + """ + staking_pool_aggregate( + """distinct select on columns""" + distinct_on: [staking_pool_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [staking_pool_order_by!] + + """filter the rows returned""" + where: staking_pool_bool_exp + ): staking_pool_aggregate! + + """fetch data from the table: "staking_pool" using primary key columns""" + staking_pool_by_pk(one_row_id: Boolean!): staking_pool + + """ + fetch data from the table: "supply" + """ + supply( + """distinct select on columns""" + distinct_on: [supply_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [supply_order_by!] + + """filter the rows returned""" + where: supply_bool_exp + ): [supply!]! + + """ + fetch aggregated fields from the table: "supply" + """ + supply_aggregate( + """distinct select on columns""" + distinct_on: [supply_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [supply_order_by!] + + """filter the rows returned""" + where: supply_bool_exp + ): supply_aggregate! + + """fetch data from the table: "supply" using primary key columns""" + supply_by_pk(one_row_id: Boolean!): supply + + """ + fetch data from the table: "token" + """ + token( + """distinct select on columns""" + distinct_on: [token_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_order_by!] + + """filter the rows returned""" + where: token_bool_exp + ): [token!]! + + """ + fetch aggregated fields from the table: "token" + """ + token_aggregate( + """distinct select on columns""" + distinct_on: [token_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_order_by!] + + """filter the rows returned""" + where: token_bool_exp + ): token_aggregate! + + """ + fetch data from the table: "token_holder_count" + """ + token_holder_count( + """distinct select on columns""" + distinct_on: [token_holder_count_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_holder_count_order_by!] + + """filter the rows returned""" + where: token_holder_count_bool_exp + ): [token_holder_count!]! + + """ + fetch aggregated fields from the table: "token_holder_count" + """ + token_holder_count_aggregate( + """distinct select on columns""" + distinct_on: [token_holder_count_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_holder_count_order_by!] + + """filter the rows returned""" + where: token_holder_count_bool_exp + ): token_holder_count_aggregate! + + """ + fetch data from the table: "token_price" + """ + token_price( + """distinct select on columns""" + distinct_on: [token_price_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_order_by!] + + """filter the rows returned""" + where: token_price_bool_exp + ): [token_price!]! + + """ + fetch aggregated fields from the table: "token_price" + """ + token_price_aggregate( + """distinct select on columns""" + distinct_on: [token_price_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_order_by!] + + """filter the rows returned""" + where: token_price_bool_exp + ): token_price_aggregate! + + """fetch data from the table: "token_price" using primary key columns""" + token_price_by_pk(id: Int!): token_price + + """ + fetch data from the table: "token_price_history" + """ + token_price_history( + """distinct select on columns""" + distinct_on: [token_price_history_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_history_order_by!] + + """filter the rows returned""" + where: token_price_history_bool_exp + ): [token_price_history!]! + + """ + fetch aggregated fields from the table: "token_price_history" + """ + token_price_history_aggregate( + """distinct select on columns""" + distinct_on: [token_price_history_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_history_order_by!] + + """filter the rows returned""" + where: token_price_history_bool_exp + ): token_price_history_aggregate! + + """ + fetch data from the table: "token_price_history" using primary key columns + """ + token_price_history_by_pk(id: Int!): token_price_history + + """ + fetch data from the table: "token_unit" + """ + token_unit( + """distinct select on columns""" + distinct_on: [token_unit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_unit_order_by!] + + """filter the rows returned""" + where: token_unit_bool_exp + ): [token_unit!]! + + """ + fetch aggregated fields from the table: "token_unit" + """ + token_unit_aggregate( + """distinct select on columns""" + distinct_on: [token_unit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_unit_order_by!] + + """filter the rows returned""" + where: token_unit_bool_exp + ): token_unit_aggregate! + + """ + fetch data from the table: "transaction" + """ + transaction( + """distinct select on columns""" + distinct_on: [transaction_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [transaction_order_by!] + + """filter the rows returned""" + where: transaction_bool_exp + ): [transaction!]! + + """ + fetch aggregated fields from the table: "transaction" + """ + transaction_aggregate( + """distinct select on columns""" + distinct_on: [transaction_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [transaction_order_by!] + + """filter the rows returned""" + where: transaction_bool_exp + ): transaction_aggregate! + + """ + fetch data from the table: "validator" + """ + validator( + """distinct select on columns""" + distinct_on: [validator_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_order_by!] + + """filter the rows returned""" + where: validator_bool_exp + ): [validator!]! + + """ + fetch aggregated fields from the table: "validator" + """ + validator_aggregate( + """distinct select on columns""" + distinct_on: [validator_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_order_by!] + + """filter the rows returned""" + where: validator_bool_exp + ): validator_aggregate! + + """fetch data from the table: "validator" using primary key columns""" + validator_by_pk(consensus_address: String!): validator + + """ + fetch data from the table: "validator_commission" + """ + validator_commission( + """distinct select on columns""" + distinct_on: [validator_commission_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_commission_order_by!] + + """filter the rows returned""" + where: validator_commission_bool_exp + ): [validator_commission!]! + + """ + fetch aggregated fields from the table: "validator_commission" + """ + validator_commission_aggregate( + """distinct select on columns""" + distinct_on: [validator_commission_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_commission_order_by!] + + """filter the rows returned""" + where: validator_commission_bool_exp + ): validator_commission_aggregate! + + """ + fetch data from the table: "validator_commission" using primary key columns + """ + validator_commission_by_pk(validator_address: String!): validator_commission + + """ + fetch data from the table: "validator_description" + """ + validator_description( + """distinct select on columns""" + distinct_on: [validator_description_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_description_order_by!] + + """filter the rows returned""" + where: validator_description_bool_exp + ): [validator_description!]! + + """ + fetch aggregated fields from the table: "validator_description" + """ + validator_description_aggregate( + """distinct select on columns""" + distinct_on: [validator_description_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_description_order_by!] + + """filter the rows returned""" + where: validator_description_bool_exp + ): validator_description_aggregate! + + """ + fetch data from the table: "validator_description" using primary key columns + """ + validator_description_by_pk(validator_address: String!): validator_description + + """ + fetch data from the table: "validator_info" + """ + validator_info( + """distinct select on columns""" + distinct_on: [validator_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_info_order_by!] + + """filter the rows returned""" + where: validator_info_bool_exp + ): [validator_info!]! + + """ + fetch aggregated fields from the table: "validator_info" + """ + validator_info_aggregate( + """distinct select on columns""" + distinct_on: [validator_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_info_order_by!] + + """filter the rows returned""" + where: validator_info_bool_exp + ): validator_info_aggregate! + + """fetch data from the table: "validator_info" using primary key columns""" + validator_info_by_pk(consensus_address: String!): validator_info + + """ + fetch data from the table: "validator_signing_info" + """ + validator_signing_info( + """distinct select on columns""" + distinct_on: [validator_signing_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_signing_info_order_by!] + + """filter the rows returned""" + where: validator_signing_info_bool_exp + ): [validator_signing_info!]! + + """ + fetch aggregated fields from the table: "validator_signing_info" + """ + validator_signing_info_aggregate( + """distinct select on columns""" + distinct_on: [validator_signing_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_signing_info_order_by!] + + """filter the rows returned""" + where: validator_signing_info_bool_exp + ): validator_signing_info_aggregate! + + """ + fetch data from the table: "validator_signing_info" using primary key columns + """ + validator_signing_info_by_pk(validator_address: String!): validator_signing_info + + """ + fetch data from the table: "validator_status" + """ + validator_status( + """distinct select on columns""" + distinct_on: [validator_status_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_status_order_by!] + + """filter the rows returned""" + where: validator_status_bool_exp + ): [validator_status!]! + + """ + fetch aggregated fields from the table: "validator_status" + """ + validator_status_aggregate( + """distinct select on columns""" + distinct_on: [validator_status_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_status_order_by!] + + """filter the rows returned""" + where: validator_status_bool_exp + ): validator_status_aggregate! + + """ + fetch data from the table: "validator_status" using primary key columns + """ + validator_status_by_pk(validator_address: String!): validator_status + + """ + fetch data from the table: "validator_voting_power" + """ + validator_voting_power( + """distinct select on columns""" + distinct_on: [validator_voting_power_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_voting_power_order_by!] + + """filter the rows returned""" + where: validator_voting_power_bool_exp + ): [validator_voting_power!]! + + """ + fetch aggregated fields from the table: "validator_voting_power" + """ + validator_voting_power_aggregate( + """distinct select on columns""" + distinct_on: [validator_voting_power_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_voting_power_order_by!] + + """filter the rows returned""" + where: validator_voting_power_bool_exp + ): validator_voting_power_aggregate! + + """ + fetch data from the table: "validator_voting_power" using primary key columns + """ + validator_voting_power_by_pk(validator_address: String!): validator_voting_power + + """ + fetch data from the table: "vesting_account" + """ + vesting_account( + """distinct select on columns""" + distinct_on: [vesting_account_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_account_order_by!] + + """filter the rows returned""" + where: vesting_account_bool_exp + ): [vesting_account!]! + + """ + fetch aggregated fields from the table: "vesting_account" + """ + vesting_account_aggregate( + """distinct select on columns""" + distinct_on: [vesting_account_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_account_order_by!] + + """filter the rows returned""" + where: vesting_account_bool_exp + ): vesting_account_aggregate! + + """fetch data from the table: "vesting_account" using primary key columns""" + vesting_account_by_pk(id: Int!): vesting_account + + """ + fetch data from the table: "vesting_period" + """ + vesting_period( + """distinct select on columns""" + distinct_on: [vesting_period_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_period_order_by!] + + """filter the rows returned""" + where: vesting_period_bool_exp + ): [vesting_period!]! + + """ + fetch aggregated fields from the table: "vesting_period" + """ + vesting_period_aggregate( + """distinct select on columns""" + distinct_on: [vesting_period_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_period_order_by!] + + """filter the rows returned""" + where: vesting_period_bool_exp + ): vesting_period_aggregate! +} + +""" +columns and relationships of "slashing_params" +""" +type slashing_params { + height: bigint! + one_row_id: Boolean! + params( + """JSON select path""" + path: String + ): jsonb! +} + +""" +aggregated selection of "slashing_params" +""" +type slashing_params_aggregate { + aggregate: slashing_params_aggregate_fields + nodes: [slashing_params!]! +} + +""" +aggregate fields of "slashing_params" +""" +type slashing_params_aggregate_fields { + avg: slashing_params_avg_fields + count(columns: [slashing_params_select_column!], distinct: Boolean): Int! + max: slashing_params_max_fields + min: slashing_params_min_fields + stddev: slashing_params_stddev_fields + stddev_pop: slashing_params_stddev_pop_fields + stddev_samp: slashing_params_stddev_samp_fields + sum: slashing_params_sum_fields + var_pop: slashing_params_var_pop_fields + var_samp: slashing_params_var_samp_fields + variance: slashing_params_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input slashing_params_append_input { + params: jsonb +} + +"""aggregate avg on columns""" +type slashing_params_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "slashing_params". All fields are combined with a logical 'AND'. +""" +input slashing_params_bool_exp { + _and: [slashing_params_bool_exp!] + _not: slashing_params_bool_exp + _or: [slashing_params_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + params: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "slashing_params" +""" +enum slashing_params_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + slashing_params_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input slashing_params_delete_at_path_input { + params: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input slashing_params_delete_elem_input { + params: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input slashing_params_delete_key_input { + params: String +} + +""" +input type for incrementing numeric columns in table "slashing_params" +""" +input slashing_params_inc_input { + height: bigint +} + +""" +input type for inserting data into table "slashing_params" +""" +input slashing_params_insert_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate max on columns""" +type slashing_params_max_fields { + height: bigint +} + +"""aggregate min on columns""" +type slashing_params_min_fields { + height: bigint +} + +""" +response of any mutation on the table "slashing_params" +""" +type slashing_params_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [slashing_params!]! +} + +""" +on_conflict condition type for table "slashing_params" +""" +input slashing_params_on_conflict { + constraint: slashing_params_constraint! + update_columns: [slashing_params_update_column!]! = [] + where: slashing_params_bool_exp +} + +"""Ordering options when selecting data from "slashing_params".""" +input slashing_params_order_by { + height: order_by + one_row_id: order_by + params: order_by +} + +"""primary key columns input for table: slashing_params""" +input slashing_params_pk_columns_input { + one_row_id: Boolean! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input slashing_params_prepend_input { + params: jsonb +} + +""" +select columns of table "slashing_params" +""" +enum slashing_params_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +""" +input type for updating data in table "slashing_params" +""" +input slashing_params_set_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate stddev on columns""" +type slashing_params_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type slashing_params_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type slashing_params_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "slashing_params" +""" +input slashing_params_stream_cursor_input { + """Stream column input with initial value""" + initial_value: slashing_params_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input slashing_params_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate sum on columns""" +type slashing_params_sum_fields { + height: bigint +} + +""" +update columns of table "slashing_params" +""" +enum slashing_params_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +input slashing_params_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: slashing_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: slashing_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: slashing_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: slashing_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: slashing_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: slashing_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: slashing_params_set_input + + """filter the rows which have to be updated""" + where: slashing_params_bool_exp! +} + +"""aggregate var_pop on columns""" +type slashing_params_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type slashing_params_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type slashing_params_variance_fields { + height: Float +} + +scalar smallint + +""" +Boolean expression to compare columns of type "smallint". All fields are combined with logical 'AND'. +""" +input smallint_comparison_exp { + _eq: smallint + _gt: smallint + _gte: smallint + _in: [smallint!] + _is_null: Boolean + _lt: smallint + _lte: smallint + _neq: smallint + _nin: [smallint!] +} + +""" +columns and relationships of "software_upgrade_plan" +""" +type software_upgrade_plan { + height: bigint! + info: String! + plan_name: String! + + """An object relationship""" + proposal: proposal + proposal_id: Int + upgrade_height: bigint! +} + +""" +aggregated selection of "software_upgrade_plan" +""" +type software_upgrade_plan_aggregate { + aggregate: software_upgrade_plan_aggregate_fields + nodes: [software_upgrade_plan!]! +} + +""" +aggregate fields of "software_upgrade_plan" +""" +type software_upgrade_plan_aggregate_fields { + avg: software_upgrade_plan_avg_fields + count(columns: [software_upgrade_plan_select_column!], distinct: Boolean): Int! + max: software_upgrade_plan_max_fields + min: software_upgrade_plan_min_fields + stddev: software_upgrade_plan_stddev_fields + stddev_pop: software_upgrade_plan_stddev_pop_fields + stddev_samp: software_upgrade_plan_stddev_samp_fields + sum: software_upgrade_plan_sum_fields + var_pop: software_upgrade_plan_var_pop_fields + var_samp: software_upgrade_plan_var_samp_fields + variance: software_upgrade_plan_variance_fields +} + +"""aggregate avg on columns""" +type software_upgrade_plan_avg_fields { + height: Float + proposal_id: Float + upgrade_height: Float +} + +""" +Boolean expression to filter rows from the table "software_upgrade_plan". All fields are combined with a logical 'AND'. +""" +input software_upgrade_plan_bool_exp { + _and: [software_upgrade_plan_bool_exp!] + _not: software_upgrade_plan_bool_exp + _or: [software_upgrade_plan_bool_exp!] + height: bigint_comparison_exp + info: String_comparison_exp + plan_name: String_comparison_exp + proposal: proposal_bool_exp + proposal_id: Int_comparison_exp + upgrade_height: bigint_comparison_exp +} + +""" +unique or primary key constraints on table "software_upgrade_plan" +""" +enum software_upgrade_plan_constraint { + """ + unique or primary key constraint on columns "proposal_id" + """ + software_upgrade_plan_proposal_id_key +} + +""" +input type for incrementing numeric columns in table "software_upgrade_plan" +""" +input software_upgrade_plan_inc_input { + height: bigint + proposal_id: Int + upgrade_height: bigint +} + +""" +input type for inserting data into table "software_upgrade_plan" +""" +input software_upgrade_plan_insert_input { + height: bigint + info: String + plan_name: String + proposal: proposal_obj_rel_insert_input + proposal_id: Int + upgrade_height: bigint +} + +"""aggregate max on columns""" +type software_upgrade_plan_max_fields { + height: bigint + info: String + plan_name: String + proposal_id: Int + upgrade_height: bigint +} + +"""aggregate min on columns""" +type software_upgrade_plan_min_fields { + height: bigint + info: String + plan_name: String + proposal_id: Int + upgrade_height: bigint +} + +""" +response of any mutation on the table "software_upgrade_plan" +""" +type software_upgrade_plan_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [software_upgrade_plan!]! +} + +""" +on_conflict condition type for table "software_upgrade_plan" +""" +input software_upgrade_plan_on_conflict { + constraint: software_upgrade_plan_constraint! + update_columns: [software_upgrade_plan_update_column!]! = [] + where: software_upgrade_plan_bool_exp +} + +"""Ordering options when selecting data from "software_upgrade_plan".""" +input software_upgrade_plan_order_by { + height: order_by + info: order_by + plan_name: order_by + proposal: proposal_order_by + proposal_id: order_by + upgrade_height: order_by +} + +""" +select columns of table "software_upgrade_plan" +""" +enum software_upgrade_plan_select_column { + """column name""" + height + + """column name""" + info + + """column name""" + plan_name + + """column name""" + proposal_id + + """column name""" + upgrade_height +} + +""" +input type for updating data in table "software_upgrade_plan" +""" +input software_upgrade_plan_set_input { + height: bigint + info: String + plan_name: String + proposal_id: Int + upgrade_height: bigint +} + +"""aggregate stddev on columns""" +type software_upgrade_plan_stddev_fields { + height: Float + proposal_id: Float + upgrade_height: Float +} + +"""aggregate stddev_pop on columns""" +type software_upgrade_plan_stddev_pop_fields { + height: Float + proposal_id: Float + upgrade_height: Float +} + +"""aggregate stddev_samp on columns""" +type software_upgrade_plan_stddev_samp_fields { + height: Float + proposal_id: Float + upgrade_height: Float +} + +""" +Streaming cursor of the table "software_upgrade_plan" +""" +input software_upgrade_plan_stream_cursor_input { + """Stream column input with initial value""" + initial_value: software_upgrade_plan_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input software_upgrade_plan_stream_cursor_value_input { + height: bigint + info: String + plan_name: String + proposal_id: Int + upgrade_height: bigint +} + +"""aggregate sum on columns""" +type software_upgrade_plan_sum_fields { + height: bigint + proposal_id: Int + upgrade_height: bigint +} + +""" +update columns of table "software_upgrade_plan" +""" +enum software_upgrade_plan_update_column { + """column name""" + height + + """column name""" + info + + """column name""" + plan_name + + """column name""" + proposal_id + + """column name""" + upgrade_height +} + +input software_upgrade_plan_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: software_upgrade_plan_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: software_upgrade_plan_set_input + + """filter the rows which have to be updated""" + where: software_upgrade_plan_bool_exp! +} + +"""aggregate var_pop on columns""" +type software_upgrade_plan_var_pop_fields { + height: Float + proposal_id: Float + upgrade_height: Float +} + +"""aggregate var_samp on columns""" +type software_upgrade_plan_var_samp_fields { + height: Float + proposal_id: Float + upgrade_height: Float +} + +"""aggregate variance on columns""" +type software_upgrade_plan_variance_fields { + height: Float + proposal_id: Float + upgrade_height: Float +} + +""" +columns and relationships of "staking_params" +""" +type staking_params { + height: bigint! + one_row_id: Boolean! + params( + """JSON select path""" + path: String + ): jsonb! +} + +""" +aggregated selection of "staking_params" +""" +type staking_params_aggregate { + aggregate: staking_params_aggregate_fields + nodes: [staking_params!]! +} + +""" +aggregate fields of "staking_params" +""" +type staking_params_aggregate_fields { + avg: staking_params_avg_fields + count(columns: [staking_params_select_column!], distinct: Boolean): Int! + max: staking_params_max_fields + min: staking_params_min_fields + stddev: staking_params_stddev_fields + stddev_pop: staking_params_stddev_pop_fields + stddev_samp: staking_params_stddev_samp_fields + sum: staking_params_sum_fields + var_pop: staking_params_var_pop_fields + var_samp: staking_params_var_samp_fields + variance: staking_params_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input staking_params_append_input { + params: jsonb +} + +"""aggregate avg on columns""" +type staking_params_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "staking_params". All fields are combined with a logical 'AND'. +""" +input staking_params_bool_exp { + _and: [staking_params_bool_exp!] + _not: staking_params_bool_exp + _or: [staking_params_bool_exp!] + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp + params: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "staking_params" +""" +enum staking_params_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + staking_params_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input staking_params_delete_at_path_input { + params: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input staking_params_delete_elem_input { + params: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input staking_params_delete_key_input { + params: String +} + +""" +input type for incrementing numeric columns in table "staking_params" +""" +input staking_params_inc_input { + height: bigint +} + +""" +input type for inserting data into table "staking_params" +""" +input staking_params_insert_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate max on columns""" +type staking_params_max_fields { + height: bigint +} + +"""aggregate min on columns""" +type staking_params_min_fields { + height: bigint +} + +""" +response of any mutation on the table "staking_params" +""" +type staking_params_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [staking_params!]! +} + +""" +on_conflict condition type for table "staking_params" +""" +input staking_params_on_conflict { + constraint: staking_params_constraint! + update_columns: [staking_params_update_column!]! = [] + where: staking_params_bool_exp +} + +"""Ordering options when selecting data from "staking_params".""" +input staking_params_order_by { + height: order_by + one_row_id: order_by + params: order_by +} + +"""primary key columns input for table: staking_params""" +input staking_params_pk_columns_input { + one_row_id: Boolean! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input staking_params_prepend_input { + params: jsonb +} + +""" +select columns of table "staking_params" +""" +enum staking_params_select_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +""" +input type for updating data in table "staking_params" +""" +input staking_params_set_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate stddev on columns""" +type staking_params_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type staking_params_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type staking_params_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "staking_params" +""" +input staking_params_stream_cursor_input { + """Stream column input with initial value""" + initial_value: staking_params_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input staking_params_stream_cursor_value_input { + height: bigint + one_row_id: Boolean + params: jsonb +} + +"""aggregate sum on columns""" +type staking_params_sum_fields { + height: bigint +} + +""" +update columns of table "staking_params" +""" +enum staking_params_update_column { + """column name""" + height + + """column name""" + one_row_id + + """column name""" + params +} + +input staking_params_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: staking_params_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: staking_params_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: staking_params_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: staking_params_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: staking_params_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: staking_params_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: staking_params_set_input + + """filter the rows which have to be updated""" + where: staking_params_bool_exp! +} + +"""aggregate var_pop on columns""" +type staking_params_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type staking_params_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type staking_params_variance_fields { + height: Float +} + +""" +columns and relationships of "staking_pool" +""" +type staking_pool { + bonded_tokens: String! + height: bigint! + not_bonded_tokens: String! + one_row_id: Boolean! + staked_not_bonded_tokens: String! + unbonding_tokens: String! +} + +""" +aggregated selection of "staking_pool" +""" +type staking_pool_aggregate { + aggregate: staking_pool_aggregate_fields + nodes: [staking_pool!]! +} + +""" +aggregate fields of "staking_pool" +""" +type staking_pool_aggregate_fields { + avg: staking_pool_avg_fields + count(columns: [staking_pool_select_column!], distinct: Boolean): Int! + max: staking_pool_max_fields + min: staking_pool_min_fields + stddev: staking_pool_stddev_fields + stddev_pop: staking_pool_stddev_pop_fields + stddev_samp: staking_pool_stddev_samp_fields + sum: staking_pool_sum_fields + var_pop: staking_pool_var_pop_fields + var_samp: staking_pool_var_samp_fields + variance: staking_pool_variance_fields +} + +"""aggregate avg on columns""" +type staking_pool_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "staking_pool". All fields are combined with a logical 'AND'. +""" +input staking_pool_bool_exp { + _and: [staking_pool_bool_exp!] + _not: staking_pool_bool_exp + _or: [staking_pool_bool_exp!] + bonded_tokens: String_comparison_exp + height: bigint_comparison_exp + not_bonded_tokens: String_comparison_exp + one_row_id: Boolean_comparison_exp + staked_not_bonded_tokens: String_comparison_exp + unbonding_tokens: String_comparison_exp +} + +""" +unique or primary key constraints on table "staking_pool" +""" +enum staking_pool_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + staking_pool_pkey +} + +""" +input type for incrementing numeric columns in table "staking_pool" +""" +input staking_pool_inc_input { + height: bigint +} + +""" +input type for inserting data into table "staking_pool" +""" +input staking_pool_insert_input { + bonded_tokens: String + height: bigint + not_bonded_tokens: String + one_row_id: Boolean + staked_not_bonded_tokens: String + unbonding_tokens: String +} + +"""aggregate max on columns""" +type staking_pool_max_fields { + bonded_tokens: String + height: bigint + not_bonded_tokens: String + staked_not_bonded_tokens: String + unbonding_tokens: String +} + +"""aggregate min on columns""" +type staking_pool_min_fields { + bonded_tokens: String + height: bigint + not_bonded_tokens: String + staked_not_bonded_tokens: String + unbonding_tokens: String +} + +""" +response of any mutation on the table "staking_pool" +""" +type staking_pool_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [staking_pool!]! +} + +""" +on_conflict condition type for table "staking_pool" +""" +input staking_pool_on_conflict { + constraint: staking_pool_constraint! + update_columns: [staking_pool_update_column!]! = [] + where: staking_pool_bool_exp +} + +"""Ordering options when selecting data from "staking_pool".""" +input staking_pool_order_by { + bonded_tokens: order_by + height: order_by + not_bonded_tokens: order_by + one_row_id: order_by + staked_not_bonded_tokens: order_by + unbonding_tokens: order_by +} + +"""primary key columns input for table: staking_pool""" +input staking_pool_pk_columns_input { + one_row_id: Boolean! +} + +""" +select columns of table "staking_pool" +""" +enum staking_pool_select_column { + """column name""" + bonded_tokens + + """column name""" + height + + """column name""" + not_bonded_tokens + + """column name""" + one_row_id + + """column name""" + staked_not_bonded_tokens + + """column name""" + unbonding_tokens +} + +""" +input type for updating data in table "staking_pool" +""" +input staking_pool_set_input { + bonded_tokens: String + height: bigint + not_bonded_tokens: String + one_row_id: Boolean + staked_not_bonded_tokens: String + unbonding_tokens: String +} + +"""aggregate stddev on columns""" +type staking_pool_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type staking_pool_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type staking_pool_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "staking_pool" +""" +input staking_pool_stream_cursor_input { + """Stream column input with initial value""" + initial_value: staking_pool_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input staking_pool_stream_cursor_value_input { + bonded_tokens: String + height: bigint + not_bonded_tokens: String + one_row_id: Boolean + staked_not_bonded_tokens: String + unbonding_tokens: String +} + +"""aggregate sum on columns""" +type staking_pool_sum_fields { + height: bigint +} + +""" +update columns of table "staking_pool" +""" +enum staking_pool_update_column { + """column name""" + bonded_tokens + + """column name""" + height + + """column name""" + not_bonded_tokens + + """column name""" + one_row_id + + """column name""" + staked_not_bonded_tokens + + """column name""" + unbonding_tokens +} + +input staking_pool_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: staking_pool_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: staking_pool_set_input + + """filter the rows which have to be updated""" + where: staking_pool_bool_exp! +} + +"""aggregate var_pop on columns""" +type staking_pool_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type staking_pool_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type staking_pool_variance_fields { + height: Float +} + +type subscription_root { + """ + fetch data from the table: "account" + """ + account( + """distinct select on columns""" + distinct_on: [account_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [account_order_by!] + + """filter the rows returned""" + where: account_bool_exp + ): [account!]! + + """ + fetch aggregated fields from the table: "account" + """ + account_aggregate( + """distinct select on columns""" + distinct_on: [account_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [account_order_by!] + + """filter the rows returned""" + where: account_bool_exp + ): account_aggregate! + + """fetch data from the table: "account" using primary key columns""" + account_by_pk(address: String!): account + + """ + fetch data from the table: "account_denom_balance" + """ + account_denom_balance( + """distinct select on columns""" + distinct_on: [account_denom_balance_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [account_denom_balance_order_by!] + + """filter the rows returned""" + where: account_denom_balance_bool_exp + ): [account_denom_balance!]! + + """ + fetch aggregated fields from the table: "account_denom_balance" + """ + account_denom_balance_aggregate( + """distinct select on columns""" + distinct_on: [account_denom_balance_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [account_denom_balance_order_by!] + + """filter the rows returned""" + where: account_denom_balance_bool_exp + ): account_denom_balance_aggregate! + + """ + fetch data from the table: "account_denom_balance" using primary key columns + """ + account_denom_balance_by_pk(address: String!, denom: String!): account_denom_balance + + """ + fetch data from the table in a streaming manner: "account_denom_balance" + """ + account_denom_balance_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [account_denom_balance_stream_cursor_input]! + + """filter the rows returned""" + where: account_denom_balance_bool_exp + ): [account_denom_balance!]! + + """ + fetch data from the table in a streaming manner: "account" + """ + account_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [account_stream_cursor_input]! + + """filter the rows returned""" + where: account_bool_exp + ): [account!]! + + """ + fetch data from the table: "assetft_params" + """ + assetft_params( + """distinct select on columns""" + distinct_on: [assetft_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [assetft_params_order_by!] + + """filter the rows returned""" + where: assetft_params_bool_exp + ): [assetft_params!]! + + """ + fetch aggregated fields from the table: "assetft_params" + """ + assetft_params_aggregate( + """distinct select on columns""" + distinct_on: [assetft_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [assetft_params_order_by!] + + """filter the rows returned""" + where: assetft_params_bool_exp + ): assetft_params_aggregate! + + """fetch data from the table: "assetft_params" using primary key columns""" + assetft_params_by_pk(one_row_id: Boolean!): assetft_params + + """ + fetch data from the table in a streaming manner: "assetft_params" + """ + assetft_params_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [assetft_params_stream_cursor_input]! + + """filter the rows returned""" + where: assetft_params_bool_exp + ): [assetft_params!]! + + """ + fetch data from the table: "assetnft_params" + """ + assetnft_params( + """distinct select on columns""" + distinct_on: [assetnft_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [assetnft_params_order_by!] + + """filter the rows returned""" + where: assetnft_params_bool_exp + ): [assetnft_params!]! + + """ + fetch aggregated fields from the table: "assetnft_params" + """ + assetnft_params_aggregate( + """distinct select on columns""" + distinct_on: [assetnft_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [assetnft_params_order_by!] + + """filter the rows returned""" + where: assetnft_params_bool_exp + ): assetnft_params_aggregate! + + """fetch data from the table: "assetnft_params" using primary key columns""" + assetnft_params_by_pk(one_row_id: Boolean!): assetnft_params + + """ + fetch data from the table in a streaming manner: "assetnft_params" + """ + assetnft_params_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [assetnft_params_stream_cursor_input]! + + """filter the rows returned""" + where: assetnft_params_bool_exp + ): [assetnft_params!]! + + """ + fetch data from the table: "auth_params" + """ + auth_params( + """distinct select on columns""" + distinct_on: [auth_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [auth_params_order_by!] + + """filter the rows returned""" + where: auth_params_bool_exp + ): [auth_params!]! + + """ + fetch aggregated fields from the table: "auth_params" + """ + auth_params_aggregate( + """distinct select on columns""" + distinct_on: [auth_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [auth_params_order_by!] + + """filter the rows returned""" + where: auth_params_bool_exp + ): auth_params_aggregate! + + """fetch data from the table: "auth_params" using primary key columns""" + auth_params_by_pk(one_row_id: Boolean!): auth_params + + """ + fetch data from the table in a streaming manner: "auth_params" + """ + auth_params_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [auth_params_stream_cursor_input]! + + """filter the rows returned""" + where: auth_params_bool_exp + ): [auth_params!]! + + """ + fetch data from the table: "average_block_time_from_genesis" + """ + average_block_time_from_genesis( + """distinct select on columns""" + distinct_on: [average_block_time_from_genesis_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_from_genesis_order_by!] + + """filter the rows returned""" + where: average_block_time_from_genesis_bool_exp + ): [average_block_time_from_genesis!]! + + """ + fetch aggregated fields from the table: "average_block_time_from_genesis" + """ + average_block_time_from_genesis_aggregate( + """distinct select on columns""" + distinct_on: [average_block_time_from_genesis_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_from_genesis_order_by!] + + """filter the rows returned""" + where: average_block_time_from_genesis_bool_exp + ): average_block_time_from_genesis_aggregate! + + """ + fetch data from the table: "average_block_time_from_genesis" using primary key columns + """ + average_block_time_from_genesis_by_pk(one_row_id: Boolean!): average_block_time_from_genesis + + """ + fetch data from the table in a streaming manner: "average_block_time_from_genesis" + """ + average_block_time_from_genesis_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [average_block_time_from_genesis_stream_cursor_input]! + + """filter the rows returned""" + where: average_block_time_from_genesis_bool_exp + ): [average_block_time_from_genesis!]! + + """ + fetch data from the table: "average_block_time_per_day" + """ + average_block_time_per_day( + """distinct select on columns""" + distinct_on: [average_block_time_per_day_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_day_order_by!] + + """filter the rows returned""" + where: average_block_time_per_day_bool_exp + ): [average_block_time_per_day!]! + + """ + fetch aggregated fields from the table: "average_block_time_per_day" + """ + average_block_time_per_day_aggregate( + """distinct select on columns""" + distinct_on: [average_block_time_per_day_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_day_order_by!] + + """filter the rows returned""" + where: average_block_time_per_day_bool_exp + ): average_block_time_per_day_aggregate! + + """ + fetch data from the table: "average_block_time_per_day" using primary key columns + """ + average_block_time_per_day_by_pk(one_row_id: Boolean!): average_block_time_per_day + + """ + fetch data from the table in a streaming manner: "average_block_time_per_day" + """ + average_block_time_per_day_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [average_block_time_per_day_stream_cursor_input]! + + """filter the rows returned""" + where: average_block_time_per_day_bool_exp + ): [average_block_time_per_day!]! + + """ + fetch data from the table: "average_block_time_per_hour" + """ + average_block_time_per_hour( + """distinct select on columns""" + distinct_on: [average_block_time_per_hour_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_hour_order_by!] + + """filter the rows returned""" + where: average_block_time_per_hour_bool_exp + ): [average_block_time_per_hour!]! + + """ + fetch aggregated fields from the table: "average_block_time_per_hour" + """ + average_block_time_per_hour_aggregate( + """distinct select on columns""" + distinct_on: [average_block_time_per_hour_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_hour_order_by!] + + """filter the rows returned""" + where: average_block_time_per_hour_bool_exp + ): average_block_time_per_hour_aggregate! + + """ + fetch data from the table: "average_block_time_per_hour" using primary key columns + """ + average_block_time_per_hour_by_pk(one_row_id: Boolean!): average_block_time_per_hour + + """ + fetch data from the table in a streaming manner: "average_block_time_per_hour" + """ + average_block_time_per_hour_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [average_block_time_per_hour_stream_cursor_input]! + + """filter the rows returned""" + where: average_block_time_per_hour_bool_exp + ): [average_block_time_per_hour!]! + + """ + fetch data from the table: "average_block_time_per_minute" + """ + average_block_time_per_minute( + """distinct select on columns""" + distinct_on: [average_block_time_per_minute_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_minute_order_by!] + + """filter the rows returned""" + where: average_block_time_per_minute_bool_exp + ): [average_block_time_per_minute!]! + + """ + fetch aggregated fields from the table: "average_block_time_per_minute" + """ + average_block_time_per_minute_aggregate( + """distinct select on columns""" + distinct_on: [average_block_time_per_minute_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [average_block_time_per_minute_order_by!] + + """filter the rows returned""" + where: average_block_time_per_minute_bool_exp + ): average_block_time_per_minute_aggregate! + + """ + fetch data from the table: "average_block_time_per_minute" using primary key columns + """ + average_block_time_per_minute_by_pk(one_row_id: Boolean!): average_block_time_per_minute + + """ + fetch data from the table in a streaming manner: "average_block_time_per_minute" + """ + average_block_time_per_minute_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [average_block_time_per_minute_stream_cursor_input]! + + """filter the rows returned""" + where: average_block_time_per_minute_bool_exp + ): [average_block_time_per_minute!]! + + """ + fetch data from the table: "block" + """ + block( + """distinct select on columns""" + distinct_on: [block_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [block_order_by!] + + """filter the rows returned""" + where: block_bool_exp + ): [block!]! + + """ + fetch aggregated fields from the table: "block" + """ + block_aggregate( + """distinct select on columns""" + distinct_on: [block_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [block_order_by!] + + """filter the rows returned""" + where: block_bool_exp + ): block_aggregate! + + """fetch data from the table: "block" using primary key columns""" + block_by_pk(height: bigint!): block + + """ + fetch data from the table in a streaming manner: "block" + """ + block_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [block_stream_cursor_input]! + + """filter the rows returned""" + where: block_bool_exp + ): [block!]! + + """ + fetch data from the table: "community_pool" + """ + community_pool( + """distinct select on columns""" + distinct_on: [community_pool_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [community_pool_order_by!] + + """filter the rows returned""" + where: community_pool_bool_exp + ): [community_pool!]! + + """ + fetch aggregated fields from the table: "community_pool" + """ + community_pool_aggregate( + """distinct select on columns""" + distinct_on: [community_pool_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [community_pool_order_by!] + + """filter the rows returned""" + where: community_pool_bool_exp + ): community_pool_aggregate! + + """fetch data from the table: "community_pool" using primary key columns""" + community_pool_by_pk(one_row_id: Boolean!): community_pool + + """ + fetch data from the table in a streaming manner: "community_pool" + """ + community_pool_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [community_pool_stream_cursor_input]! + + """filter the rows returned""" + where: community_pool_bool_exp + ): [community_pool!]! + + """ + fetch data from the table: "customparams_params" + """ + customparams_params( + """distinct select on columns""" + distinct_on: [customparams_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [customparams_params_order_by!] + + """filter the rows returned""" + where: customparams_params_bool_exp + ): [customparams_params!]! + + """ + fetch aggregated fields from the table: "customparams_params" + """ + customparams_params_aggregate( + """distinct select on columns""" + distinct_on: [customparams_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [customparams_params_order_by!] + + """filter the rows returned""" + where: customparams_params_bool_exp + ): customparams_params_aggregate! + + """ + fetch data from the table: "customparams_params" using primary key columns + """ + customparams_params_by_pk(one_row_id: Boolean!): customparams_params + + """ + fetch data from the table in a streaming manner: "customparams_params" + """ + customparams_params_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [customparams_params_stream_cursor_input]! + + """filter the rows returned""" + where: customparams_params_bool_exp + ): [customparams_params!]! + + """ + fetch data from the table: "dex_params" + """ + dex_params( + """distinct select on columns""" + distinct_on: [dex_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [dex_params_order_by!] + + """filter the rows returned""" + where: dex_params_bool_exp + ): [dex_params!]! + + """ + fetch aggregated fields from the table: "dex_params" + """ + dex_params_aggregate( + """distinct select on columns""" + distinct_on: [dex_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [dex_params_order_by!] + + """filter the rows returned""" + where: dex_params_bool_exp + ): dex_params_aggregate! + + """fetch data from the table: "dex_params" using primary key columns""" + dex_params_by_pk(one_row_id: Boolean!): dex_params + + """ + fetch data from the table in a streaming manner: "dex_params" + """ + dex_params_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [dex_params_stream_cursor_input]! + + """filter the rows returned""" + where: dex_params_bool_exp + ): [dex_params!]! + + """ + fetch data from the table: "distribution_params" + """ + distribution_params( + """distinct select on columns""" + distinct_on: [distribution_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [distribution_params_order_by!] + + """filter the rows returned""" + where: distribution_params_bool_exp + ): [distribution_params!]! + + """ + fetch aggregated fields from the table: "distribution_params" + """ + distribution_params_aggregate( + """distinct select on columns""" + distinct_on: [distribution_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [distribution_params_order_by!] + + """filter the rows returned""" + where: distribution_params_bool_exp + ): distribution_params_aggregate! + + """ + fetch data from the table: "distribution_params" using primary key columns + """ + distribution_params_by_pk(one_row_id: Boolean!): distribution_params + + """ + fetch data from the table in a streaming manner: "distribution_params" + """ + distribution_params_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [distribution_params_stream_cursor_input]! + + """filter the rows returned""" + where: distribution_params_bool_exp + ): [distribution_params!]! + + """ + fetch data from the table: "double_sign_evidence" + """ + double_sign_evidence( + """distinct select on columns""" + distinct_on: [double_sign_evidence_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_evidence_order_by!] + + """filter the rows returned""" + where: double_sign_evidence_bool_exp + ): [double_sign_evidence!]! + + """ + fetch aggregated fields from the table: "double_sign_evidence" + """ + double_sign_evidence_aggregate( + """distinct select on columns""" + distinct_on: [double_sign_evidence_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_evidence_order_by!] + + """filter the rows returned""" + where: double_sign_evidence_bool_exp + ): double_sign_evidence_aggregate! + + """ + fetch data from the table in a streaming manner: "double_sign_evidence" + """ + double_sign_evidence_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [double_sign_evidence_stream_cursor_input]! + + """filter the rows returned""" + where: double_sign_evidence_bool_exp + ): [double_sign_evidence!]! + + """ + fetch data from the table: "double_sign_vote" + """ + double_sign_vote( + """distinct select on columns""" + distinct_on: [double_sign_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_vote_order_by!] + + """filter the rows returned""" + where: double_sign_vote_bool_exp + ): [double_sign_vote!]! + + """ + fetch aggregated fields from the table: "double_sign_vote" + """ + double_sign_vote_aggregate( + """distinct select on columns""" + distinct_on: [double_sign_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_vote_order_by!] + + """filter the rows returned""" + where: double_sign_vote_bool_exp + ): double_sign_vote_aggregate! + + """ + fetch data from the table: "double_sign_vote" using primary key columns + """ + double_sign_vote_by_pk(id: Int!): double_sign_vote + + """ + fetch data from the table in a streaming manner: "double_sign_vote" + """ + double_sign_vote_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [double_sign_vote_stream_cursor_input]! + + """filter the rows returned""" + where: double_sign_vote_bool_exp + ): [double_sign_vote!]! + + """ + fetch data from the table: "fee_grant_allowance" + """ + fee_grant_allowance( + """distinct select on columns""" + distinct_on: [fee_grant_allowance_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [fee_grant_allowance_order_by!] + + """filter the rows returned""" + where: fee_grant_allowance_bool_exp + ): [fee_grant_allowance!]! + + """ + fetch aggregated fields from the table: "fee_grant_allowance" + """ + fee_grant_allowance_aggregate( + """distinct select on columns""" + distinct_on: [fee_grant_allowance_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [fee_grant_allowance_order_by!] + + """filter the rows returned""" + where: fee_grant_allowance_bool_exp + ): fee_grant_allowance_aggregate! + + """ + fetch data from the table: "fee_grant_allowance" using primary key columns + """ + fee_grant_allowance_by_pk(id: Int!): fee_grant_allowance + + """ + fetch data from the table in a streaming manner: "fee_grant_allowance" + """ + fee_grant_allowance_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [fee_grant_allowance_stream_cursor_input]! + + """filter the rows returned""" + where: fee_grant_allowance_bool_exp + ): [fee_grant_allowance!]! + + """ + fetch data from the table: "feemodel_params" + """ + feemodel_params( + """distinct select on columns""" + distinct_on: [feemodel_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [feemodel_params_order_by!] + + """filter the rows returned""" + where: feemodel_params_bool_exp + ): [feemodel_params!]! + + """ + fetch aggregated fields from the table: "feemodel_params" + """ + feemodel_params_aggregate( + """distinct select on columns""" + distinct_on: [feemodel_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [feemodel_params_order_by!] + + """filter the rows returned""" + where: feemodel_params_bool_exp + ): feemodel_params_aggregate! + + """fetch data from the table: "feemodel_params" using primary key columns""" + feemodel_params_by_pk(one_row_id: Boolean!): feemodel_params + + """ + fetch data from the table in a streaming manner: "feemodel_params" + """ + feemodel_params_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [feemodel_params_stream_cursor_input]! + + """filter the rows returned""" + where: feemodel_params_bool_exp + ): [feemodel_params!]! + + """ + fetch data from the table: "genesis" + """ + genesis( + """distinct select on columns""" + distinct_on: [genesis_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [genesis_order_by!] + + """filter the rows returned""" + where: genesis_bool_exp + ): [genesis!]! + + """ + fetch aggregated fields from the table: "genesis" + """ + genesis_aggregate( + """distinct select on columns""" + distinct_on: [genesis_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [genesis_order_by!] + + """filter the rows returned""" + where: genesis_bool_exp + ): genesis_aggregate! + + """fetch data from the table: "genesis" using primary key columns""" + genesis_by_pk(one_row_id: Boolean!): genesis + + """ + fetch data from the table in a streaming manner: "genesis" + """ + genesis_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [genesis_stream_cursor_input]! + + """filter the rows returned""" + where: genesis_bool_exp + ): [genesis!]! + + """ + fetch data from the table: "gov_params" + """ + gov_params( + """distinct select on columns""" + distinct_on: [gov_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [gov_params_order_by!] + + """filter the rows returned""" + where: gov_params_bool_exp + ): [gov_params!]! + + """ + fetch aggregated fields from the table: "gov_params" + """ + gov_params_aggregate( + """distinct select on columns""" + distinct_on: [gov_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [gov_params_order_by!] + + """filter the rows returned""" + where: gov_params_bool_exp + ): gov_params_aggregate! + + """fetch data from the table: "gov_params" using primary key columns""" + gov_params_by_pk(one_row_id: Boolean!): gov_params + + """ + fetch data from the table in a streaming manner: "gov_params" + """ + gov_params_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [gov_params_stream_cursor_input]! + + """filter the rows returned""" + where: gov_params_bool_exp + ): [gov_params!]! + + """ + fetch data from the table: "inflation" + """ + inflation( + """distinct select on columns""" + distinct_on: [inflation_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [inflation_order_by!] + + """filter the rows returned""" + where: inflation_bool_exp + ): [inflation!]! + + """ + fetch aggregated fields from the table: "inflation" + """ + inflation_aggregate( + """distinct select on columns""" + distinct_on: [inflation_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [inflation_order_by!] + + """filter the rows returned""" + where: inflation_bool_exp + ): inflation_aggregate! + + """fetch data from the table: "inflation" using primary key columns""" + inflation_by_pk(one_row_id: Boolean!): inflation + + """ + fetch data from the table in a streaming manner: "inflation" + """ + inflation_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [inflation_stream_cursor_input]! + + """filter the rows returned""" + where: inflation_bool_exp + ): [inflation!]! + + """ + fetch data from the table: "message" + """ + message( + """distinct select on columns""" + distinct_on: [message_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [message_order_by!] + + """filter the rows returned""" + where: message_bool_exp + ): [message!]! + + """ + fetch aggregated fields from the table: "message" + """ + message_aggregate( + """distinct select on columns""" + distinct_on: [message_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [message_order_by!] + + """filter the rows returned""" + where: message_bool_exp + ): message_aggregate! + + """ + fetch data from the table in a streaming manner: "message" + """ + message_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [message_stream_cursor_input]! + + """filter the rows returned""" + where: message_bool_exp + ): [message!]! + + """ + execute function "messages_by_address" which returns "message" + """ + messages_by_address( + """ + input parameters for function "messages_by_address" + """ + args: messages_by_address_args! + + """distinct select on columns""" + distinct_on: [message_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [message_order_by!] + + """filter the rows returned""" + where: message_bool_exp + ): [message!]! + + """ + execute function "messages_by_address" and query aggregates on result of table type "message" + """ + messages_by_address_aggregate( + """ + input parameters for function "messages_by_address_aggregate" + """ + args: messages_by_address_args! + + """distinct select on columns""" + distinct_on: [message_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [message_order_by!] + + """filter the rows returned""" + where: message_bool_exp + ): message_aggregate! + + """ + fetch data from the table: "mint_params" + """ + mint_params( + """distinct select on columns""" + distinct_on: [mint_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [mint_params_order_by!] + + """filter the rows returned""" + where: mint_params_bool_exp + ): [mint_params!]! + + """ + fetch aggregated fields from the table: "mint_params" + """ + mint_params_aggregate( + """distinct select on columns""" + distinct_on: [mint_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [mint_params_order_by!] + + """filter the rows returned""" + where: mint_params_bool_exp + ): mint_params_aggregate! + + """fetch data from the table: "mint_params" using primary key columns""" + mint_params_by_pk(one_row_id: Boolean!): mint_params + + """ + fetch data from the table in a streaming manner: "mint_params" + """ + mint_params_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [mint_params_stream_cursor_input]! + + """filter the rows returned""" + where: mint_params_bool_exp + ): [mint_params!]! + + """ + fetch data from the table: "modules" + """ + modules( + """distinct select on columns""" + distinct_on: [modules_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [modules_order_by!] + + """filter the rows returned""" + where: modules_bool_exp + ): [modules!]! + + """ + fetch aggregated fields from the table: "modules" + """ + modules_aggregate( + """distinct select on columns""" + distinct_on: [modules_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [modules_order_by!] + + """filter the rows returned""" + where: modules_bool_exp + ): modules_aggregate! + + """fetch data from the table: "modules" using primary key columns""" + modules_by_pk(module_name: String!): modules + + """ + fetch data from the table in a streaming manner: "modules" + """ + modules_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [modules_stream_cursor_input]! + + """filter the rows returned""" + where: modules_bool_exp + ): [modules!]! + + """ + fetch data from the table: "pre_commit" + """ + pre_commit( + """distinct select on columns""" + distinct_on: [pre_commit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pre_commit_order_by!] + + """filter the rows returned""" + where: pre_commit_bool_exp + ): [pre_commit!]! + + """ + fetch aggregated fields from the table: "pre_commit" + """ + pre_commit_aggregate( + """distinct select on columns""" + distinct_on: [pre_commit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pre_commit_order_by!] + + """filter the rows returned""" + where: pre_commit_bool_exp + ): pre_commit_aggregate! + + """ + fetch data from the table in a streaming manner: "pre_commit" + """ + pre_commit_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [pre_commit_stream_cursor_input]! + + """filter the rows returned""" + where: pre_commit_bool_exp + ): [pre_commit!]! + + """ + fetch data from the table: "proposal" + """ + proposal( + """distinct select on columns""" + distinct_on: [proposal_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_order_by!] + + """filter the rows returned""" + where: proposal_bool_exp + ): [proposal!]! + + """ + fetch aggregated fields from the table: "proposal" + """ + proposal_aggregate( + """distinct select on columns""" + distinct_on: [proposal_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_order_by!] + + """filter the rows returned""" + where: proposal_bool_exp + ): proposal_aggregate! + + """fetch data from the table: "proposal" using primary key columns""" + proposal_by_pk(id: Int!): proposal + + """ + fetch data from the table: "proposal_deposit" + """ + proposal_deposit( + """distinct select on columns""" + distinct_on: [proposal_deposit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_deposit_order_by!] + + """filter the rows returned""" + where: proposal_deposit_bool_exp + ): [proposal_deposit!]! + + """ + fetch aggregated fields from the table: "proposal_deposit" + """ + proposal_deposit_aggregate( + """distinct select on columns""" + distinct_on: [proposal_deposit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_deposit_order_by!] + + """filter the rows returned""" + where: proposal_deposit_bool_exp + ): proposal_deposit_aggregate! + + """ + fetch data from the table in a streaming manner: "proposal_deposit" + """ + proposal_deposit_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [proposal_deposit_stream_cursor_input]! + + """filter the rows returned""" + where: proposal_deposit_bool_exp + ): [proposal_deposit!]! + + """ + fetch data from the table: "proposal_staking_pool_snapshot" + """ + proposal_staking_pool_snapshot( + """distinct select on columns""" + distinct_on: [proposal_staking_pool_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_staking_pool_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_staking_pool_snapshot_bool_exp + ): [proposal_staking_pool_snapshot!]! + + """ + fetch aggregated fields from the table: "proposal_staking_pool_snapshot" + """ + proposal_staking_pool_snapshot_aggregate( + """distinct select on columns""" + distinct_on: [proposal_staking_pool_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_staking_pool_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_staking_pool_snapshot_bool_exp + ): proposal_staking_pool_snapshot_aggregate! + + """ + fetch data from the table: "proposal_staking_pool_snapshot" using primary key columns + """ + proposal_staking_pool_snapshot_by_pk(proposal_id: Int!): proposal_staking_pool_snapshot + + """ + fetch data from the table in a streaming manner: "proposal_staking_pool_snapshot" + """ + proposal_staking_pool_snapshot_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [proposal_staking_pool_snapshot_stream_cursor_input]! + + """filter the rows returned""" + where: proposal_staking_pool_snapshot_bool_exp + ): [proposal_staking_pool_snapshot!]! + + """ + fetch data from the table in a streaming manner: "proposal" + """ + proposal_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [proposal_stream_cursor_input]! + + """filter the rows returned""" + where: proposal_bool_exp + ): [proposal!]! + + """ + fetch data from the table: "proposal_tally_result" + """ + proposal_tally_result( + """distinct select on columns""" + distinct_on: [proposal_tally_result_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_tally_result_order_by!] + + """filter the rows returned""" + where: proposal_tally_result_bool_exp + ): [proposal_tally_result!]! + + """ + fetch aggregated fields from the table: "proposal_tally_result" + """ + proposal_tally_result_aggregate( + """distinct select on columns""" + distinct_on: [proposal_tally_result_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_tally_result_order_by!] + + """filter the rows returned""" + where: proposal_tally_result_bool_exp + ): proposal_tally_result_aggregate! + + """ + fetch data from the table: "proposal_tally_result" using primary key columns + """ + proposal_tally_result_by_pk(proposal_id: Int!): proposal_tally_result + + """ + fetch data from the table in a streaming manner: "proposal_tally_result" + """ + proposal_tally_result_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [proposal_tally_result_stream_cursor_input]! + + """filter the rows returned""" + where: proposal_tally_result_bool_exp + ): [proposal_tally_result!]! + + """ + fetch data from the table: "proposal_validator_status_snapshot" + """ + proposal_validator_status_snapshot( + """distinct select on columns""" + distinct_on: [proposal_validator_status_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_validator_status_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_validator_status_snapshot_bool_exp + ): [proposal_validator_status_snapshot!]! + + """ + fetch aggregated fields from the table: "proposal_validator_status_snapshot" + """ + proposal_validator_status_snapshot_aggregate( + """distinct select on columns""" + distinct_on: [proposal_validator_status_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_validator_status_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_validator_status_snapshot_bool_exp + ): proposal_validator_status_snapshot_aggregate! + + """ + fetch data from the table: "proposal_validator_status_snapshot" using primary key columns + """ + proposal_validator_status_snapshot_by_pk(id: Int!): proposal_validator_status_snapshot + + """ + fetch data from the table in a streaming manner: "proposal_validator_status_snapshot" + """ + proposal_validator_status_snapshot_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [proposal_validator_status_snapshot_stream_cursor_input]! + + """filter the rows returned""" + where: proposal_validator_status_snapshot_bool_exp + ): [proposal_validator_status_snapshot!]! + + """ + fetch data from the table: "proposal_vote" + """ + proposal_vote( + """distinct select on columns""" + distinct_on: [proposal_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_vote_order_by!] + + """filter the rows returned""" + where: proposal_vote_bool_exp + ): [proposal_vote!]! + + """ + fetch aggregated fields from the table: "proposal_vote" + """ + proposal_vote_aggregate( + """distinct select on columns""" + distinct_on: [proposal_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_vote_order_by!] + + """filter the rows returned""" + where: proposal_vote_bool_exp + ): proposal_vote_aggregate! + + """ + fetch data from the table in a streaming manner: "proposal_vote" + """ + proposal_vote_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [proposal_vote_stream_cursor_input]! + + """filter the rows returned""" + where: proposal_vote_bool_exp + ): [proposal_vote!]! + + """ + fetch data from the table: "slashing_params" + """ + slashing_params( + """distinct select on columns""" + distinct_on: [slashing_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [slashing_params_order_by!] + + """filter the rows returned""" + where: slashing_params_bool_exp + ): [slashing_params!]! + + """ + fetch aggregated fields from the table: "slashing_params" + """ + slashing_params_aggregate( + """distinct select on columns""" + distinct_on: [slashing_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [slashing_params_order_by!] + + """filter the rows returned""" + where: slashing_params_bool_exp + ): slashing_params_aggregate! + + """fetch data from the table: "slashing_params" using primary key columns""" + slashing_params_by_pk(one_row_id: Boolean!): slashing_params + + """ + fetch data from the table in a streaming manner: "slashing_params" + """ + slashing_params_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [slashing_params_stream_cursor_input]! + + """filter the rows returned""" + where: slashing_params_bool_exp + ): [slashing_params!]! + + """ + fetch data from the table: "software_upgrade_plan" + """ + software_upgrade_plan( + """distinct select on columns""" + distinct_on: [software_upgrade_plan_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [software_upgrade_plan_order_by!] + + """filter the rows returned""" + where: software_upgrade_plan_bool_exp + ): [software_upgrade_plan!]! + + """ + fetch aggregated fields from the table: "software_upgrade_plan" + """ + software_upgrade_plan_aggregate( + """distinct select on columns""" + distinct_on: [software_upgrade_plan_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [software_upgrade_plan_order_by!] + + """filter the rows returned""" + where: software_upgrade_plan_bool_exp + ): software_upgrade_plan_aggregate! + + """ + fetch data from the table in a streaming manner: "software_upgrade_plan" + """ + software_upgrade_plan_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [software_upgrade_plan_stream_cursor_input]! + + """filter the rows returned""" + where: software_upgrade_plan_bool_exp + ): [software_upgrade_plan!]! + + """ + fetch data from the table: "staking_params" + """ + staking_params( + """distinct select on columns""" + distinct_on: [staking_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [staking_params_order_by!] + + """filter the rows returned""" + where: staking_params_bool_exp + ): [staking_params!]! + + """ + fetch aggregated fields from the table: "staking_params" + """ + staking_params_aggregate( + """distinct select on columns""" + distinct_on: [staking_params_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [staking_params_order_by!] + + """filter the rows returned""" + where: staking_params_bool_exp + ): staking_params_aggregate! + + """fetch data from the table: "staking_params" using primary key columns""" + staking_params_by_pk(one_row_id: Boolean!): staking_params + + """ + fetch data from the table in a streaming manner: "staking_params" + """ + staking_params_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [staking_params_stream_cursor_input]! + + """filter the rows returned""" + where: staking_params_bool_exp + ): [staking_params!]! + + """ + fetch data from the table: "staking_pool" + """ + staking_pool( + """distinct select on columns""" + distinct_on: [staking_pool_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [staking_pool_order_by!] + + """filter the rows returned""" + where: staking_pool_bool_exp + ): [staking_pool!]! + + """ + fetch aggregated fields from the table: "staking_pool" + """ + staking_pool_aggregate( + """distinct select on columns""" + distinct_on: [staking_pool_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [staking_pool_order_by!] + + """filter the rows returned""" + where: staking_pool_bool_exp + ): staking_pool_aggregate! + + """fetch data from the table: "staking_pool" using primary key columns""" + staking_pool_by_pk(one_row_id: Boolean!): staking_pool + + """ + fetch data from the table in a streaming manner: "staking_pool" + """ + staking_pool_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [staking_pool_stream_cursor_input]! + + """filter the rows returned""" + where: staking_pool_bool_exp + ): [staking_pool!]! + + """ + fetch data from the table: "supply" + """ + supply( + """distinct select on columns""" + distinct_on: [supply_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [supply_order_by!] + + """filter the rows returned""" + where: supply_bool_exp + ): [supply!]! + + """ + fetch aggregated fields from the table: "supply" + """ + supply_aggregate( + """distinct select on columns""" + distinct_on: [supply_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [supply_order_by!] + + """filter the rows returned""" + where: supply_bool_exp + ): supply_aggregate! + + """fetch data from the table: "supply" using primary key columns""" + supply_by_pk(one_row_id: Boolean!): supply + + """ + fetch data from the table in a streaming manner: "supply" + """ + supply_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [supply_stream_cursor_input]! + + """filter the rows returned""" + where: supply_bool_exp + ): [supply!]! + + """ + fetch data from the table: "token" + """ + token( + """distinct select on columns""" + distinct_on: [token_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_order_by!] + + """filter the rows returned""" + where: token_bool_exp + ): [token!]! + + """ + fetch aggregated fields from the table: "token" + """ + token_aggregate( + """distinct select on columns""" + distinct_on: [token_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_order_by!] + + """filter the rows returned""" + where: token_bool_exp + ): token_aggregate! + + """ + fetch data from the table: "token_holder_count" + """ + token_holder_count( + """distinct select on columns""" + distinct_on: [token_holder_count_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_holder_count_order_by!] + + """filter the rows returned""" + where: token_holder_count_bool_exp + ): [token_holder_count!]! + + """ + fetch aggregated fields from the table: "token_holder_count" + """ + token_holder_count_aggregate( + """distinct select on columns""" + distinct_on: [token_holder_count_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_holder_count_order_by!] + + """filter the rows returned""" + where: token_holder_count_bool_exp + ): token_holder_count_aggregate! + + """ + fetch data from the table in a streaming manner: "token_holder_count" + """ + token_holder_count_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [token_holder_count_stream_cursor_input]! + + """filter the rows returned""" + where: token_holder_count_bool_exp + ): [token_holder_count!]! + + """ + fetch data from the table: "token_price" + """ + token_price( + """distinct select on columns""" + distinct_on: [token_price_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_order_by!] + + """filter the rows returned""" + where: token_price_bool_exp + ): [token_price!]! + + """ + fetch aggregated fields from the table: "token_price" + """ + token_price_aggregate( + """distinct select on columns""" + distinct_on: [token_price_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_order_by!] + + """filter the rows returned""" + where: token_price_bool_exp + ): token_price_aggregate! + + """fetch data from the table: "token_price" using primary key columns""" + token_price_by_pk(id: Int!): token_price + + """ + fetch data from the table: "token_price_history" + """ + token_price_history( + """distinct select on columns""" + distinct_on: [token_price_history_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_history_order_by!] + + """filter the rows returned""" + where: token_price_history_bool_exp + ): [token_price_history!]! + + """ + fetch aggregated fields from the table: "token_price_history" + """ + token_price_history_aggregate( + """distinct select on columns""" + distinct_on: [token_price_history_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_history_order_by!] + + """filter the rows returned""" + where: token_price_history_bool_exp + ): token_price_history_aggregate! + + """ + fetch data from the table: "token_price_history" using primary key columns + """ + token_price_history_by_pk(id: Int!): token_price_history + + """ + fetch data from the table in a streaming manner: "token_price_history" + """ + token_price_history_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [token_price_history_stream_cursor_input]! + + """filter the rows returned""" + where: token_price_history_bool_exp + ): [token_price_history!]! + + """ + fetch data from the table in a streaming manner: "token_price" + """ + token_price_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [token_price_stream_cursor_input]! + + """filter the rows returned""" + where: token_price_bool_exp + ): [token_price!]! + + """ + fetch data from the table in a streaming manner: "token" + """ + token_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [token_stream_cursor_input]! + + """filter the rows returned""" + where: token_bool_exp + ): [token!]! + + """ + fetch data from the table: "token_unit" + """ + token_unit( + """distinct select on columns""" + distinct_on: [token_unit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_unit_order_by!] + + """filter the rows returned""" + where: token_unit_bool_exp + ): [token_unit!]! + + """ + fetch aggregated fields from the table: "token_unit" + """ + token_unit_aggregate( + """distinct select on columns""" + distinct_on: [token_unit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_unit_order_by!] + + """filter the rows returned""" + where: token_unit_bool_exp + ): token_unit_aggregate! + + """ + fetch data from the table in a streaming manner: "token_unit" + """ + token_unit_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [token_unit_stream_cursor_input]! + + """filter the rows returned""" + where: token_unit_bool_exp + ): [token_unit!]! + + """ + fetch data from the table: "transaction" + """ + transaction( + """distinct select on columns""" + distinct_on: [transaction_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [transaction_order_by!] + + """filter the rows returned""" + where: transaction_bool_exp + ): [transaction!]! + + """ + fetch aggregated fields from the table: "transaction" + """ + transaction_aggregate( + """distinct select on columns""" + distinct_on: [transaction_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [transaction_order_by!] + + """filter the rows returned""" + where: transaction_bool_exp + ): transaction_aggregate! + + """ + fetch data from the table in a streaming manner: "transaction" + """ + transaction_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [transaction_stream_cursor_input]! + + """filter the rows returned""" + where: transaction_bool_exp + ): [transaction!]! + + """ + fetch data from the table: "validator" + """ + validator( + """distinct select on columns""" + distinct_on: [validator_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_order_by!] + + """filter the rows returned""" + where: validator_bool_exp + ): [validator!]! + + """ + fetch aggregated fields from the table: "validator" + """ + validator_aggregate( + """distinct select on columns""" + distinct_on: [validator_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_order_by!] + + """filter the rows returned""" + where: validator_bool_exp + ): validator_aggregate! + + """fetch data from the table: "validator" using primary key columns""" + validator_by_pk(consensus_address: String!): validator + + """ + fetch data from the table: "validator_commission" + """ + validator_commission( + """distinct select on columns""" + distinct_on: [validator_commission_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_commission_order_by!] + + """filter the rows returned""" + where: validator_commission_bool_exp + ): [validator_commission!]! + + """ + fetch aggregated fields from the table: "validator_commission" + """ + validator_commission_aggregate( + """distinct select on columns""" + distinct_on: [validator_commission_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_commission_order_by!] + + """filter the rows returned""" + where: validator_commission_bool_exp + ): validator_commission_aggregate! + + """ + fetch data from the table: "validator_commission" using primary key columns + """ + validator_commission_by_pk(validator_address: String!): validator_commission + + """ + fetch data from the table in a streaming manner: "validator_commission" + """ + validator_commission_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [validator_commission_stream_cursor_input]! + + """filter the rows returned""" + where: validator_commission_bool_exp + ): [validator_commission!]! + + """ + fetch data from the table: "validator_description" + """ + validator_description( + """distinct select on columns""" + distinct_on: [validator_description_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_description_order_by!] + + """filter the rows returned""" + where: validator_description_bool_exp + ): [validator_description!]! + + """ + fetch aggregated fields from the table: "validator_description" + """ + validator_description_aggregate( + """distinct select on columns""" + distinct_on: [validator_description_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_description_order_by!] + + """filter the rows returned""" + where: validator_description_bool_exp + ): validator_description_aggregate! + + """ + fetch data from the table: "validator_description" using primary key columns + """ + validator_description_by_pk(validator_address: String!): validator_description + + """ + fetch data from the table in a streaming manner: "validator_description" + """ + validator_description_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [validator_description_stream_cursor_input]! + + """filter the rows returned""" + where: validator_description_bool_exp + ): [validator_description!]! + + """ + fetch data from the table: "validator_info" + """ + validator_info( + """distinct select on columns""" + distinct_on: [validator_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_info_order_by!] + + """filter the rows returned""" + where: validator_info_bool_exp + ): [validator_info!]! + + """ + fetch aggregated fields from the table: "validator_info" + """ + validator_info_aggregate( + """distinct select on columns""" + distinct_on: [validator_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_info_order_by!] + + """filter the rows returned""" + where: validator_info_bool_exp + ): validator_info_aggregate! + + """fetch data from the table: "validator_info" using primary key columns""" + validator_info_by_pk(consensus_address: String!): validator_info + + """ + fetch data from the table in a streaming manner: "validator_info" + """ + validator_info_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [validator_info_stream_cursor_input]! + + """filter the rows returned""" + where: validator_info_bool_exp + ): [validator_info!]! + + """ + fetch data from the table: "validator_signing_info" + """ + validator_signing_info( + """distinct select on columns""" + distinct_on: [validator_signing_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_signing_info_order_by!] + + """filter the rows returned""" + where: validator_signing_info_bool_exp + ): [validator_signing_info!]! + + """ + fetch aggregated fields from the table: "validator_signing_info" + """ + validator_signing_info_aggregate( + """distinct select on columns""" + distinct_on: [validator_signing_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_signing_info_order_by!] + + """filter the rows returned""" + where: validator_signing_info_bool_exp + ): validator_signing_info_aggregate! + + """ + fetch data from the table: "validator_signing_info" using primary key columns + """ + validator_signing_info_by_pk(validator_address: String!): validator_signing_info + + """ + fetch data from the table in a streaming manner: "validator_signing_info" + """ + validator_signing_info_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [validator_signing_info_stream_cursor_input]! + + """filter the rows returned""" + where: validator_signing_info_bool_exp + ): [validator_signing_info!]! + + """ + fetch data from the table: "validator_status" + """ + validator_status( + """distinct select on columns""" + distinct_on: [validator_status_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_status_order_by!] + + """filter the rows returned""" + where: validator_status_bool_exp + ): [validator_status!]! + + """ + fetch aggregated fields from the table: "validator_status" + """ + validator_status_aggregate( + """distinct select on columns""" + distinct_on: [validator_status_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_status_order_by!] + + """filter the rows returned""" + where: validator_status_bool_exp + ): validator_status_aggregate! + + """ + fetch data from the table: "validator_status" using primary key columns + """ + validator_status_by_pk(validator_address: String!): validator_status + + """ + fetch data from the table in a streaming manner: "validator_status" + """ + validator_status_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [validator_status_stream_cursor_input]! + + """filter the rows returned""" + where: validator_status_bool_exp + ): [validator_status!]! + + """ + fetch data from the table in a streaming manner: "validator" + """ + validator_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [validator_stream_cursor_input]! + + """filter the rows returned""" + where: validator_bool_exp + ): [validator!]! + + """ + fetch data from the table: "validator_voting_power" + """ + validator_voting_power( + """distinct select on columns""" + distinct_on: [validator_voting_power_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_voting_power_order_by!] + + """filter the rows returned""" + where: validator_voting_power_bool_exp + ): [validator_voting_power!]! + + """ + fetch aggregated fields from the table: "validator_voting_power" + """ + validator_voting_power_aggregate( + """distinct select on columns""" + distinct_on: [validator_voting_power_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_voting_power_order_by!] + + """filter the rows returned""" + where: validator_voting_power_bool_exp + ): validator_voting_power_aggregate! + + """ + fetch data from the table: "validator_voting_power" using primary key columns + """ + validator_voting_power_by_pk(validator_address: String!): validator_voting_power + + """ + fetch data from the table in a streaming manner: "validator_voting_power" + """ + validator_voting_power_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [validator_voting_power_stream_cursor_input]! + + """filter the rows returned""" + where: validator_voting_power_bool_exp + ): [validator_voting_power!]! + + """ + fetch data from the table: "vesting_account" + """ + vesting_account( + """distinct select on columns""" + distinct_on: [vesting_account_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_account_order_by!] + + """filter the rows returned""" + where: vesting_account_bool_exp + ): [vesting_account!]! + + """ + fetch aggregated fields from the table: "vesting_account" + """ + vesting_account_aggregate( + """distinct select on columns""" + distinct_on: [vesting_account_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_account_order_by!] + + """filter the rows returned""" + where: vesting_account_bool_exp + ): vesting_account_aggregate! + + """fetch data from the table: "vesting_account" using primary key columns""" + vesting_account_by_pk(id: Int!): vesting_account + + """ + fetch data from the table in a streaming manner: "vesting_account" + """ + vesting_account_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [vesting_account_stream_cursor_input]! + + """filter the rows returned""" + where: vesting_account_bool_exp + ): [vesting_account!]! + + """ + fetch data from the table: "vesting_period" + """ + vesting_period( + """distinct select on columns""" + distinct_on: [vesting_period_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_period_order_by!] + + """filter the rows returned""" + where: vesting_period_bool_exp + ): [vesting_period!]! + + """ + fetch aggregated fields from the table: "vesting_period" + """ + vesting_period_aggregate( + """distinct select on columns""" + distinct_on: [vesting_period_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_period_order_by!] + + """filter the rows returned""" + where: vesting_period_bool_exp + ): vesting_period_aggregate! + + """ + fetch data from the table in a streaming manner: "vesting_period" + """ + vesting_period_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [vesting_period_stream_cursor_input]! + + """filter the rows returned""" + where: vesting_period_bool_exp + ): [vesting_period!]! +} + +""" +columns and relationships of "supply" +""" +type supply { + coins: [coin!]! + height: bigint! + one_row_id: Boolean! +} + +""" +aggregated selection of "supply" +""" +type supply_aggregate { + aggregate: supply_aggregate_fields + nodes: [supply!]! +} + +""" +aggregate fields of "supply" +""" +type supply_aggregate_fields { + avg: supply_avg_fields + count(columns: [supply_select_column!], distinct: Boolean): Int! + max: supply_max_fields + min: supply_min_fields + stddev: supply_stddev_fields + stddev_pop: supply_stddev_pop_fields + stddev_samp: supply_stddev_samp_fields + sum: supply_sum_fields + var_pop: supply_var_pop_fields + var_samp: supply_var_samp_fields + variance: supply_variance_fields +} + +"""aggregate avg on columns""" +type supply_avg_fields { + height: Float +} + +""" +Boolean expression to filter rows from the table "supply". All fields are combined with a logical 'AND'. +""" +input supply_bool_exp { + _and: [supply_bool_exp!] + _not: supply_bool_exp + _or: [supply_bool_exp!] + coins: coin_array_comparison_exp + height: bigint_comparison_exp + one_row_id: Boolean_comparison_exp +} + +""" +unique or primary key constraints on table "supply" +""" +enum supply_constraint { + """ + unique or primary key constraint on columns "one_row_id" + """ + supply_pkey +} + +""" +input type for incrementing numeric columns in table "supply" +""" +input supply_inc_input { + height: bigint +} + +""" +input type for inserting data into table "supply" +""" +input supply_insert_input { + coins: [coin!] + height: bigint + one_row_id: Boolean +} + +"""aggregate max on columns""" +type supply_max_fields { + coins: [coin!] + height: bigint +} + +"""aggregate min on columns""" +type supply_min_fields { + coins: [coin!] + height: bigint +} + +""" +response of any mutation on the table "supply" +""" +type supply_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [supply!]! +} + +""" +on_conflict condition type for table "supply" +""" +input supply_on_conflict { + constraint: supply_constraint! + update_columns: [supply_update_column!]! = [] + where: supply_bool_exp +} + +"""Ordering options when selecting data from "supply".""" +input supply_order_by { + coins: order_by + height: order_by + one_row_id: order_by +} + +"""primary key columns input for table: supply""" +input supply_pk_columns_input { + one_row_id: Boolean! +} + +""" +select columns of table "supply" +""" +enum supply_select_column { + """column name""" + coins + + """column name""" + height + + """column name""" + one_row_id +} + +""" +input type for updating data in table "supply" +""" +input supply_set_input { + coins: [coin!] + height: bigint + one_row_id: Boolean +} + +"""aggregate stddev on columns""" +type supply_stddev_fields { + height: Float +} + +"""aggregate stddev_pop on columns""" +type supply_stddev_pop_fields { + height: Float +} + +"""aggregate stddev_samp on columns""" +type supply_stddev_samp_fields { + height: Float +} + +""" +Streaming cursor of the table "supply" +""" +input supply_stream_cursor_input { + """Stream column input with initial value""" + initial_value: supply_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input supply_stream_cursor_value_input { + coins: [coin!] + height: bigint + one_row_id: Boolean +} + +"""aggregate sum on columns""" +type supply_sum_fields { + height: bigint +} + +""" +update columns of table "supply" +""" +enum supply_update_column { + """column name""" + coins + + """column name""" + height + + """column name""" + one_row_id +} + +input supply_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: supply_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: supply_set_input + + """filter the rows which have to be updated""" + where: supply_bool_exp! +} + +"""aggregate var_pop on columns""" +type supply_var_pop_fields { + height: Float +} + +"""aggregate var_samp on columns""" +type supply_var_samp_fields { + height: Float +} + +"""aggregate variance on columns""" +type supply_variance_fields { + height: Float +} + +scalar timestamp + +""" +Boolean expression to compare columns of type "timestamp". All fields are combined with logical 'AND'. +""" +input timestamp_comparison_exp { + _eq: timestamp + _gt: timestamp + _gte: timestamp + _in: [timestamp!] + _is_null: Boolean + _lt: timestamp + _lte: timestamp + _neq: timestamp + _nin: [timestamp!] +} + +""" +columns and relationships of "token" +""" +type token { + name: String! + + """An array relationship""" + token_units( + """distinct select on columns""" + distinct_on: [token_unit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_unit_order_by!] + + """filter the rows returned""" + where: token_unit_bool_exp + ): [token_unit!]! + + """An aggregate relationship""" + token_units_aggregate( + """distinct select on columns""" + distinct_on: [token_unit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_unit_order_by!] + + """filter the rows returned""" + where: token_unit_bool_exp + ): token_unit_aggregate! +} + +""" +aggregated selection of "token" +""" +type token_aggregate { + aggregate: token_aggregate_fields + nodes: [token!]! +} + +""" +aggregate fields of "token" +""" +type token_aggregate_fields { + count(columns: [token_select_column!], distinct: Boolean): Int! + max: token_max_fields + min: token_min_fields +} + +""" +Boolean expression to filter rows from the table "token". All fields are combined with a logical 'AND'. +""" +input token_bool_exp { + _and: [token_bool_exp!] + _not: token_bool_exp + _or: [token_bool_exp!] + name: String_comparison_exp + token_units: token_unit_bool_exp + token_units_aggregate: token_unit_aggregate_bool_exp +} + +""" +unique or primary key constraints on table "token" +""" +enum token_constraint { + """ + unique or primary key constraint on columns "name" + """ + token_name_key +} + +""" +columns and relationships of "token_holder_count" +""" +type token_holder_count { + denom: String + holders: bigint +} + +""" +aggregated selection of "token_holder_count" +""" +type token_holder_count_aggregate { + aggregate: token_holder_count_aggregate_fields + nodes: [token_holder_count!]! +} + +""" +aggregate fields of "token_holder_count" +""" +type token_holder_count_aggregate_fields { + avg: token_holder_count_avg_fields + count(columns: [token_holder_count_select_column!], distinct: Boolean): Int! + max: token_holder_count_max_fields + min: token_holder_count_min_fields + stddev: token_holder_count_stddev_fields + stddev_pop: token_holder_count_stddev_pop_fields + stddev_samp: token_holder_count_stddev_samp_fields + sum: token_holder_count_sum_fields + var_pop: token_holder_count_var_pop_fields + var_samp: token_holder_count_var_samp_fields + variance: token_holder_count_variance_fields +} + +"""aggregate avg on columns""" +type token_holder_count_avg_fields { + holders: Float +} + +""" +Boolean expression to filter rows from the table "token_holder_count". All fields are combined with a logical 'AND'. +""" +input token_holder_count_bool_exp { + _and: [token_holder_count_bool_exp!] + _not: token_holder_count_bool_exp + _or: [token_holder_count_bool_exp!] + denom: String_comparison_exp + holders: bigint_comparison_exp +} + +"""aggregate max on columns""" +type token_holder_count_max_fields { + denom: String + holders: bigint +} + +"""aggregate min on columns""" +type token_holder_count_min_fields { + denom: String + holders: bigint +} + +"""Ordering options when selecting data from "token_holder_count".""" +input token_holder_count_order_by { + denom: order_by + holders: order_by +} + +""" +select columns of table "token_holder_count" +""" +enum token_holder_count_select_column { + """column name""" + denom + + """column name""" + holders +} + +"""aggregate stddev on columns""" +type token_holder_count_stddev_fields { + holders: Float +} + +"""aggregate stddev_pop on columns""" +type token_holder_count_stddev_pop_fields { + holders: Float +} + +"""aggregate stddev_samp on columns""" +type token_holder_count_stddev_samp_fields { + holders: Float +} + +""" +Streaming cursor of the table "token_holder_count" +""" +input token_holder_count_stream_cursor_input { + """Stream column input with initial value""" + initial_value: token_holder_count_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input token_holder_count_stream_cursor_value_input { + denom: String + holders: bigint +} + +"""aggregate sum on columns""" +type token_holder_count_sum_fields { + holders: bigint +} + +"""aggregate var_pop on columns""" +type token_holder_count_var_pop_fields { + holders: Float +} + +"""aggregate var_samp on columns""" +type token_holder_count_var_samp_fields { + holders: Float +} + +"""aggregate variance on columns""" +type token_holder_count_variance_fields { + holders: Float +} + +""" +input type for inserting data into table "token" +""" +input token_insert_input { + name: String + token_units: token_unit_arr_rel_insert_input +} + +"""aggregate max on columns""" +type token_max_fields { + name: String +} + +"""aggregate min on columns""" +type token_min_fields { + name: String +} + +""" +response of any mutation on the table "token" +""" +type token_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [token!]! +} + +""" +input type for inserting object relation for remote table "token" +""" +input token_obj_rel_insert_input { + data: token_insert_input! + + """upsert condition""" + on_conflict: token_on_conflict +} + +""" +on_conflict condition type for table "token" +""" +input token_on_conflict { + constraint: token_constraint! + update_columns: [token_update_column!]! = [] + where: token_bool_exp +} + +"""Ordering options when selecting data from "token".""" +input token_order_by { + name: order_by + token_units_aggregate: token_unit_aggregate_order_by +} + +""" +columns and relationships of "token_price" +""" +type token_price { + id: Int! + market_cap: bigint! + price: numeric! + timestamp: timestamp! + + """An object relationship""" + token_unit: token_unit! + unit_name: String! +} + +""" +aggregated selection of "token_price" +""" +type token_price_aggregate { + aggregate: token_price_aggregate_fields + nodes: [token_price!]! +} + +input token_price_aggregate_bool_exp { + count: token_price_aggregate_bool_exp_count +} + +input token_price_aggregate_bool_exp_count { + arguments: [token_price_select_column!] + distinct: Boolean + filter: token_price_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "token_price" +""" +type token_price_aggregate_fields { + avg: token_price_avg_fields + count(columns: [token_price_select_column!], distinct: Boolean): Int! + max: token_price_max_fields + min: token_price_min_fields + stddev: token_price_stddev_fields + stddev_pop: token_price_stddev_pop_fields + stddev_samp: token_price_stddev_samp_fields + sum: token_price_sum_fields + var_pop: token_price_var_pop_fields + var_samp: token_price_var_samp_fields + variance: token_price_variance_fields +} + +""" +order by aggregate values of table "token_price" +""" +input token_price_aggregate_order_by { + avg: token_price_avg_order_by + count: order_by + max: token_price_max_order_by + min: token_price_min_order_by + stddev: token_price_stddev_order_by + stddev_pop: token_price_stddev_pop_order_by + stddev_samp: token_price_stddev_samp_order_by + sum: token_price_sum_order_by + var_pop: token_price_var_pop_order_by + var_samp: token_price_var_samp_order_by + variance: token_price_variance_order_by +} + +""" +input type for inserting array relation for remote table "token_price" +""" +input token_price_arr_rel_insert_input { + data: [token_price_insert_input!]! + + """upsert condition""" + on_conflict: token_price_on_conflict +} + +"""aggregate avg on columns""" +type token_price_avg_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by avg() on columns of table "token_price" +""" +input token_price_avg_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +""" +Boolean expression to filter rows from the table "token_price". All fields are combined with a logical 'AND'. +""" +input token_price_bool_exp { + _and: [token_price_bool_exp!] + _not: token_price_bool_exp + _or: [token_price_bool_exp!] + id: Int_comparison_exp + market_cap: bigint_comparison_exp + price: numeric_comparison_exp + timestamp: timestamp_comparison_exp + token_unit: token_unit_bool_exp + unit_name: String_comparison_exp +} + +""" +unique or primary key constraints on table "token_price" +""" +enum token_price_constraint { + """ + unique or primary key constraint on columns "id" + """ + token_price_pkey + + """ + unique or primary key constraint on columns "unit_name" + """ + token_price_unit_name_key +} + +""" +columns and relationships of "token_price_history" +""" +type token_price_history { + id: Int! + market_cap: bigint! + price: numeric! + timestamp: timestamp! + + """An object relationship""" + token_unit: token_unit! + unit_name: String! +} + +""" +aggregated selection of "token_price_history" +""" +type token_price_history_aggregate { + aggregate: token_price_history_aggregate_fields + nodes: [token_price_history!]! +} + +input token_price_history_aggregate_bool_exp { + count: token_price_history_aggregate_bool_exp_count +} + +input token_price_history_aggregate_bool_exp_count { + arguments: [token_price_history_select_column!] + distinct: Boolean + filter: token_price_history_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "token_price_history" +""" +type token_price_history_aggregate_fields { + avg: token_price_history_avg_fields + count(columns: [token_price_history_select_column!], distinct: Boolean): Int! + max: token_price_history_max_fields + min: token_price_history_min_fields + stddev: token_price_history_stddev_fields + stddev_pop: token_price_history_stddev_pop_fields + stddev_samp: token_price_history_stddev_samp_fields + sum: token_price_history_sum_fields + var_pop: token_price_history_var_pop_fields + var_samp: token_price_history_var_samp_fields + variance: token_price_history_variance_fields +} + +""" +order by aggregate values of table "token_price_history" +""" +input token_price_history_aggregate_order_by { + avg: token_price_history_avg_order_by + count: order_by + max: token_price_history_max_order_by + min: token_price_history_min_order_by + stddev: token_price_history_stddev_order_by + stddev_pop: token_price_history_stddev_pop_order_by + stddev_samp: token_price_history_stddev_samp_order_by + sum: token_price_history_sum_order_by + var_pop: token_price_history_var_pop_order_by + var_samp: token_price_history_var_samp_order_by + variance: token_price_history_variance_order_by +} + +""" +input type for inserting array relation for remote table "token_price_history" +""" +input token_price_history_arr_rel_insert_input { + data: [token_price_history_insert_input!]! + + """upsert condition""" + on_conflict: token_price_history_on_conflict +} + +"""aggregate avg on columns""" +type token_price_history_avg_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by avg() on columns of table "token_price_history" +""" +input token_price_history_avg_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +""" +Boolean expression to filter rows from the table "token_price_history". All fields are combined with a logical 'AND'. +""" +input token_price_history_bool_exp { + _and: [token_price_history_bool_exp!] + _not: token_price_history_bool_exp + _or: [token_price_history_bool_exp!] + id: Int_comparison_exp + market_cap: bigint_comparison_exp + price: numeric_comparison_exp + timestamp: timestamp_comparison_exp + token_unit: token_unit_bool_exp + unit_name: String_comparison_exp +} + +""" +unique or primary key constraints on table "token_price_history" +""" +enum token_price_history_constraint { + """ + unique or primary key constraint on columns "id" + """ + token_price_history_pkey + + """ + unique or primary key constraint on columns "timestamp", "unit_name" + """ + unique_price_for_timestamp +} + +""" +input type for incrementing numeric columns in table "token_price_history" +""" +input token_price_history_inc_input { + id: Int + market_cap: bigint + price: numeric +} + +""" +input type for inserting data into table "token_price_history" +""" +input token_price_history_insert_input { + id: Int + market_cap: bigint + price: numeric + timestamp: timestamp + token_unit: token_unit_obj_rel_insert_input + unit_name: String +} + +"""aggregate max on columns""" +type token_price_history_max_fields { + id: Int + market_cap: bigint + price: numeric + timestamp: timestamp + unit_name: String +} + +""" +order by max() on columns of table "token_price_history" +""" +input token_price_history_max_order_by { + id: order_by + market_cap: order_by + price: order_by + timestamp: order_by + unit_name: order_by +} + +"""aggregate min on columns""" +type token_price_history_min_fields { + id: Int + market_cap: bigint + price: numeric + timestamp: timestamp + unit_name: String +} + +""" +order by min() on columns of table "token_price_history" +""" +input token_price_history_min_order_by { + id: order_by + market_cap: order_by + price: order_by + timestamp: order_by + unit_name: order_by +} + +""" +response of any mutation on the table "token_price_history" +""" +type token_price_history_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [token_price_history!]! +} + +""" +on_conflict condition type for table "token_price_history" +""" +input token_price_history_on_conflict { + constraint: token_price_history_constraint! + update_columns: [token_price_history_update_column!]! = [] + where: token_price_history_bool_exp +} + +"""Ordering options when selecting data from "token_price_history".""" +input token_price_history_order_by { + id: order_by + market_cap: order_by + price: order_by + timestamp: order_by + token_unit: token_unit_order_by + unit_name: order_by +} + +"""primary key columns input for table: token_price_history""" +input token_price_history_pk_columns_input { + id: Int! +} + +""" +select columns of table "token_price_history" +""" +enum token_price_history_select_column { + """column name""" + id + + """column name""" + market_cap + + """column name""" + price + + """column name""" + timestamp + + """column name""" + unit_name +} + +""" +input type for updating data in table "token_price_history" +""" +input token_price_history_set_input { + id: Int + market_cap: bigint + price: numeric + timestamp: timestamp + unit_name: String +} + +"""aggregate stddev on columns""" +type token_price_history_stddev_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by stddev() on columns of table "token_price_history" +""" +input token_price_history_stddev_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +"""aggregate stddev_pop on columns""" +type token_price_history_stddev_pop_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by stddev_pop() on columns of table "token_price_history" +""" +input token_price_history_stddev_pop_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +"""aggregate stddev_samp on columns""" +type token_price_history_stddev_samp_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by stddev_samp() on columns of table "token_price_history" +""" +input token_price_history_stddev_samp_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +""" +Streaming cursor of the table "token_price_history" +""" +input token_price_history_stream_cursor_input { + """Stream column input with initial value""" + initial_value: token_price_history_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input token_price_history_stream_cursor_value_input { + id: Int + market_cap: bigint + price: numeric + timestamp: timestamp + unit_name: String +} + +"""aggregate sum on columns""" +type token_price_history_sum_fields { + id: Int + market_cap: bigint + price: numeric +} + +""" +order by sum() on columns of table "token_price_history" +""" +input token_price_history_sum_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +""" +update columns of table "token_price_history" +""" +enum token_price_history_update_column { + """column name""" + id + + """column name""" + market_cap + + """column name""" + price + + """column name""" + timestamp + + """column name""" + unit_name +} + +input token_price_history_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: token_price_history_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: token_price_history_set_input + + """filter the rows which have to be updated""" + where: token_price_history_bool_exp! +} + +"""aggregate var_pop on columns""" +type token_price_history_var_pop_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by var_pop() on columns of table "token_price_history" +""" +input token_price_history_var_pop_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +"""aggregate var_samp on columns""" +type token_price_history_var_samp_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by var_samp() on columns of table "token_price_history" +""" +input token_price_history_var_samp_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +"""aggregate variance on columns""" +type token_price_history_variance_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by variance() on columns of table "token_price_history" +""" +input token_price_history_variance_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +""" +input type for incrementing numeric columns in table "token_price" +""" +input token_price_inc_input { + id: Int + market_cap: bigint + price: numeric +} + +""" +input type for inserting data into table "token_price" +""" +input token_price_insert_input { + id: Int + market_cap: bigint + price: numeric + timestamp: timestamp + token_unit: token_unit_obj_rel_insert_input + unit_name: String +} + +"""aggregate max on columns""" +type token_price_max_fields { + id: Int + market_cap: bigint + price: numeric + timestamp: timestamp + unit_name: String +} + +""" +order by max() on columns of table "token_price" +""" +input token_price_max_order_by { + id: order_by + market_cap: order_by + price: order_by + timestamp: order_by + unit_name: order_by +} + +"""aggregate min on columns""" +type token_price_min_fields { + id: Int + market_cap: bigint + price: numeric + timestamp: timestamp + unit_name: String +} + +""" +order by min() on columns of table "token_price" +""" +input token_price_min_order_by { + id: order_by + market_cap: order_by + price: order_by + timestamp: order_by + unit_name: order_by +} + +""" +response of any mutation on the table "token_price" +""" +type token_price_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [token_price!]! +} + +""" +input type for inserting object relation for remote table "token_price" +""" +input token_price_obj_rel_insert_input { + data: token_price_insert_input! + + """upsert condition""" + on_conflict: token_price_on_conflict +} + +""" +on_conflict condition type for table "token_price" +""" +input token_price_on_conflict { + constraint: token_price_constraint! + update_columns: [token_price_update_column!]! = [] + where: token_price_bool_exp +} + +"""Ordering options when selecting data from "token_price".""" +input token_price_order_by { + id: order_by + market_cap: order_by + price: order_by + timestamp: order_by + token_unit: token_unit_order_by + unit_name: order_by +} + +"""primary key columns input for table: token_price""" +input token_price_pk_columns_input { + id: Int! +} + +""" +select columns of table "token_price" +""" +enum token_price_select_column { + """column name""" + id + + """column name""" + market_cap + + """column name""" + price + + """column name""" + timestamp + + """column name""" + unit_name +} + +""" +input type for updating data in table "token_price" +""" +input token_price_set_input { + id: Int + market_cap: bigint + price: numeric + timestamp: timestamp + unit_name: String +} + +"""aggregate stddev on columns""" +type token_price_stddev_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by stddev() on columns of table "token_price" +""" +input token_price_stddev_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +"""aggregate stddev_pop on columns""" +type token_price_stddev_pop_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by stddev_pop() on columns of table "token_price" +""" +input token_price_stddev_pop_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +"""aggregate stddev_samp on columns""" +type token_price_stddev_samp_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by stddev_samp() on columns of table "token_price" +""" +input token_price_stddev_samp_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +""" +Streaming cursor of the table "token_price" +""" +input token_price_stream_cursor_input { + """Stream column input with initial value""" + initial_value: token_price_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input token_price_stream_cursor_value_input { + id: Int + market_cap: bigint + price: numeric + timestamp: timestamp + unit_name: String +} + +"""aggregate sum on columns""" +type token_price_sum_fields { + id: Int + market_cap: bigint + price: numeric +} + +""" +order by sum() on columns of table "token_price" +""" +input token_price_sum_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +""" +update columns of table "token_price" +""" +enum token_price_update_column { + """column name""" + id + + """column name""" + market_cap + + """column name""" + price + + """column name""" + timestamp + + """column name""" + unit_name +} + +input token_price_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: token_price_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: token_price_set_input + + """filter the rows which have to be updated""" + where: token_price_bool_exp! +} + +"""aggregate var_pop on columns""" +type token_price_var_pop_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by var_pop() on columns of table "token_price" +""" +input token_price_var_pop_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +"""aggregate var_samp on columns""" +type token_price_var_samp_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by var_samp() on columns of table "token_price" +""" +input token_price_var_samp_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +"""aggregate variance on columns""" +type token_price_variance_fields { + id: Float + market_cap: Float + price: Float +} + +""" +order by variance() on columns of table "token_price" +""" +input token_price_variance_order_by { + id: order_by + market_cap: order_by + price: order_by +} + +""" +select columns of table "token" +""" +enum token_select_column { + """column name""" + name +} + +""" +input type for updating data in table "token" +""" +input token_set_input { + name: String +} + +""" +Streaming cursor of the table "token" +""" +input token_stream_cursor_input { + """Stream column input with initial value""" + initial_value: token_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input token_stream_cursor_value_input { + name: String +} + +""" +columns and relationships of "token_unit" +""" +type token_unit { + aliases: [String!] + denom: String! + exponent: Int! + price_id: String + + """An object relationship""" + token: token! + token_name: String! + + """An object relationship""" + token_price: token_price + + """An array relationship""" + token_price_histories( + """distinct select on columns""" + distinct_on: [token_price_history_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_history_order_by!] + + """filter the rows returned""" + where: token_price_history_bool_exp + ): [token_price_history!]! + + """An aggregate relationship""" + token_price_histories_aggregate( + """distinct select on columns""" + distinct_on: [token_price_history_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_history_order_by!] + + """filter the rows returned""" + where: token_price_history_bool_exp + ): token_price_history_aggregate! + + """An array relationship""" + token_prices( + """distinct select on columns""" + distinct_on: [token_price_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_order_by!] + + """filter the rows returned""" + where: token_price_bool_exp + ): [token_price!]! + + """An aggregate relationship""" + token_prices_aggregate( + """distinct select on columns""" + distinct_on: [token_price_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [token_price_order_by!] + + """filter the rows returned""" + where: token_price_bool_exp + ): token_price_aggregate! +} + +""" +aggregated selection of "token_unit" +""" +type token_unit_aggregate { + aggregate: token_unit_aggregate_fields + nodes: [token_unit!]! +} + +input token_unit_aggregate_bool_exp { + count: token_unit_aggregate_bool_exp_count +} + +input token_unit_aggregate_bool_exp_count { + arguments: [token_unit_select_column!] + distinct: Boolean + filter: token_unit_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "token_unit" +""" +type token_unit_aggregate_fields { + avg: token_unit_avg_fields + count(columns: [token_unit_select_column!], distinct: Boolean): Int! + max: token_unit_max_fields + min: token_unit_min_fields + stddev: token_unit_stddev_fields + stddev_pop: token_unit_stddev_pop_fields + stddev_samp: token_unit_stddev_samp_fields + sum: token_unit_sum_fields + var_pop: token_unit_var_pop_fields + var_samp: token_unit_var_samp_fields + variance: token_unit_variance_fields +} + +""" +order by aggregate values of table "token_unit" +""" +input token_unit_aggregate_order_by { + avg: token_unit_avg_order_by + count: order_by + max: token_unit_max_order_by + min: token_unit_min_order_by + stddev: token_unit_stddev_order_by + stddev_pop: token_unit_stddev_pop_order_by + stddev_samp: token_unit_stddev_samp_order_by + sum: token_unit_sum_order_by + var_pop: token_unit_var_pop_order_by + var_samp: token_unit_var_samp_order_by + variance: token_unit_variance_order_by +} + +""" +input type for inserting array relation for remote table "token_unit" +""" +input token_unit_arr_rel_insert_input { + data: [token_unit_insert_input!]! + + """upsert condition""" + on_conflict: token_unit_on_conflict +} + +"""aggregate avg on columns""" +type token_unit_avg_fields { + exponent: Float +} + +""" +order by avg() on columns of table "token_unit" +""" +input token_unit_avg_order_by { + exponent: order_by +} + +""" +Boolean expression to filter rows from the table "token_unit". All fields are combined with a logical 'AND'. +""" +input token_unit_bool_exp { + _and: [token_unit_bool_exp!] + _not: token_unit_bool_exp + _or: [token_unit_bool_exp!] + aliases: String_array_comparison_exp + denom: String_comparison_exp + exponent: Int_comparison_exp + price_id: String_comparison_exp + token: token_bool_exp + token_name: String_comparison_exp + token_price: token_price_bool_exp + token_price_histories: token_price_history_bool_exp + token_price_histories_aggregate: token_price_history_aggregate_bool_exp + token_prices: token_price_bool_exp + token_prices_aggregate: token_price_aggregate_bool_exp +} + +""" +unique or primary key constraints on table "token_unit" +""" +enum token_unit_constraint { + """ + unique or primary key constraint on columns "denom" + """ + token_unit_denom_key +} + +""" +input type for incrementing numeric columns in table "token_unit" +""" +input token_unit_inc_input { + exponent: Int +} + +""" +input type for inserting data into table "token_unit" +""" +input token_unit_insert_input { + aliases: [String!] + denom: String + exponent: Int + price_id: String + token: token_obj_rel_insert_input + token_name: String + token_price: token_price_obj_rel_insert_input + token_price_histories: token_price_history_arr_rel_insert_input + token_prices: token_price_arr_rel_insert_input +} + +"""aggregate max on columns""" +type token_unit_max_fields { + aliases: [String!] + denom: String + exponent: Int + price_id: String + token_name: String +} + +""" +order by max() on columns of table "token_unit" +""" +input token_unit_max_order_by { + aliases: order_by + denom: order_by + exponent: order_by + price_id: order_by + token_name: order_by +} + +"""aggregate min on columns""" +type token_unit_min_fields { + aliases: [String!] + denom: String + exponent: Int + price_id: String + token_name: String +} + +""" +order by min() on columns of table "token_unit" +""" +input token_unit_min_order_by { + aliases: order_by + denom: order_by + exponent: order_by + price_id: order_by + token_name: order_by +} + +""" +response of any mutation on the table "token_unit" +""" +type token_unit_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [token_unit!]! +} + +""" +input type for inserting object relation for remote table "token_unit" +""" +input token_unit_obj_rel_insert_input { + data: token_unit_insert_input! + + """upsert condition""" + on_conflict: token_unit_on_conflict +} + +""" +on_conflict condition type for table "token_unit" +""" +input token_unit_on_conflict { + constraint: token_unit_constraint! + update_columns: [token_unit_update_column!]! = [] + where: token_unit_bool_exp +} + +"""Ordering options when selecting data from "token_unit".""" +input token_unit_order_by { + aliases: order_by + denom: order_by + exponent: order_by + price_id: order_by + token: token_order_by + token_name: order_by + token_price: token_price_order_by + token_price_histories_aggregate: token_price_history_aggregate_order_by + token_prices_aggregate: token_price_aggregate_order_by +} + +""" +select columns of table "token_unit" +""" +enum token_unit_select_column { + """column name""" + aliases + + """column name""" + denom + + """column name""" + exponent + + """column name""" + price_id + + """column name""" + token_name +} + +""" +input type for updating data in table "token_unit" +""" +input token_unit_set_input { + aliases: [String!] + denom: String + exponent: Int + price_id: String + token_name: String +} + +"""aggregate stddev on columns""" +type token_unit_stddev_fields { + exponent: Float +} + +""" +order by stddev() on columns of table "token_unit" +""" +input token_unit_stddev_order_by { + exponent: order_by +} + +"""aggregate stddev_pop on columns""" +type token_unit_stddev_pop_fields { + exponent: Float +} + +""" +order by stddev_pop() on columns of table "token_unit" +""" +input token_unit_stddev_pop_order_by { + exponent: order_by +} + +"""aggregate stddev_samp on columns""" +type token_unit_stddev_samp_fields { + exponent: Float +} + +""" +order by stddev_samp() on columns of table "token_unit" +""" +input token_unit_stddev_samp_order_by { + exponent: order_by +} + +""" +Streaming cursor of the table "token_unit" +""" +input token_unit_stream_cursor_input { + """Stream column input with initial value""" + initial_value: token_unit_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input token_unit_stream_cursor_value_input { + aliases: [String!] + denom: String + exponent: Int + price_id: String + token_name: String +} + +"""aggregate sum on columns""" +type token_unit_sum_fields { + exponent: Int +} + +""" +order by sum() on columns of table "token_unit" +""" +input token_unit_sum_order_by { + exponent: order_by +} + +""" +update columns of table "token_unit" +""" +enum token_unit_update_column { + """column name""" + aliases + + """column name""" + denom + + """column name""" + exponent + + """column name""" + price_id + + """column name""" + token_name +} + +input token_unit_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: token_unit_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: token_unit_set_input + + """filter the rows which have to be updated""" + where: token_unit_bool_exp! +} + +"""aggregate var_pop on columns""" +type token_unit_var_pop_fields { + exponent: Float +} + +""" +order by var_pop() on columns of table "token_unit" +""" +input token_unit_var_pop_order_by { + exponent: order_by +} + +"""aggregate var_samp on columns""" +type token_unit_var_samp_fields { + exponent: Float +} + +""" +order by var_samp() on columns of table "token_unit" +""" +input token_unit_var_samp_order_by { + exponent: order_by +} + +"""aggregate variance on columns""" +type token_unit_variance_fields { + exponent: Float +} + +""" +order by variance() on columns of table "token_unit" +""" +input token_unit_variance_order_by { + exponent: order_by +} + +""" +update columns of table "token" +""" +enum token_update_column { + """column name""" + name +} + +input token_updates { + """sets the columns of the filtered rows to the given values""" + _set: token_set_input + + """filter the rows which have to be updated""" + where: token_bool_exp! +} + +""" +columns and relationships of "transaction" +""" +type transaction { + """An object relationship""" + block: block! + fee( + """JSON select path""" + path: String + ): jsonb! + gas_used: bigint + gas_wanted: bigint + hash: String! + height: bigint! + logs( + """JSON select path""" + path: String + ): jsonb + memo: String + messages( + """JSON select path""" + path: String + ): json! + partition_id: bigint! + raw_log: String + signatures: [String!]! + signer_infos( + """JSON select path""" + path: String + ): jsonb! + success: Boolean! +} + +""" +aggregated selection of "transaction" +""" +type transaction_aggregate { + aggregate: transaction_aggregate_fields + nodes: [transaction!]! +} + +input transaction_aggregate_bool_exp { + bool_and: transaction_aggregate_bool_exp_bool_and + bool_or: transaction_aggregate_bool_exp_bool_or + count: transaction_aggregate_bool_exp_count +} + +input transaction_aggregate_bool_exp_bool_and { + arguments: transaction_select_column_transaction_aggregate_bool_exp_bool_and_arguments_columns! + distinct: Boolean + filter: transaction_bool_exp + predicate: Boolean_comparison_exp! +} + +input transaction_aggregate_bool_exp_bool_or { + arguments: transaction_select_column_transaction_aggregate_bool_exp_bool_or_arguments_columns! + distinct: Boolean + filter: transaction_bool_exp + predicate: Boolean_comparison_exp! +} + +input transaction_aggregate_bool_exp_count { + arguments: [transaction_select_column!] + distinct: Boolean + filter: transaction_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "transaction" +""" +type transaction_aggregate_fields { + avg: transaction_avg_fields + count(columns: [transaction_select_column!], distinct: Boolean): Int! + max: transaction_max_fields + min: transaction_min_fields + stddev: transaction_stddev_fields + stddev_pop: transaction_stddev_pop_fields + stddev_samp: transaction_stddev_samp_fields + sum: transaction_sum_fields + var_pop: transaction_var_pop_fields + var_samp: transaction_var_samp_fields + variance: transaction_variance_fields +} + +""" +order by aggregate values of table "transaction" +""" +input transaction_aggregate_order_by { + avg: transaction_avg_order_by + count: order_by + max: transaction_max_order_by + min: transaction_min_order_by + stddev: transaction_stddev_order_by + stddev_pop: transaction_stddev_pop_order_by + stddev_samp: transaction_stddev_samp_order_by + sum: transaction_sum_order_by + var_pop: transaction_var_pop_order_by + var_samp: transaction_var_samp_order_by + variance: transaction_variance_order_by +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input transaction_append_input { + fee: jsonb + logs: jsonb + signer_infos: jsonb +} + +""" +input type for inserting array relation for remote table "transaction" +""" +input transaction_arr_rel_insert_input { + data: [transaction_insert_input!]! + + """upsert condition""" + on_conflict: transaction_on_conflict +} + +"""aggregate avg on columns""" +type transaction_avg_fields { + gas_used: Float + gas_wanted: Float + height: Float + partition_id: Float +} + +""" +order by avg() on columns of table "transaction" +""" +input transaction_avg_order_by { + gas_used: order_by + gas_wanted: order_by + height: order_by + partition_id: order_by +} + +""" +Boolean expression to filter rows from the table "transaction". All fields are combined with a logical 'AND'. +""" +input transaction_bool_exp { + _and: [transaction_bool_exp!] + _not: transaction_bool_exp + _or: [transaction_bool_exp!] + block: block_bool_exp + fee: jsonb_comparison_exp + gas_used: bigint_comparison_exp + gas_wanted: bigint_comparison_exp + hash: String_comparison_exp + height: bigint_comparison_exp + logs: jsonb_comparison_exp + memo: String_comparison_exp + messages: json_comparison_exp + partition_id: bigint_comparison_exp + raw_log: String_comparison_exp + signatures: String_array_comparison_exp + signer_infos: jsonb_comparison_exp + success: Boolean_comparison_exp +} + +""" +unique or primary key constraints on table "transaction" +""" +enum transaction_constraint { + """ + unique or primary key constraint on columns "partition_id", "hash" + """ + unique_tx +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input transaction_delete_at_path_input { + fee: [String!] + logs: [String!] + signer_infos: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input transaction_delete_elem_input { + fee: Int + logs: Int + signer_infos: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input transaction_delete_key_input { + fee: String + logs: String + signer_infos: String +} + +""" +input type for incrementing numeric columns in table "transaction" +""" +input transaction_inc_input { + gas_used: bigint + gas_wanted: bigint + height: bigint + partition_id: bigint +} + +""" +input type for inserting data into table "transaction" +""" +input transaction_insert_input { + block: block_obj_rel_insert_input + fee: jsonb + gas_used: bigint + gas_wanted: bigint + hash: String + height: bigint + logs: jsonb + memo: String + messages: json + partition_id: bigint + raw_log: String + signatures: [String!] + signer_infos: jsonb + success: Boolean +} + +"""aggregate max on columns""" +type transaction_max_fields { + gas_used: bigint + gas_wanted: bigint + hash: String + height: bigint + memo: String + partition_id: bigint + raw_log: String + signatures: [String!] +} + +""" +order by max() on columns of table "transaction" +""" +input transaction_max_order_by { + gas_used: order_by + gas_wanted: order_by + hash: order_by + height: order_by + memo: order_by + partition_id: order_by + raw_log: order_by + signatures: order_by +} + +"""aggregate min on columns""" +type transaction_min_fields { + gas_used: bigint + gas_wanted: bigint + hash: String + height: bigint + memo: String + partition_id: bigint + raw_log: String + signatures: [String!] +} + +""" +order by min() on columns of table "transaction" +""" +input transaction_min_order_by { + gas_used: order_by + gas_wanted: order_by + hash: order_by + height: order_by + memo: order_by + partition_id: order_by + raw_log: order_by + signatures: order_by +} + +""" +response of any mutation on the table "transaction" +""" +type transaction_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [transaction!]! +} + +""" +input type for inserting object relation for remote table "transaction" +""" +input transaction_obj_rel_insert_input { + data: transaction_insert_input! + + """upsert condition""" + on_conflict: transaction_on_conflict +} + +""" +on_conflict condition type for table "transaction" +""" +input transaction_on_conflict { + constraint: transaction_constraint! + update_columns: [transaction_update_column!]! = [] + where: transaction_bool_exp +} + +"""Ordering options when selecting data from "transaction".""" +input transaction_order_by { + block: block_order_by + fee: order_by + gas_used: order_by + gas_wanted: order_by + hash: order_by + height: order_by + logs: order_by + memo: order_by + messages: order_by + partition_id: order_by + raw_log: order_by + signatures: order_by + signer_infos: order_by + success: order_by +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input transaction_prepend_input { + fee: jsonb + logs: jsonb + signer_infos: jsonb +} + +""" +select columns of table "transaction" +""" +enum transaction_select_column { + """column name""" + fee + + """column name""" + gas_used + + """column name""" + gas_wanted + + """column name""" + hash + + """column name""" + height + + """column name""" + logs + + """column name""" + memo + + """column name""" + messages + + """column name""" + partition_id + + """column name""" + raw_log + + """column name""" + signatures + + """column name""" + signer_infos + + """column name""" + success +} + +""" +select "transaction_aggregate_bool_exp_bool_and_arguments_columns" columns of table "transaction" +""" +enum transaction_select_column_transaction_aggregate_bool_exp_bool_and_arguments_columns { + """column name""" + success +} + +""" +select "transaction_aggregate_bool_exp_bool_or_arguments_columns" columns of table "transaction" +""" +enum transaction_select_column_transaction_aggregate_bool_exp_bool_or_arguments_columns { + """column name""" + success +} + +""" +input type for updating data in table "transaction" +""" +input transaction_set_input { + fee: jsonb + gas_used: bigint + gas_wanted: bigint + hash: String + height: bigint + logs: jsonb + memo: String + messages: json + partition_id: bigint + raw_log: String + signatures: [String!] + signer_infos: jsonb + success: Boolean +} + +"""aggregate stddev on columns""" +type transaction_stddev_fields { + gas_used: Float + gas_wanted: Float + height: Float + partition_id: Float +} + +""" +order by stddev() on columns of table "transaction" +""" +input transaction_stddev_order_by { + gas_used: order_by + gas_wanted: order_by + height: order_by + partition_id: order_by +} + +"""aggregate stddev_pop on columns""" +type transaction_stddev_pop_fields { + gas_used: Float + gas_wanted: Float + height: Float + partition_id: Float +} + +""" +order by stddev_pop() on columns of table "transaction" +""" +input transaction_stddev_pop_order_by { + gas_used: order_by + gas_wanted: order_by + height: order_by + partition_id: order_by +} + +"""aggregate stddev_samp on columns""" +type transaction_stddev_samp_fields { + gas_used: Float + gas_wanted: Float + height: Float + partition_id: Float +} + +""" +order by stddev_samp() on columns of table "transaction" +""" +input transaction_stddev_samp_order_by { + gas_used: order_by + gas_wanted: order_by + height: order_by + partition_id: order_by +} + +""" +Streaming cursor of the table "transaction" +""" +input transaction_stream_cursor_input { + """Stream column input with initial value""" + initial_value: transaction_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input transaction_stream_cursor_value_input { + fee: jsonb + gas_used: bigint + gas_wanted: bigint + hash: String + height: bigint + logs: jsonb + memo: String + messages: json + partition_id: bigint + raw_log: String + signatures: [String!] + signer_infos: jsonb + success: Boolean +} + +"""aggregate sum on columns""" +type transaction_sum_fields { + gas_used: bigint + gas_wanted: bigint + height: bigint + partition_id: bigint +} + +""" +order by sum() on columns of table "transaction" +""" +input transaction_sum_order_by { + gas_used: order_by + gas_wanted: order_by + height: order_by + partition_id: order_by +} + +""" +update columns of table "transaction" +""" +enum transaction_update_column { + """column name""" + fee + + """column name""" + gas_used + + """column name""" + gas_wanted + + """column name""" + hash + + """column name""" + height + + """column name""" + logs + + """column name""" + memo + + """column name""" + messages + + """column name""" + partition_id + + """column name""" + raw_log + + """column name""" + signatures + + """column name""" + signer_infos + + """column name""" + success +} + +input transaction_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: transaction_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: transaction_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: transaction_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: transaction_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: transaction_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: transaction_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: transaction_set_input + + """filter the rows which have to be updated""" + where: transaction_bool_exp! +} + +"""aggregate var_pop on columns""" +type transaction_var_pop_fields { + gas_used: Float + gas_wanted: Float + height: Float + partition_id: Float +} + +""" +order by var_pop() on columns of table "transaction" +""" +input transaction_var_pop_order_by { + gas_used: order_by + gas_wanted: order_by + height: order_by + partition_id: order_by +} + +"""aggregate var_samp on columns""" +type transaction_var_samp_fields { + gas_used: Float + gas_wanted: Float + height: Float + partition_id: Float +} + +""" +order by var_samp() on columns of table "transaction" +""" +input transaction_var_samp_order_by { + gas_used: order_by + gas_wanted: order_by + height: order_by + partition_id: order_by +} + +"""aggregate variance on columns""" +type transaction_variance_fields { + gas_used: Float + gas_wanted: Float + height: Float + partition_id: Float +} + +""" +order by variance() on columns of table "transaction" +""" +input transaction_variance_order_by { + gas_used: order_by + gas_wanted: order_by + height: order_by + partition_id: order_by +} + +""" +columns and relationships of "validator" +""" +type validator { + """An array relationship""" + blocks( + """distinct select on columns""" + distinct_on: [block_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [block_order_by!] + + """filter the rows returned""" + where: block_bool_exp + ): [block!]! + + """An aggregate relationship""" + blocks_aggregate( + """distinct select on columns""" + distinct_on: [block_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [block_order_by!] + + """filter the rows returned""" + where: block_bool_exp + ): block_aggregate! + consensus_address: String! + consensus_pubkey: String! + + """An array relationship""" + double_sign_votes( + """distinct select on columns""" + distinct_on: [double_sign_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_vote_order_by!] + + """filter the rows returned""" + where: double_sign_vote_bool_exp + ): [double_sign_vote!]! + + """An aggregate relationship""" + double_sign_votes_aggregate( + """distinct select on columns""" + distinct_on: [double_sign_vote_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [double_sign_vote_order_by!] + + """filter the rows returned""" + where: double_sign_vote_bool_exp + ): double_sign_vote_aggregate! + + """An array relationship""" + pre_commits( + """distinct select on columns""" + distinct_on: [pre_commit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pre_commit_order_by!] + + """filter the rows returned""" + where: pre_commit_bool_exp + ): [pre_commit!]! + + """An aggregate relationship""" + pre_commits_aggregate( + """distinct select on columns""" + distinct_on: [pre_commit_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pre_commit_order_by!] + + """filter the rows returned""" + where: pre_commit_bool_exp + ): pre_commit_aggregate! + + """An object relationship""" + proposal_validator_status_snapshot: proposal_validator_status_snapshot + + """An array relationship""" + proposal_validator_status_snapshots( + """distinct select on columns""" + distinct_on: [proposal_validator_status_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_validator_status_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_validator_status_snapshot_bool_exp + ): [proposal_validator_status_snapshot!]! + + """An aggregate relationship""" + proposal_validator_status_snapshots_aggregate( + """distinct select on columns""" + distinct_on: [proposal_validator_status_snapshot_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [proposal_validator_status_snapshot_order_by!] + + """filter the rows returned""" + where: proposal_validator_status_snapshot_bool_exp + ): proposal_validator_status_snapshot_aggregate! + + """An array relationship""" + validator_commissions( + """distinct select on columns""" + distinct_on: [validator_commission_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_commission_order_by!] + + """filter the rows returned""" + where: validator_commission_bool_exp + ): [validator_commission!]! + + """An aggregate relationship""" + validator_commissions_aggregate( + """distinct select on columns""" + distinct_on: [validator_commission_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_commission_order_by!] + + """filter the rows returned""" + where: validator_commission_bool_exp + ): validator_commission_aggregate! + + """An array relationship""" + validator_descriptions( + """distinct select on columns""" + distinct_on: [validator_description_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_description_order_by!] + + """filter the rows returned""" + where: validator_description_bool_exp + ): [validator_description!]! + + """An aggregate relationship""" + validator_descriptions_aggregate( + """distinct select on columns""" + distinct_on: [validator_description_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_description_order_by!] + + """filter the rows returned""" + where: validator_description_bool_exp + ): validator_description_aggregate! + + """An object relationship""" + validator_info: validator_info + + """An array relationship""" + validator_infos( + """distinct select on columns""" + distinct_on: [validator_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_info_order_by!] + + """filter the rows returned""" + where: validator_info_bool_exp + ): [validator_info!]! + + """An aggregate relationship""" + validator_infos_aggregate( + """distinct select on columns""" + distinct_on: [validator_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_info_order_by!] + + """filter the rows returned""" + where: validator_info_bool_exp + ): validator_info_aggregate! + + """An array relationship""" + validator_signing_infos( + """distinct select on columns""" + distinct_on: [validator_signing_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_signing_info_order_by!] + + """filter the rows returned""" + where: validator_signing_info_bool_exp + ): [validator_signing_info!]! + + """An aggregate relationship""" + validator_signing_infos_aggregate( + """distinct select on columns""" + distinct_on: [validator_signing_info_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_signing_info_order_by!] + + """filter the rows returned""" + where: validator_signing_info_bool_exp + ): validator_signing_info_aggregate! + + """An array relationship""" + validator_statuses( + """distinct select on columns""" + distinct_on: [validator_status_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_status_order_by!] + + """filter the rows returned""" + where: validator_status_bool_exp + ): [validator_status!]! + + """An aggregate relationship""" + validator_statuses_aggregate( + """distinct select on columns""" + distinct_on: [validator_status_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_status_order_by!] + + """filter the rows returned""" + where: validator_status_bool_exp + ): validator_status_aggregate! + + """An array relationship""" + validator_voting_powers( + """distinct select on columns""" + distinct_on: [validator_voting_power_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_voting_power_order_by!] + + """filter the rows returned""" + where: validator_voting_power_bool_exp + ): [validator_voting_power!]! + + """An aggregate relationship""" + validator_voting_powers_aggregate( + """distinct select on columns""" + distinct_on: [validator_voting_power_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [validator_voting_power_order_by!] + + """filter the rows returned""" + where: validator_voting_power_bool_exp + ): validator_voting_power_aggregate! +} + +""" +aggregated selection of "validator" +""" +type validator_aggregate { + aggregate: validator_aggregate_fields + nodes: [validator!]! +} + +""" +aggregate fields of "validator" +""" +type validator_aggregate_fields { + count(columns: [validator_select_column!], distinct: Boolean): Int! + max: validator_max_fields + min: validator_min_fields +} + +""" +Boolean expression to filter rows from the table "validator". All fields are combined with a logical 'AND'. +""" +input validator_bool_exp { + _and: [validator_bool_exp!] + _not: validator_bool_exp + _or: [validator_bool_exp!] + blocks: block_bool_exp + blocks_aggregate: block_aggregate_bool_exp + consensus_address: String_comparison_exp + consensus_pubkey: String_comparison_exp + double_sign_votes: double_sign_vote_bool_exp + double_sign_votes_aggregate: double_sign_vote_aggregate_bool_exp + pre_commits: pre_commit_bool_exp + pre_commits_aggregate: pre_commit_aggregate_bool_exp + proposal_validator_status_snapshot: proposal_validator_status_snapshot_bool_exp + proposal_validator_status_snapshots: proposal_validator_status_snapshot_bool_exp + proposal_validator_status_snapshots_aggregate: proposal_validator_status_snapshot_aggregate_bool_exp + validator_commissions: validator_commission_bool_exp + validator_commissions_aggregate: validator_commission_aggregate_bool_exp + validator_descriptions: validator_description_bool_exp + validator_descriptions_aggregate: validator_description_aggregate_bool_exp + validator_info: validator_info_bool_exp + validator_infos: validator_info_bool_exp + validator_infos_aggregate: validator_info_aggregate_bool_exp + validator_signing_infos: validator_signing_info_bool_exp + validator_signing_infos_aggregate: validator_signing_info_aggregate_bool_exp + validator_statuses: validator_status_bool_exp + validator_statuses_aggregate: validator_status_aggregate_bool_exp + validator_voting_powers: validator_voting_power_bool_exp + validator_voting_powers_aggregate: validator_voting_power_aggregate_bool_exp +} + +""" +columns and relationships of "validator_commission" +""" +type validator_commission { + commission: numeric! + height: bigint! + min_self_delegation: bigint! + + """An object relationship""" + validator: validator! + validator_address: String! +} + +""" +aggregated selection of "validator_commission" +""" +type validator_commission_aggregate { + aggregate: validator_commission_aggregate_fields + nodes: [validator_commission!]! +} + +input validator_commission_aggregate_bool_exp { + count: validator_commission_aggregate_bool_exp_count +} + +input validator_commission_aggregate_bool_exp_count { + arguments: [validator_commission_select_column!] + distinct: Boolean + filter: validator_commission_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "validator_commission" +""" +type validator_commission_aggregate_fields { + avg: validator_commission_avg_fields + count(columns: [validator_commission_select_column!], distinct: Boolean): Int! + max: validator_commission_max_fields + min: validator_commission_min_fields + stddev: validator_commission_stddev_fields + stddev_pop: validator_commission_stddev_pop_fields + stddev_samp: validator_commission_stddev_samp_fields + sum: validator_commission_sum_fields + var_pop: validator_commission_var_pop_fields + var_samp: validator_commission_var_samp_fields + variance: validator_commission_variance_fields +} + +""" +order by aggregate values of table "validator_commission" +""" +input validator_commission_aggregate_order_by { + avg: validator_commission_avg_order_by + count: order_by + max: validator_commission_max_order_by + min: validator_commission_min_order_by + stddev: validator_commission_stddev_order_by + stddev_pop: validator_commission_stddev_pop_order_by + stddev_samp: validator_commission_stddev_samp_order_by + sum: validator_commission_sum_order_by + var_pop: validator_commission_var_pop_order_by + var_samp: validator_commission_var_samp_order_by + variance: validator_commission_variance_order_by +} + +""" +input type for inserting array relation for remote table "validator_commission" +""" +input validator_commission_arr_rel_insert_input { + data: [validator_commission_insert_input!]! + + """upsert condition""" + on_conflict: validator_commission_on_conflict +} + +"""aggregate avg on columns""" +type validator_commission_avg_fields { + commission: Float + height: Float + min_self_delegation: Float +} + +""" +order by avg() on columns of table "validator_commission" +""" +input validator_commission_avg_order_by { + commission: order_by + height: order_by + min_self_delegation: order_by +} + +""" +Boolean expression to filter rows from the table "validator_commission". All fields are combined with a logical 'AND'. +""" +input validator_commission_bool_exp { + _and: [validator_commission_bool_exp!] + _not: validator_commission_bool_exp + _or: [validator_commission_bool_exp!] + commission: numeric_comparison_exp + height: bigint_comparison_exp + min_self_delegation: bigint_comparison_exp + validator: validator_bool_exp + validator_address: String_comparison_exp +} + +""" +unique or primary key constraints on table "validator_commission" +""" +enum validator_commission_constraint { + """ + unique or primary key constraint on columns "validator_address" + """ + validator_commission_pkey +} + +""" +input type for incrementing numeric columns in table "validator_commission" +""" +input validator_commission_inc_input { + commission: numeric + height: bigint + min_self_delegation: bigint +} + +""" +input type for inserting data into table "validator_commission" +""" +input validator_commission_insert_input { + commission: numeric + height: bigint + min_self_delegation: bigint + validator: validator_obj_rel_insert_input + validator_address: String +} + +"""aggregate max on columns""" +type validator_commission_max_fields { + commission: numeric + height: bigint + min_self_delegation: bigint + validator_address: String +} + +""" +order by max() on columns of table "validator_commission" +""" +input validator_commission_max_order_by { + commission: order_by + height: order_by + min_self_delegation: order_by + validator_address: order_by +} + +"""aggregate min on columns""" +type validator_commission_min_fields { + commission: numeric + height: bigint + min_self_delegation: bigint + validator_address: String +} + +""" +order by min() on columns of table "validator_commission" +""" +input validator_commission_min_order_by { + commission: order_by + height: order_by + min_self_delegation: order_by + validator_address: order_by +} + +""" +response of any mutation on the table "validator_commission" +""" +type validator_commission_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [validator_commission!]! +} + +""" +on_conflict condition type for table "validator_commission" +""" +input validator_commission_on_conflict { + constraint: validator_commission_constraint! + update_columns: [validator_commission_update_column!]! = [] + where: validator_commission_bool_exp +} + +"""Ordering options when selecting data from "validator_commission".""" +input validator_commission_order_by { + commission: order_by + height: order_by + min_self_delegation: order_by + validator: validator_order_by + validator_address: order_by +} + +"""primary key columns input for table: validator_commission""" +input validator_commission_pk_columns_input { + validator_address: String! +} + +""" +select columns of table "validator_commission" +""" +enum validator_commission_select_column { + """column name""" + commission + + """column name""" + height + + """column name""" + min_self_delegation + + """column name""" + validator_address +} + +""" +input type for updating data in table "validator_commission" +""" +input validator_commission_set_input { + commission: numeric + height: bigint + min_self_delegation: bigint + validator_address: String +} + +"""aggregate stddev on columns""" +type validator_commission_stddev_fields { + commission: Float + height: Float + min_self_delegation: Float +} + +""" +order by stddev() on columns of table "validator_commission" +""" +input validator_commission_stddev_order_by { + commission: order_by + height: order_by + min_self_delegation: order_by +} + +"""aggregate stddev_pop on columns""" +type validator_commission_stddev_pop_fields { + commission: Float + height: Float + min_self_delegation: Float +} + +""" +order by stddev_pop() on columns of table "validator_commission" +""" +input validator_commission_stddev_pop_order_by { + commission: order_by + height: order_by + min_self_delegation: order_by +} + +"""aggregate stddev_samp on columns""" +type validator_commission_stddev_samp_fields { + commission: Float + height: Float + min_self_delegation: Float +} + +""" +order by stddev_samp() on columns of table "validator_commission" +""" +input validator_commission_stddev_samp_order_by { + commission: order_by + height: order_by + min_self_delegation: order_by +} + +""" +Streaming cursor of the table "validator_commission" +""" +input validator_commission_stream_cursor_input { + """Stream column input with initial value""" + initial_value: validator_commission_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input validator_commission_stream_cursor_value_input { + commission: numeric + height: bigint + min_self_delegation: bigint + validator_address: String +} + +"""aggregate sum on columns""" +type validator_commission_sum_fields { + commission: numeric + height: bigint + min_self_delegation: bigint +} + +""" +order by sum() on columns of table "validator_commission" +""" +input validator_commission_sum_order_by { + commission: order_by + height: order_by + min_self_delegation: order_by +} + +""" +update columns of table "validator_commission" +""" +enum validator_commission_update_column { + """column name""" + commission + + """column name""" + height + + """column name""" + min_self_delegation + + """column name""" + validator_address +} + +input validator_commission_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: validator_commission_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_commission_set_input + + """filter the rows which have to be updated""" + where: validator_commission_bool_exp! +} + +"""aggregate var_pop on columns""" +type validator_commission_var_pop_fields { + commission: Float + height: Float + min_self_delegation: Float +} + +""" +order by var_pop() on columns of table "validator_commission" +""" +input validator_commission_var_pop_order_by { + commission: order_by + height: order_by + min_self_delegation: order_by +} + +"""aggregate var_samp on columns""" +type validator_commission_var_samp_fields { + commission: Float + height: Float + min_self_delegation: Float +} + +""" +order by var_samp() on columns of table "validator_commission" +""" +input validator_commission_var_samp_order_by { + commission: order_by + height: order_by + min_self_delegation: order_by +} + +"""aggregate variance on columns""" +type validator_commission_variance_fields { + commission: Float + height: Float + min_self_delegation: Float +} + +""" +order by variance() on columns of table "validator_commission" +""" +input validator_commission_variance_order_by { + commission: order_by + height: order_by + min_self_delegation: order_by +} + +""" +unique or primary key constraints on table "validator" +""" +enum validator_constraint { + """ + unique or primary key constraint on columns "consensus_pubkey" + """ + validator_consensus_pubkey_key + + """ + unique or primary key constraint on columns "consensus_address" + """ + validator_pkey +} + +""" +columns and relationships of "validator_description" +""" +type validator_description { + avatar_url: String + details: String + height: bigint! + identity: String + moniker: String + security_contact: String + + """An object relationship""" + validator: validator! + validator_address: String! + website: String +} + +""" +aggregated selection of "validator_description" +""" +type validator_description_aggregate { + aggregate: validator_description_aggregate_fields + nodes: [validator_description!]! +} + +input validator_description_aggregate_bool_exp { + count: validator_description_aggregate_bool_exp_count +} + +input validator_description_aggregate_bool_exp_count { + arguments: [validator_description_select_column!] + distinct: Boolean + filter: validator_description_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "validator_description" +""" +type validator_description_aggregate_fields { + avg: validator_description_avg_fields + count(columns: [validator_description_select_column!], distinct: Boolean): Int! + max: validator_description_max_fields + min: validator_description_min_fields + stddev: validator_description_stddev_fields + stddev_pop: validator_description_stddev_pop_fields + stddev_samp: validator_description_stddev_samp_fields + sum: validator_description_sum_fields + var_pop: validator_description_var_pop_fields + var_samp: validator_description_var_samp_fields + variance: validator_description_variance_fields +} + +""" +order by aggregate values of table "validator_description" +""" +input validator_description_aggregate_order_by { + avg: validator_description_avg_order_by + count: order_by + max: validator_description_max_order_by + min: validator_description_min_order_by + stddev: validator_description_stddev_order_by + stddev_pop: validator_description_stddev_pop_order_by + stddev_samp: validator_description_stddev_samp_order_by + sum: validator_description_sum_order_by + var_pop: validator_description_var_pop_order_by + var_samp: validator_description_var_samp_order_by + variance: validator_description_variance_order_by +} + +""" +input type for inserting array relation for remote table "validator_description" +""" +input validator_description_arr_rel_insert_input { + data: [validator_description_insert_input!]! + + """upsert condition""" + on_conflict: validator_description_on_conflict +} + +"""aggregate avg on columns""" +type validator_description_avg_fields { + height: Float +} + +""" +order by avg() on columns of table "validator_description" +""" +input validator_description_avg_order_by { + height: order_by +} + +""" +Boolean expression to filter rows from the table "validator_description". All fields are combined with a logical 'AND'. +""" +input validator_description_bool_exp { + _and: [validator_description_bool_exp!] + _not: validator_description_bool_exp + _or: [validator_description_bool_exp!] + avatar_url: String_comparison_exp + details: String_comparison_exp + height: bigint_comparison_exp + identity: String_comparison_exp + moniker: String_comparison_exp + security_contact: String_comparison_exp + validator: validator_bool_exp + validator_address: String_comparison_exp + website: String_comparison_exp +} + +""" +unique or primary key constraints on table "validator_description" +""" +enum validator_description_constraint { + """ + unique or primary key constraint on columns "validator_address" + """ + validator_description_pkey +} + +""" +input type for incrementing numeric columns in table "validator_description" +""" +input validator_description_inc_input { + height: bigint +} + +""" +input type for inserting data into table "validator_description" +""" +input validator_description_insert_input { + avatar_url: String + details: String + height: bigint + identity: String + moniker: String + security_contact: String + validator: validator_obj_rel_insert_input + validator_address: String + website: String +} + +"""aggregate max on columns""" +type validator_description_max_fields { + avatar_url: String + details: String + height: bigint + identity: String + moniker: String + security_contact: String + validator_address: String + website: String +} + +""" +order by max() on columns of table "validator_description" +""" +input validator_description_max_order_by { + avatar_url: order_by + details: order_by + height: order_by + identity: order_by + moniker: order_by + security_contact: order_by + validator_address: order_by + website: order_by +} + +"""aggregate min on columns""" +type validator_description_min_fields { + avatar_url: String + details: String + height: bigint + identity: String + moniker: String + security_contact: String + validator_address: String + website: String +} + +""" +order by min() on columns of table "validator_description" +""" +input validator_description_min_order_by { + avatar_url: order_by + details: order_by + height: order_by + identity: order_by + moniker: order_by + security_contact: order_by + validator_address: order_by + website: order_by +} + +""" +response of any mutation on the table "validator_description" +""" +type validator_description_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [validator_description!]! +} + +""" +on_conflict condition type for table "validator_description" +""" +input validator_description_on_conflict { + constraint: validator_description_constraint! + update_columns: [validator_description_update_column!]! = [] + where: validator_description_bool_exp +} + +"""Ordering options when selecting data from "validator_description".""" +input validator_description_order_by { + avatar_url: order_by + details: order_by + height: order_by + identity: order_by + moniker: order_by + security_contact: order_by + validator: validator_order_by + validator_address: order_by + website: order_by +} + +"""primary key columns input for table: validator_description""" +input validator_description_pk_columns_input { + validator_address: String! +} + +""" +select columns of table "validator_description" +""" +enum validator_description_select_column { + """column name""" + avatar_url + + """column name""" + details + + """column name""" + height + + """column name""" + identity + + """column name""" + moniker + + """column name""" + security_contact + + """column name""" + validator_address + + """column name""" + website +} + +""" +input type for updating data in table "validator_description" +""" +input validator_description_set_input { + avatar_url: String + details: String + height: bigint + identity: String + moniker: String + security_contact: String + validator_address: String + website: String +} + +"""aggregate stddev on columns""" +type validator_description_stddev_fields { + height: Float +} + +""" +order by stddev() on columns of table "validator_description" +""" +input validator_description_stddev_order_by { + height: order_by +} + +"""aggregate stddev_pop on columns""" +type validator_description_stddev_pop_fields { + height: Float +} + +""" +order by stddev_pop() on columns of table "validator_description" +""" +input validator_description_stddev_pop_order_by { + height: order_by +} + +"""aggregate stddev_samp on columns""" +type validator_description_stddev_samp_fields { + height: Float +} + +""" +order by stddev_samp() on columns of table "validator_description" +""" +input validator_description_stddev_samp_order_by { + height: order_by +} + +""" +Streaming cursor of the table "validator_description" +""" +input validator_description_stream_cursor_input { + """Stream column input with initial value""" + initial_value: validator_description_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input validator_description_stream_cursor_value_input { + avatar_url: String + details: String + height: bigint + identity: String + moniker: String + security_contact: String + validator_address: String + website: String +} + +"""aggregate sum on columns""" +type validator_description_sum_fields { + height: bigint +} + +""" +order by sum() on columns of table "validator_description" +""" +input validator_description_sum_order_by { + height: order_by +} + +""" +update columns of table "validator_description" +""" +enum validator_description_update_column { + """column name""" + avatar_url + + """column name""" + details + + """column name""" + height + + """column name""" + identity + + """column name""" + moniker + + """column name""" + security_contact + + """column name""" + validator_address + + """column name""" + website +} + +input validator_description_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: validator_description_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_description_set_input + + """filter the rows which have to be updated""" + where: validator_description_bool_exp! +} + +"""aggregate var_pop on columns""" +type validator_description_var_pop_fields { + height: Float +} + +""" +order by var_pop() on columns of table "validator_description" +""" +input validator_description_var_pop_order_by { + height: order_by +} + +"""aggregate var_samp on columns""" +type validator_description_var_samp_fields { + height: Float +} + +""" +order by var_samp() on columns of table "validator_description" +""" +input validator_description_var_samp_order_by { + height: order_by +} + +"""aggregate variance on columns""" +type validator_description_variance_fields { + height: Float +} + +""" +order by variance() on columns of table "validator_description" +""" +input validator_description_variance_order_by { + height: order_by +} + +""" +columns and relationships of "validator_info" +""" +type validator_info { + """An object relationship""" + account: account + consensus_address: String! + height: bigint! + max_change_rate: String! + max_rate: String! + operator_address: String! + self_delegate_address: String + + """An object relationship""" + validator: validator! +} + +""" +aggregated selection of "validator_info" +""" +type validator_info_aggregate { + aggregate: validator_info_aggregate_fields + nodes: [validator_info!]! +} + +input validator_info_aggregate_bool_exp { + count: validator_info_aggregate_bool_exp_count +} + +input validator_info_aggregate_bool_exp_count { + arguments: [validator_info_select_column!] + distinct: Boolean + filter: validator_info_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "validator_info" +""" +type validator_info_aggregate_fields { + avg: validator_info_avg_fields + count(columns: [validator_info_select_column!], distinct: Boolean): Int! + max: validator_info_max_fields + min: validator_info_min_fields + stddev: validator_info_stddev_fields + stddev_pop: validator_info_stddev_pop_fields + stddev_samp: validator_info_stddev_samp_fields + sum: validator_info_sum_fields + var_pop: validator_info_var_pop_fields + var_samp: validator_info_var_samp_fields + variance: validator_info_variance_fields +} + +""" +order by aggregate values of table "validator_info" +""" +input validator_info_aggregate_order_by { + avg: validator_info_avg_order_by + count: order_by + max: validator_info_max_order_by + min: validator_info_min_order_by + stddev: validator_info_stddev_order_by + stddev_pop: validator_info_stddev_pop_order_by + stddev_samp: validator_info_stddev_samp_order_by + sum: validator_info_sum_order_by + var_pop: validator_info_var_pop_order_by + var_samp: validator_info_var_samp_order_by + variance: validator_info_variance_order_by +} + +""" +input type for inserting array relation for remote table "validator_info" +""" +input validator_info_arr_rel_insert_input { + data: [validator_info_insert_input!]! + + """upsert condition""" + on_conflict: validator_info_on_conflict +} + +"""aggregate avg on columns""" +type validator_info_avg_fields { + height: Float +} + +""" +order by avg() on columns of table "validator_info" +""" +input validator_info_avg_order_by { + height: order_by +} + +""" +Boolean expression to filter rows from the table "validator_info". All fields are combined with a logical 'AND'. +""" +input validator_info_bool_exp { + _and: [validator_info_bool_exp!] + _not: validator_info_bool_exp + _or: [validator_info_bool_exp!] + account: account_bool_exp + consensus_address: String_comparison_exp + height: bigint_comparison_exp + max_change_rate: String_comparison_exp + max_rate: String_comparison_exp + operator_address: String_comparison_exp + self_delegate_address: String_comparison_exp + validator: validator_bool_exp +} + +""" +unique or primary key constraints on table "validator_info" +""" +enum validator_info_constraint { + """ + unique or primary key constraint on columns "consensus_address" + """ + validator_info_pkey +} + +""" +input type for incrementing numeric columns in table "validator_info" +""" +input validator_info_inc_input { + height: bigint +} + +""" +input type for inserting data into table "validator_info" +""" +input validator_info_insert_input { + account: account_obj_rel_insert_input + consensus_address: String + height: bigint + max_change_rate: String + max_rate: String + operator_address: String + self_delegate_address: String + validator: validator_obj_rel_insert_input +} + +"""aggregate max on columns""" +type validator_info_max_fields { + consensus_address: String + height: bigint + max_change_rate: String + max_rate: String + operator_address: String + self_delegate_address: String +} + +""" +order by max() on columns of table "validator_info" +""" +input validator_info_max_order_by { + consensus_address: order_by + height: order_by + max_change_rate: order_by + max_rate: order_by + operator_address: order_by + self_delegate_address: order_by +} + +"""aggregate min on columns""" +type validator_info_min_fields { + consensus_address: String + height: bigint + max_change_rate: String + max_rate: String + operator_address: String + self_delegate_address: String +} + +""" +order by min() on columns of table "validator_info" +""" +input validator_info_min_order_by { + consensus_address: order_by + height: order_by + max_change_rate: order_by + max_rate: order_by + operator_address: order_by + self_delegate_address: order_by +} + +""" +response of any mutation on the table "validator_info" +""" +type validator_info_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [validator_info!]! +} + +""" +input type for inserting object relation for remote table "validator_info" +""" +input validator_info_obj_rel_insert_input { + data: validator_info_insert_input! + + """upsert condition""" + on_conflict: validator_info_on_conflict +} + +""" +on_conflict condition type for table "validator_info" +""" +input validator_info_on_conflict { + constraint: validator_info_constraint! + update_columns: [validator_info_update_column!]! = [] + where: validator_info_bool_exp +} + +"""Ordering options when selecting data from "validator_info".""" +input validator_info_order_by { + account: account_order_by + consensus_address: order_by + height: order_by + max_change_rate: order_by + max_rate: order_by + operator_address: order_by + self_delegate_address: order_by + validator: validator_order_by +} + +"""primary key columns input for table: validator_info""" +input validator_info_pk_columns_input { + consensus_address: String! +} + +""" +select columns of table "validator_info" +""" +enum validator_info_select_column { + """column name""" + consensus_address + + """column name""" + height + + """column name""" + max_change_rate + + """column name""" + max_rate + + """column name""" + operator_address + + """column name""" + self_delegate_address +} + +""" +input type for updating data in table "validator_info" +""" +input validator_info_set_input { + consensus_address: String + height: bigint + max_change_rate: String + max_rate: String + operator_address: String + self_delegate_address: String +} + +"""aggregate stddev on columns""" +type validator_info_stddev_fields { + height: Float +} + +""" +order by stddev() on columns of table "validator_info" +""" +input validator_info_stddev_order_by { + height: order_by +} + +"""aggregate stddev_pop on columns""" +type validator_info_stddev_pop_fields { + height: Float +} + +""" +order by stddev_pop() on columns of table "validator_info" +""" +input validator_info_stddev_pop_order_by { + height: order_by +} + +"""aggregate stddev_samp on columns""" +type validator_info_stddev_samp_fields { + height: Float +} + +""" +order by stddev_samp() on columns of table "validator_info" +""" +input validator_info_stddev_samp_order_by { + height: order_by +} + +""" +Streaming cursor of the table "validator_info" +""" +input validator_info_stream_cursor_input { + """Stream column input with initial value""" + initial_value: validator_info_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input validator_info_stream_cursor_value_input { + consensus_address: String + height: bigint + max_change_rate: String + max_rate: String + operator_address: String + self_delegate_address: String +} + +"""aggregate sum on columns""" +type validator_info_sum_fields { + height: bigint +} + +""" +order by sum() on columns of table "validator_info" +""" +input validator_info_sum_order_by { + height: order_by +} + +""" +update columns of table "validator_info" +""" +enum validator_info_update_column { + """column name""" + consensus_address + + """column name""" + height + + """column name""" + max_change_rate + + """column name""" + max_rate + + """column name""" + operator_address + + """column name""" + self_delegate_address +} + +input validator_info_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: validator_info_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_info_set_input + + """filter the rows which have to be updated""" + where: validator_info_bool_exp! +} + +"""aggregate var_pop on columns""" +type validator_info_var_pop_fields { + height: Float +} + +""" +order by var_pop() on columns of table "validator_info" +""" +input validator_info_var_pop_order_by { + height: order_by +} + +"""aggregate var_samp on columns""" +type validator_info_var_samp_fields { + height: Float +} + +""" +order by var_samp() on columns of table "validator_info" +""" +input validator_info_var_samp_order_by { + height: order_by +} + +"""aggregate variance on columns""" +type validator_info_variance_fields { + height: Float +} + +""" +order by variance() on columns of table "validator_info" +""" +input validator_info_variance_order_by { + height: order_by +} + +""" +input type for inserting data into table "validator" +""" +input validator_insert_input { + blocks: block_arr_rel_insert_input + consensus_address: String + consensus_pubkey: String + double_sign_votes: double_sign_vote_arr_rel_insert_input + pre_commits: pre_commit_arr_rel_insert_input + proposal_validator_status_snapshot: proposal_validator_status_snapshot_obj_rel_insert_input + proposal_validator_status_snapshots: proposal_validator_status_snapshot_arr_rel_insert_input + validator_commissions: validator_commission_arr_rel_insert_input + validator_descriptions: validator_description_arr_rel_insert_input + validator_info: validator_info_obj_rel_insert_input + validator_infos: validator_info_arr_rel_insert_input + validator_signing_infos: validator_signing_info_arr_rel_insert_input + validator_statuses: validator_status_arr_rel_insert_input + validator_voting_powers: validator_voting_power_arr_rel_insert_input +} + +"""aggregate max on columns""" +type validator_max_fields { + consensus_address: String + consensus_pubkey: String +} + +"""aggregate min on columns""" +type validator_min_fields { + consensus_address: String + consensus_pubkey: String +} + +""" +response of any mutation on the table "validator" +""" +type validator_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [validator!]! +} + +""" +input type for inserting object relation for remote table "validator" +""" +input validator_obj_rel_insert_input { + data: validator_insert_input! + + """upsert condition""" + on_conflict: validator_on_conflict +} + +""" +on_conflict condition type for table "validator" +""" +input validator_on_conflict { + constraint: validator_constraint! + update_columns: [validator_update_column!]! = [] + where: validator_bool_exp +} + +"""Ordering options when selecting data from "validator".""" +input validator_order_by { + blocks_aggregate: block_aggregate_order_by + consensus_address: order_by + consensus_pubkey: order_by + double_sign_votes_aggregate: double_sign_vote_aggregate_order_by + pre_commits_aggregate: pre_commit_aggregate_order_by + proposal_validator_status_snapshot: proposal_validator_status_snapshot_order_by + proposal_validator_status_snapshots_aggregate: proposal_validator_status_snapshot_aggregate_order_by + validator_commissions_aggregate: validator_commission_aggregate_order_by + validator_descriptions_aggregate: validator_description_aggregate_order_by + validator_info: validator_info_order_by + validator_infos_aggregate: validator_info_aggregate_order_by + validator_signing_infos_aggregate: validator_signing_info_aggregate_order_by + validator_statuses_aggregate: validator_status_aggregate_order_by + validator_voting_powers_aggregate: validator_voting_power_aggregate_order_by +} + +"""primary key columns input for table: validator""" +input validator_pk_columns_input { + consensus_address: String! +} + +""" +select columns of table "validator" +""" +enum validator_select_column { + """column name""" + consensus_address + + """column name""" + consensus_pubkey +} + +""" +input type for updating data in table "validator" +""" +input validator_set_input { + consensus_address: String + consensus_pubkey: String +} + +""" +columns and relationships of "validator_signing_info" +""" +type validator_signing_info { + height: bigint! + index_offset: bigint! + jailed_until: timestamp! + missed_blocks_counter: bigint! + start_height: bigint! + tombstoned: Boolean! + validator_address: String! +} + +""" +aggregated selection of "validator_signing_info" +""" +type validator_signing_info_aggregate { + aggregate: validator_signing_info_aggregate_fields + nodes: [validator_signing_info!]! +} + +input validator_signing_info_aggregate_bool_exp { + bool_and: validator_signing_info_aggregate_bool_exp_bool_and + bool_or: validator_signing_info_aggregate_bool_exp_bool_or + count: validator_signing_info_aggregate_bool_exp_count +} + +input validator_signing_info_aggregate_bool_exp_bool_and { + arguments: validator_signing_info_select_column_validator_signing_info_aggregate_bool_exp_bool_and_arguments_columns! + distinct: Boolean + filter: validator_signing_info_bool_exp + predicate: Boolean_comparison_exp! +} + +input validator_signing_info_aggregate_bool_exp_bool_or { + arguments: validator_signing_info_select_column_validator_signing_info_aggregate_bool_exp_bool_or_arguments_columns! + distinct: Boolean + filter: validator_signing_info_bool_exp + predicate: Boolean_comparison_exp! +} + +input validator_signing_info_aggregate_bool_exp_count { + arguments: [validator_signing_info_select_column!] + distinct: Boolean + filter: validator_signing_info_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "validator_signing_info" +""" +type validator_signing_info_aggregate_fields { + avg: validator_signing_info_avg_fields + count(columns: [validator_signing_info_select_column!], distinct: Boolean): Int! + max: validator_signing_info_max_fields + min: validator_signing_info_min_fields + stddev: validator_signing_info_stddev_fields + stddev_pop: validator_signing_info_stddev_pop_fields + stddev_samp: validator_signing_info_stddev_samp_fields + sum: validator_signing_info_sum_fields + var_pop: validator_signing_info_var_pop_fields + var_samp: validator_signing_info_var_samp_fields + variance: validator_signing_info_variance_fields +} + +""" +order by aggregate values of table "validator_signing_info" +""" +input validator_signing_info_aggregate_order_by { + avg: validator_signing_info_avg_order_by + count: order_by + max: validator_signing_info_max_order_by + min: validator_signing_info_min_order_by + stddev: validator_signing_info_stddev_order_by + stddev_pop: validator_signing_info_stddev_pop_order_by + stddev_samp: validator_signing_info_stddev_samp_order_by + sum: validator_signing_info_sum_order_by + var_pop: validator_signing_info_var_pop_order_by + var_samp: validator_signing_info_var_samp_order_by + variance: validator_signing_info_variance_order_by +} + +""" +input type for inserting array relation for remote table "validator_signing_info" +""" +input validator_signing_info_arr_rel_insert_input { + data: [validator_signing_info_insert_input!]! + + """upsert condition""" + on_conflict: validator_signing_info_on_conflict +} + +"""aggregate avg on columns""" +type validator_signing_info_avg_fields { + height: Float + index_offset: Float + missed_blocks_counter: Float + start_height: Float +} + +""" +order by avg() on columns of table "validator_signing_info" +""" +input validator_signing_info_avg_order_by { + height: order_by + index_offset: order_by + missed_blocks_counter: order_by + start_height: order_by +} + +""" +Boolean expression to filter rows from the table "validator_signing_info". All fields are combined with a logical 'AND'. +""" +input validator_signing_info_bool_exp { + _and: [validator_signing_info_bool_exp!] + _not: validator_signing_info_bool_exp + _or: [validator_signing_info_bool_exp!] + height: bigint_comparison_exp + index_offset: bigint_comparison_exp + jailed_until: timestamp_comparison_exp + missed_blocks_counter: bigint_comparison_exp + start_height: bigint_comparison_exp + tombstoned: Boolean_comparison_exp + validator_address: String_comparison_exp +} + +""" +unique or primary key constraints on table "validator_signing_info" +""" +enum validator_signing_info_constraint { + """ + unique or primary key constraint on columns "validator_address" + """ + validator_signing_info_pkey +} + +""" +input type for incrementing numeric columns in table "validator_signing_info" +""" +input validator_signing_info_inc_input { + height: bigint + index_offset: bigint + missed_blocks_counter: bigint + start_height: bigint +} + +""" +input type for inserting data into table "validator_signing_info" +""" +input validator_signing_info_insert_input { + height: bigint + index_offset: bigint + jailed_until: timestamp + missed_blocks_counter: bigint + start_height: bigint + tombstoned: Boolean + validator_address: String +} + +"""aggregate max on columns""" +type validator_signing_info_max_fields { + height: bigint + index_offset: bigint + jailed_until: timestamp + missed_blocks_counter: bigint + start_height: bigint + validator_address: String +} + +""" +order by max() on columns of table "validator_signing_info" +""" +input validator_signing_info_max_order_by { + height: order_by + index_offset: order_by + jailed_until: order_by + missed_blocks_counter: order_by + start_height: order_by + validator_address: order_by +} + +"""aggregate min on columns""" +type validator_signing_info_min_fields { + height: bigint + index_offset: bigint + jailed_until: timestamp + missed_blocks_counter: bigint + start_height: bigint + validator_address: String +} + +""" +order by min() on columns of table "validator_signing_info" +""" +input validator_signing_info_min_order_by { + height: order_by + index_offset: order_by + jailed_until: order_by + missed_blocks_counter: order_by + start_height: order_by + validator_address: order_by +} + +""" +response of any mutation on the table "validator_signing_info" +""" +type validator_signing_info_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [validator_signing_info!]! +} + +""" +on_conflict condition type for table "validator_signing_info" +""" +input validator_signing_info_on_conflict { + constraint: validator_signing_info_constraint! + update_columns: [validator_signing_info_update_column!]! = [] + where: validator_signing_info_bool_exp +} + +"""Ordering options when selecting data from "validator_signing_info".""" +input validator_signing_info_order_by { + height: order_by + index_offset: order_by + jailed_until: order_by + missed_blocks_counter: order_by + start_height: order_by + tombstoned: order_by + validator_address: order_by +} + +"""primary key columns input for table: validator_signing_info""" +input validator_signing_info_pk_columns_input { + validator_address: String! +} + +""" +select columns of table "validator_signing_info" +""" +enum validator_signing_info_select_column { + """column name""" + height + + """column name""" + index_offset + + """column name""" + jailed_until + + """column name""" + missed_blocks_counter + + """column name""" + start_height + + """column name""" + tombstoned + + """column name""" + validator_address +} + +""" +select "validator_signing_info_aggregate_bool_exp_bool_and_arguments_columns" columns of table "validator_signing_info" +""" +enum validator_signing_info_select_column_validator_signing_info_aggregate_bool_exp_bool_and_arguments_columns { + """column name""" + tombstoned +} + +""" +select "validator_signing_info_aggregate_bool_exp_bool_or_arguments_columns" columns of table "validator_signing_info" +""" +enum validator_signing_info_select_column_validator_signing_info_aggregate_bool_exp_bool_or_arguments_columns { + """column name""" + tombstoned +} + +""" +input type for updating data in table "validator_signing_info" +""" +input validator_signing_info_set_input { + height: bigint + index_offset: bigint + jailed_until: timestamp + missed_blocks_counter: bigint + start_height: bigint + tombstoned: Boolean + validator_address: String +} + +"""aggregate stddev on columns""" +type validator_signing_info_stddev_fields { + height: Float + index_offset: Float + missed_blocks_counter: Float + start_height: Float +} + +""" +order by stddev() on columns of table "validator_signing_info" +""" +input validator_signing_info_stddev_order_by { + height: order_by + index_offset: order_by + missed_blocks_counter: order_by + start_height: order_by +} + +"""aggregate stddev_pop on columns""" +type validator_signing_info_stddev_pop_fields { + height: Float + index_offset: Float + missed_blocks_counter: Float + start_height: Float +} + +""" +order by stddev_pop() on columns of table "validator_signing_info" +""" +input validator_signing_info_stddev_pop_order_by { + height: order_by + index_offset: order_by + missed_blocks_counter: order_by + start_height: order_by +} + +"""aggregate stddev_samp on columns""" +type validator_signing_info_stddev_samp_fields { + height: Float + index_offset: Float + missed_blocks_counter: Float + start_height: Float +} + +""" +order by stddev_samp() on columns of table "validator_signing_info" +""" +input validator_signing_info_stddev_samp_order_by { + height: order_by + index_offset: order_by + missed_blocks_counter: order_by + start_height: order_by +} + +""" +Streaming cursor of the table "validator_signing_info" +""" +input validator_signing_info_stream_cursor_input { + """Stream column input with initial value""" + initial_value: validator_signing_info_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input validator_signing_info_stream_cursor_value_input { + height: bigint + index_offset: bigint + jailed_until: timestamp + missed_blocks_counter: bigint + start_height: bigint + tombstoned: Boolean + validator_address: String +} + +"""aggregate sum on columns""" +type validator_signing_info_sum_fields { + height: bigint + index_offset: bigint + missed_blocks_counter: bigint + start_height: bigint +} + +""" +order by sum() on columns of table "validator_signing_info" +""" +input validator_signing_info_sum_order_by { + height: order_by + index_offset: order_by + missed_blocks_counter: order_by + start_height: order_by +} + +""" +update columns of table "validator_signing_info" +""" +enum validator_signing_info_update_column { + """column name""" + height + + """column name""" + index_offset + + """column name""" + jailed_until + + """column name""" + missed_blocks_counter + + """column name""" + start_height + + """column name""" + tombstoned + + """column name""" + validator_address +} + +input validator_signing_info_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: validator_signing_info_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_signing_info_set_input + + """filter the rows which have to be updated""" + where: validator_signing_info_bool_exp! +} + +"""aggregate var_pop on columns""" +type validator_signing_info_var_pop_fields { + height: Float + index_offset: Float + missed_blocks_counter: Float + start_height: Float +} + +""" +order by var_pop() on columns of table "validator_signing_info" +""" +input validator_signing_info_var_pop_order_by { + height: order_by + index_offset: order_by + missed_blocks_counter: order_by + start_height: order_by +} + +"""aggregate var_samp on columns""" +type validator_signing_info_var_samp_fields { + height: Float + index_offset: Float + missed_blocks_counter: Float + start_height: Float +} + +""" +order by var_samp() on columns of table "validator_signing_info" +""" +input validator_signing_info_var_samp_order_by { + height: order_by + index_offset: order_by + missed_blocks_counter: order_by + start_height: order_by +} + +"""aggregate variance on columns""" +type validator_signing_info_variance_fields { + height: Float + index_offset: Float + missed_blocks_counter: Float + start_height: Float +} + +""" +order by variance() on columns of table "validator_signing_info" +""" +input validator_signing_info_variance_order_by { + height: order_by + index_offset: order_by + missed_blocks_counter: order_by + start_height: order_by +} + +""" +columns and relationships of "validator_status" +""" +type validator_status { + height: bigint! + jailed: Boolean! + status: Int! + + """An object relationship""" + validator: validator! + validator_address: String! +} + +""" +aggregated selection of "validator_status" +""" +type validator_status_aggregate { + aggregate: validator_status_aggregate_fields + nodes: [validator_status!]! +} + +input validator_status_aggregate_bool_exp { + bool_and: validator_status_aggregate_bool_exp_bool_and + bool_or: validator_status_aggregate_bool_exp_bool_or + count: validator_status_aggregate_bool_exp_count +} + +input validator_status_aggregate_bool_exp_bool_and { + arguments: validator_status_select_column_validator_status_aggregate_bool_exp_bool_and_arguments_columns! + distinct: Boolean + filter: validator_status_bool_exp + predicate: Boolean_comparison_exp! +} + +input validator_status_aggregate_bool_exp_bool_or { + arguments: validator_status_select_column_validator_status_aggregate_bool_exp_bool_or_arguments_columns! + distinct: Boolean + filter: validator_status_bool_exp + predicate: Boolean_comparison_exp! +} + +input validator_status_aggregate_bool_exp_count { + arguments: [validator_status_select_column!] + distinct: Boolean + filter: validator_status_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "validator_status" +""" +type validator_status_aggregate_fields { + avg: validator_status_avg_fields + count(columns: [validator_status_select_column!], distinct: Boolean): Int! + max: validator_status_max_fields + min: validator_status_min_fields + stddev: validator_status_stddev_fields + stddev_pop: validator_status_stddev_pop_fields + stddev_samp: validator_status_stddev_samp_fields + sum: validator_status_sum_fields + var_pop: validator_status_var_pop_fields + var_samp: validator_status_var_samp_fields + variance: validator_status_variance_fields +} + +""" +order by aggregate values of table "validator_status" +""" +input validator_status_aggregate_order_by { + avg: validator_status_avg_order_by + count: order_by + max: validator_status_max_order_by + min: validator_status_min_order_by + stddev: validator_status_stddev_order_by + stddev_pop: validator_status_stddev_pop_order_by + stddev_samp: validator_status_stddev_samp_order_by + sum: validator_status_sum_order_by + var_pop: validator_status_var_pop_order_by + var_samp: validator_status_var_samp_order_by + variance: validator_status_variance_order_by +} + +""" +input type for inserting array relation for remote table "validator_status" +""" +input validator_status_arr_rel_insert_input { + data: [validator_status_insert_input!]! + + """upsert condition""" + on_conflict: validator_status_on_conflict +} + +"""aggregate avg on columns""" +type validator_status_avg_fields { + height: Float + status: Float +} + +""" +order by avg() on columns of table "validator_status" +""" +input validator_status_avg_order_by { + height: order_by + status: order_by +} + +""" +Boolean expression to filter rows from the table "validator_status". All fields are combined with a logical 'AND'. +""" +input validator_status_bool_exp { + _and: [validator_status_bool_exp!] + _not: validator_status_bool_exp + _or: [validator_status_bool_exp!] + height: bigint_comparison_exp + jailed: Boolean_comparison_exp + status: Int_comparison_exp + validator: validator_bool_exp + validator_address: String_comparison_exp +} + +""" +unique or primary key constraints on table "validator_status" +""" +enum validator_status_constraint { + """ + unique or primary key constraint on columns "validator_address" + """ + validator_status_pkey +} + +""" +input type for incrementing numeric columns in table "validator_status" +""" +input validator_status_inc_input { + height: bigint + status: Int +} + +""" +input type for inserting data into table "validator_status" +""" +input validator_status_insert_input { + height: bigint + jailed: Boolean + status: Int + validator: validator_obj_rel_insert_input + validator_address: String +} + +"""aggregate max on columns""" +type validator_status_max_fields { + height: bigint + status: Int + validator_address: String +} + +""" +order by max() on columns of table "validator_status" +""" +input validator_status_max_order_by { + height: order_by + status: order_by + validator_address: order_by +} + +"""aggregate min on columns""" +type validator_status_min_fields { + height: bigint + status: Int + validator_address: String +} + +""" +order by min() on columns of table "validator_status" +""" +input validator_status_min_order_by { + height: order_by + status: order_by + validator_address: order_by +} + +""" +response of any mutation on the table "validator_status" +""" +type validator_status_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [validator_status!]! +} + +""" +on_conflict condition type for table "validator_status" +""" +input validator_status_on_conflict { + constraint: validator_status_constraint! + update_columns: [validator_status_update_column!]! = [] + where: validator_status_bool_exp +} + +"""Ordering options when selecting data from "validator_status".""" +input validator_status_order_by { + height: order_by + jailed: order_by + status: order_by + validator: validator_order_by + validator_address: order_by +} + +"""primary key columns input for table: validator_status""" +input validator_status_pk_columns_input { + validator_address: String! +} + +""" +select columns of table "validator_status" +""" +enum validator_status_select_column { + """column name""" + height + + """column name""" + jailed + + """column name""" + status + + """column name""" + validator_address +} + +""" +select "validator_status_aggregate_bool_exp_bool_and_arguments_columns" columns of table "validator_status" +""" +enum validator_status_select_column_validator_status_aggregate_bool_exp_bool_and_arguments_columns { + """column name""" + jailed +} + +""" +select "validator_status_aggregate_bool_exp_bool_or_arguments_columns" columns of table "validator_status" +""" +enum validator_status_select_column_validator_status_aggregate_bool_exp_bool_or_arguments_columns { + """column name""" + jailed +} + +""" +input type for updating data in table "validator_status" +""" +input validator_status_set_input { + height: bigint + jailed: Boolean + status: Int + validator_address: String +} + +"""aggregate stddev on columns""" +type validator_status_stddev_fields { + height: Float + status: Float +} + +""" +order by stddev() on columns of table "validator_status" +""" +input validator_status_stddev_order_by { + height: order_by + status: order_by +} + +"""aggregate stddev_pop on columns""" +type validator_status_stddev_pop_fields { + height: Float + status: Float +} + +""" +order by stddev_pop() on columns of table "validator_status" +""" +input validator_status_stddev_pop_order_by { + height: order_by + status: order_by +} + +"""aggregate stddev_samp on columns""" +type validator_status_stddev_samp_fields { + height: Float + status: Float +} + +""" +order by stddev_samp() on columns of table "validator_status" +""" +input validator_status_stddev_samp_order_by { + height: order_by + status: order_by +} + +""" +Streaming cursor of the table "validator_status" +""" +input validator_status_stream_cursor_input { + """Stream column input with initial value""" + initial_value: validator_status_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input validator_status_stream_cursor_value_input { + height: bigint + jailed: Boolean + status: Int + validator_address: String +} + +"""aggregate sum on columns""" +type validator_status_sum_fields { + height: bigint + status: Int +} + +""" +order by sum() on columns of table "validator_status" +""" +input validator_status_sum_order_by { + height: order_by + status: order_by +} + +""" +update columns of table "validator_status" +""" +enum validator_status_update_column { + """column name""" + height + + """column name""" + jailed + + """column name""" + status + + """column name""" + validator_address +} + +input validator_status_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: validator_status_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_status_set_input + + """filter the rows which have to be updated""" + where: validator_status_bool_exp! +} + +"""aggregate var_pop on columns""" +type validator_status_var_pop_fields { + height: Float + status: Float +} + +""" +order by var_pop() on columns of table "validator_status" +""" +input validator_status_var_pop_order_by { + height: order_by + status: order_by +} + +"""aggregate var_samp on columns""" +type validator_status_var_samp_fields { + height: Float + status: Float +} + +""" +order by var_samp() on columns of table "validator_status" +""" +input validator_status_var_samp_order_by { + height: order_by + status: order_by +} + +"""aggregate variance on columns""" +type validator_status_variance_fields { + height: Float + status: Float +} + +""" +order by variance() on columns of table "validator_status" +""" +input validator_status_variance_order_by { + height: order_by + status: order_by +} + +""" +Streaming cursor of the table "validator" +""" +input validator_stream_cursor_input { + """Stream column input with initial value""" + initial_value: validator_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input validator_stream_cursor_value_input { + consensus_address: String + consensus_pubkey: String +} + +""" +update columns of table "validator" +""" +enum validator_update_column { + """column name""" + consensus_address + + """column name""" + consensus_pubkey +} + +input validator_updates { + """sets the columns of the filtered rows to the given values""" + _set: validator_set_input + + """filter the rows which have to be updated""" + where: validator_bool_exp! +} + +""" +columns and relationships of "validator_voting_power" +""" +type validator_voting_power { + """An object relationship""" + block: block + height: bigint + + """An object relationship""" + validator: validator! + validator_address: String! + voting_power: bigint! +} + +""" +aggregated selection of "validator_voting_power" +""" +type validator_voting_power_aggregate { + aggregate: validator_voting_power_aggregate_fields + nodes: [validator_voting_power!]! +} + +input validator_voting_power_aggregate_bool_exp { + count: validator_voting_power_aggregate_bool_exp_count +} + +input validator_voting_power_aggregate_bool_exp_count { + arguments: [validator_voting_power_select_column!] + distinct: Boolean + filter: validator_voting_power_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "validator_voting_power" +""" +type validator_voting_power_aggregate_fields { + avg: validator_voting_power_avg_fields + count(columns: [validator_voting_power_select_column!], distinct: Boolean): Int! + max: validator_voting_power_max_fields + min: validator_voting_power_min_fields + stddev: validator_voting_power_stddev_fields + stddev_pop: validator_voting_power_stddev_pop_fields + stddev_samp: validator_voting_power_stddev_samp_fields + sum: validator_voting_power_sum_fields + var_pop: validator_voting_power_var_pop_fields + var_samp: validator_voting_power_var_samp_fields + variance: validator_voting_power_variance_fields +} + +""" +order by aggregate values of table "validator_voting_power" +""" +input validator_voting_power_aggregate_order_by { + avg: validator_voting_power_avg_order_by + count: order_by + max: validator_voting_power_max_order_by + min: validator_voting_power_min_order_by + stddev: validator_voting_power_stddev_order_by + stddev_pop: validator_voting_power_stddev_pop_order_by + stddev_samp: validator_voting_power_stddev_samp_order_by + sum: validator_voting_power_sum_order_by + var_pop: validator_voting_power_var_pop_order_by + var_samp: validator_voting_power_var_samp_order_by + variance: validator_voting_power_variance_order_by +} + +""" +input type for inserting array relation for remote table "validator_voting_power" +""" +input validator_voting_power_arr_rel_insert_input { + data: [validator_voting_power_insert_input!]! + + """upsert condition""" + on_conflict: validator_voting_power_on_conflict +} + +"""aggregate avg on columns""" +type validator_voting_power_avg_fields { + height: Float + voting_power: Float +} + +""" +order by avg() on columns of table "validator_voting_power" +""" +input validator_voting_power_avg_order_by { + height: order_by + voting_power: order_by +} + +""" +Boolean expression to filter rows from the table "validator_voting_power". All fields are combined with a logical 'AND'. +""" +input validator_voting_power_bool_exp { + _and: [validator_voting_power_bool_exp!] + _not: validator_voting_power_bool_exp + _or: [validator_voting_power_bool_exp!] + block: block_bool_exp + height: bigint_comparison_exp + validator: validator_bool_exp + validator_address: String_comparison_exp + voting_power: bigint_comparison_exp +} + +""" +unique or primary key constraints on table "validator_voting_power" +""" +enum validator_voting_power_constraint { + """ + unique or primary key constraint on columns "validator_address" + """ + validator_voting_power_pkey +} + +""" +input type for incrementing numeric columns in table "validator_voting_power" +""" +input validator_voting_power_inc_input { + height: bigint + voting_power: bigint +} + +""" +input type for inserting data into table "validator_voting_power" +""" +input validator_voting_power_insert_input { + block: block_obj_rel_insert_input + height: bigint + validator: validator_obj_rel_insert_input + validator_address: String + voting_power: bigint +} + +"""aggregate max on columns""" +type validator_voting_power_max_fields { + height: bigint + validator_address: String + voting_power: bigint +} + +""" +order by max() on columns of table "validator_voting_power" +""" +input validator_voting_power_max_order_by { + height: order_by + validator_address: order_by + voting_power: order_by +} + +"""aggregate min on columns""" +type validator_voting_power_min_fields { + height: bigint + validator_address: String + voting_power: bigint +} + +""" +order by min() on columns of table "validator_voting_power" +""" +input validator_voting_power_min_order_by { + height: order_by + validator_address: order_by + voting_power: order_by +} + +""" +response of any mutation on the table "validator_voting_power" +""" +type validator_voting_power_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [validator_voting_power!]! +} + +""" +on_conflict condition type for table "validator_voting_power" +""" +input validator_voting_power_on_conflict { + constraint: validator_voting_power_constraint! + update_columns: [validator_voting_power_update_column!]! = [] + where: validator_voting_power_bool_exp +} + +"""Ordering options when selecting data from "validator_voting_power".""" +input validator_voting_power_order_by { + block: block_order_by + height: order_by + validator: validator_order_by + validator_address: order_by + voting_power: order_by +} + +"""primary key columns input for table: validator_voting_power""" +input validator_voting_power_pk_columns_input { + validator_address: String! +} + +""" +select columns of table "validator_voting_power" +""" +enum validator_voting_power_select_column { + """column name""" + height + + """column name""" + validator_address + + """column name""" + voting_power +} + +""" +input type for updating data in table "validator_voting_power" +""" +input validator_voting_power_set_input { + height: bigint + validator_address: String + voting_power: bigint +} + +"""aggregate stddev on columns""" +type validator_voting_power_stddev_fields { + height: Float + voting_power: Float +} + +""" +order by stddev() on columns of table "validator_voting_power" +""" +input validator_voting_power_stddev_order_by { + height: order_by + voting_power: order_by +} + +"""aggregate stddev_pop on columns""" +type validator_voting_power_stddev_pop_fields { + height: Float + voting_power: Float +} + +""" +order by stddev_pop() on columns of table "validator_voting_power" +""" +input validator_voting_power_stddev_pop_order_by { + height: order_by + voting_power: order_by +} + +"""aggregate stddev_samp on columns""" +type validator_voting_power_stddev_samp_fields { + height: Float + voting_power: Float +} + +""" +order by stddev_samp() on columns of table "validator_voting_power" +""" +input validator_voting_power_stddev_samp_order_by { + height: order_by + voting_power: order_by +} + +""" +Streaming cursor of the table "validator_voting_power" +""" +input validator_voting_power_stream_cursor_input { + """Stream column input with initial value""" + initial_value: validator_voting_power_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input validator_voting_power_stream_cursor_value_input { + height: bigint + validator_address: String + voting_power: bigint +} + +"""aggregate sum on columns""" +type validator_voting_power_sum_fields { + height: bigint + voting_power: bigint +} + +""" +order by sum() on columns of table "validator_voting_power" +""" +input validator_voting_power_sum_order_by { + height: order_by + voting_power: order_by +} + +""" +update columns of table "validator_voting_power" +""" +enum validator_voting_power_update_column { + """column name""" + height + + """column name""" + validator_address + + """column name""" + voting_power +} + +input validator_voting_power_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: validator_voting_power_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: validator_voting_power_set_input + + """filter the rows which have to be updated""" + where: validator_voting_power_bool_exp! +} + +"""aggregate var_pop on columns""" +type validator_voting_power_var_pop_fields { + height: Float + voting_power: Float +} + +""" +order by var_pop() on columns of table "validator_voting_power" +""" +input validator_voting_power_var_pop_order_by { + height: order_by + voting_power: order_by +} + +"""aggregate var_samp on columns""" +type validator_voting_power_var_samp_fields { + height: Float + voting_power: Float +} + +""" +order by var_samp() on columns of table "validator_voting_power" +""" +input validator_voting_power_var_samp_order_by { + height: order_by + voting_power: order_by +} + +"""aggregate variance on columns""" +type validator_voting_power_variance_fields { + height: Float + voting_power: Float +} + +""" +order by variance() on columns of table "validator_voting_power" +""" +input validator_voting_power_variance_order_by { + height: order_by + voting_power: order_by +} + +""" +columns and relationships of "vesting_account" +""" +type vesting_account { + """An object relationship""" + account: account! + address: String! + end_time: timestamp! + id: Int! + original_vesting: [coin!]! + start_time: timestamp + type: String! + + """An array relationship""" + vesting_periods( + """distinct select on columns""" + distinct_on: [vesting_period_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_period_order_by!] + + """filter the rows returned""" + where: vesting_period_bool_exp + ): [vesting_period!]! + + """An aggregate relationship""" + vesting_periods_aggregate( + """distinct select on columns""" + distinct_on: [vesting_period_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [vesting_period_order_by!] + + """filter the rows returned""" + where: vesting_period_bool_exp + ): vesting_period_aggregate! +} + +""" +aggregated selection of "vesting_account" +""" +type vesting_account_aggregate { + aggregate: vesting_account_aggregate_fields + nodes: [vesting_account!]! +} + +input vesting_account_aggregate_bool_exp { + count: vesting_account_aggregate_bool_exp_count +} + +input vesting_account_aggregate_bool_exp_count { + arguments: [vesting_account_select_column!] + distinct: Boolean + filter: vesting_account_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "vesting_account" +""" +type vesting_account_aggregate_fields { + avg: vesting_account_avg_fields + count(columns: [vesting_account_select_column!], distinct: Boolean): Int! + max: vesting_account_max_fields + min: vesting_account_min_fields + stddev: vesting_account_stddev_fields + stddev_pop: vesting_account_stddev_pop_fields + stddev_samp: vesting_account_stddev_samp_fields + sum: vesting_account_sum_fields + var_pop: vesting_account_var_pop_fields + var_samp: vesting_account_var_samp_fields + variance: vesting_account_variance_fields +} + +""" +order by aggregate values of table "vesting_account" +""" +input vesting_account_aggregate_order_by { + avg: vesting_account_avg_order_by + count: order_by + max: vesting_account_max_order_by + min: vesting_account_min_order_by + stddev: vesting_account_stddev_order_by + stddev_pop: vesting_account_stddev_pop_order_by + stddev_samp: vesting_account_stddev_samp_order_by + sum: vesting_account_sum_order_by + var_pop: vesting_account_var_pop_order_by + var_samp: vesting_account_var_samp_order_by + variance: vesting_account_variance_order_by +} + +""" +input type for inserting array relation for remote table "vesting_account" +""" +input vesting_account_arr_rel_insert_input { + data: [vesting_account_insert_input!]! + + """upsert condition""" + on_conflict: vesting_account_on_conflict +} + +"""aggregate avg on columns""" +type vesting_account_avg_fields { + id: Float +} + +""" +order by avg() on columns of table "vesting_account" +""" +input vesting_account_avg_order_by { + id: order_by +} + +""" +Boolean expression to filter rows from the table "vesting_account". All fields are combined with a logical 'AND'. +""" +input vesting_account_bool_exp { + _and: [vesting_account_bool_exp!] + _not: vesting_account_bool_exp + _or: [vesting_account_bool_exp!] + account: account_bool_exp + address: String_comparison_exp + end_time: timestamp_comparison_exp + id: Int_comparison_exp + original_vesting: coin_array_comparison_exp + start_time: timestamp_comparison_exp + type: String_comparison_exp + vesting_periods: vesting_period_bool_exp + vesting_periods_aggregate: vesting_period_aggregate_bool_exp +} + +""" +unique or primary key constraints on table "vesting_account" +""" +enum vesting_account_constraint { + """ + unique or primary key constraint on columns "address" + """ + vesting_account_address_idx + + """ + unique or primary key constraint on columns "id" + """ + vesting_account_pkey +} + +""" +input type for incrementing numeric columns in table "vesting_account" +""" +input vesting_account_inc_input { + id: Int +} + +""" +input type for inserting data into table "vesting_account" +""" +input vesting_account_insert_input { + account: account_obj_rel_insert_input + address: String + end_time: timestamp + id: Int + original_vesting: [coin!] + start_time: timestamp + type: String + vesting_periods: vesting_period_arr_rel_insert_input +} + +"""aggregate max on columns""" +type vesting_account_max_fields { + address: String + end_time: timestamp + id: Int + original_vesting: [coin!] + start_time: timestamp + type: String +} + +""" +order by max() on columns of table "vesting_account" +""" +input vesting_account_max_order_by { + address: order_by + end_time: order_by + id: order_by + original_vesting: order_by + start_time: order_by + type: order_by +} + +"""aggregate min on columns""" +type vesting_account_min_fields { + address: String + end_time: timestamp + id: Int + original_vesting: [coin!] + start_time: timestamp + type: String +} + +""" +order by min() on columns of table "vesting_account" +""" +input vesting_account_min_order_by { + address: order_by + end_time: order_by + id: order_by + original_vesting: order_by + start_time: order_by + type: order_by +} + +""" +response of any mutation on the table "vesting_account" +""" +type vesting_account_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [vesting_account!]! +} + +""" +input type for inserting object relation for remote table "vesting_account" +""" +input vesting_account_obj_rel_insert_input { + data: vesting_account_insert_input! + + """upsert condition""" + on_conflict: vesting_account_on_conflict +} + +""" +on_conflict condition type for table "vesting_account" +""" +input vesting_account_on_conflict { + constraint: vesting_account_constraint! + update_columns: [vesting_account_update_column!]! = [] + where: vesting_account_bool_exp +} + +"""Ordering options when selecting data from "vesting_account".""" +input vesting_account_order_by { + account: account_order_by + address: order_by + end_time: order_by + id: order_by + original_vesting: order_by + start_time: order_by + type: order_by + vesting_periods_aggregate: vesting_period_aggregate_order_by +} + +"""primary key columns input for table: vesting_account""" +input vesting_account_pk_columns_input { + id: Int! +} + +""" +select columns of table "vesting_account" +""" +enum vesting_account_select_column { + """column name""" + address + + """column name""" + end_time + + """column name""" + id + + """column name""" + original_vesting + + """column name""" + start_time + + """column name""" + type +} + +""" +input type for updating data in table "vesting_account" +""" +input vesting_account_set_input { + address: String + end_time: timestamp + id: Int + original_vesting: [coin!] + start_time: timestamp + type: String +} + +"""aggregate stddev on columns""" +type vesting_account_stddev_fields { + id: Float +} + +""" +order by stddev() on columns of table "vesting_account" +""" +input vesting_account_stddev_order_by { + id: order_by +} + +"""aggregate stddev_pop on columns""" +type vesting_account_stddev_pop_fields { + id: Float +} + +""" +order by stddev_pop() on columns of table "vesting_account" +""" +input vesting_account_stddev_pop_order_by { + id: order_by +} + +"""aggregate stddev_samp on columns""" +type vesting_account_stddev_samp_fields { + id: Float +} + +""" +order by stddev_samp() on columns of table "vesting_account" +""" +input vesting_account_stddev_samp_order_by { + id: order_by +} + +""" +Streaming cursor of the table "vesting_account" +""" +input vesting_account_stream_cursor_input { + """Stream column input with initial value""" + initial_value: vesting_account_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input vesting_account_stream_cursor_value_input { + address: String + end_time: timestamp + id: Int + original_vesting: [coin!] + start_time: timestamp + type: String +} + +"""aggregate sum on columns""" +type vesting_account_sum_fields { + id: Int +} + +""" +order by sum() on columns of table "vesting_account" +""" +input vesting_account_sum_order_by { + id: order_by +} + +""" +update columns of table "vesting_account" +""" +enum vesting_account_update_column { + """column name""" + address + + """column name""" + end_time + + """column name""" + id + + """column name""" + original_vesting + + """column name""" + start_time + + """column name""" + type +} + +input vesting_account_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: vesting_account_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: vesting_account_set_input + + """filter the rows which have to be updated""" + where: vesting_account_bool_exp! +} + +"""aggregate var_pop on columns""" +type vesting_account_var_pop_fields { + id: Float +} + +""" +order by var_pop() on columns of table "vesting_account" +""" +input vesting_account_var_pop_order_by { + id: order_by +} + +"""aggregate var_samp on columns""" +type vesting_account_var_samp_fields { + id: Float +} + +""" +order by var_samp() on columns of table "vesting_account" +""" +input vesting_account_var_samp_order_by { + id: order_by +} + +"""aggregate variance on columns""" +type vesting_account_variance_fields { + id: Float +} + +""" +order by variance() on columns of table "vesting_account" +""" +input vesting_account_variance_order_by { + id: order_by +} + +""" +columns and relationships of "vesting_period" +""" +type vesting_period { + amount: [coin!]! + length: bigint! + period_order: bigint! + + """An object relationship""" + vesting_account: vesting_account! + vesting_account_id: bigint! +} + +""" +aggregated selection of "vesting_period" +""" +type vesting_period_aggregate { + aggregate: vesting_period_aggregate_fields + nodes: [vesting_period!]! +} + +input vesting_period_aggregate_bool_exp { + count: vesting_period_aggregate_bool_exp_count +} + +input vesting_period_aggregate_bool_exp_count { + arguments: [vesting_period_select_column!] + distinct: Boolean + filter: vesting_period_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "vesting_period" +""" +type vesting_period_aggregate_fields { + avg: vesting_period_avg_fields + count(columns: [vesting_period_select_column!], distinct: Boolean): Int! + max: vesting_period_max_fields + min: vesting_period_min_fields + stddev: vesting_period_stddev_fields + stddev_pop: vesting_period_stddev_pop_fields + stddev_samp: vesting_period_stddev_samp_fields + sum: vesting_period_sum_fields + var_pop: vesting_period_var_pop_fields + var_samp: vesting_period_var_samp_fields + variance: vesting_period_variance_fields +} + +""" +order by aggregate values of table "vesting_period" +""" +input vesting_period_aggregate_order_by { + avg: vesting_period_avg_order_by + count: order_by + max: vesting_period_max_order_by + min: vesting_period_min_order_by + stddev: vesting_period_stddev_order_by + stddev_pop: vesting_period_stddev_pop_order_by + stddev_samp: vesting_period_stddev_samp_order_by + sum: vesting_period_sum_order_by + var_pop: vesting_period_var_pop_order_by + var_samp: vesting_period_var_samp_order_by + variance: vesting_period_variance_order_by +} + +""" +input type for inserting array relation for remote table "vesting_period" +""" +input vesting_period_arr_rel_insert_input { + data: [vesting_period_insert_input!]! +} + +"""aggregate avg on columns""" +type vesting_period_avg_fields { + length: Float + period_order: Float + vesting_account_id: Float +} + +""" +order by avg() on columns of table "vesting_period" +""" +input vesting_period_avg_order_by { + length: order_by + period_order: order_by + vesting_account_id: order_by +} + +""" +Boolean expression to filter rows from the table "vesting_period". All fields are combined with a logical 'AND'. +""" +input vesting_period_bool_exp { + _and: [vesting_period_bool_exp!] + _not: vesting_period_bool_exp + _or: [vesting_period_bool_exp!] + amount: coin_array_comparison_exp + length: bigint_comparison_exp + period_order: bigint_comparison_exp + vesting_account: vesting_account_bool_exp + vesting_account_id: bigint_comparison_exp +} + +""" +input type for incrementing numeric columns in table "vesting_period" +""" +input vesting_period_inc_input { + length: bigint + period_order: bigint + vesting_account_id: bigint +} + +""" +input type for inserting data into table "vesting_period" +""" +input vesting_period_insert_input { + amount: [coin!] + length: bigint + period_order: bigint + vesting_account: vesting_account_obj_rel_insert_input + vesting_account_id: bigint +} + +"""aggregate max on columns""" +type vesting_period_max_fields { + amount: [coin!] + length: bigint + period_order: bigint + vesting_account_id: bigint +} + +""" +order by max() on columns of table "vesting_period" +""" +input vesting_period_max_order_by { + amount: order_by + length: order_by + period_order: order_by + vesting_account_id: order_by +} + +"""aggregate min on columns""" +type vesting_period_min_fields { + amount: [coin!] + length: bigint + period_order: bigint + vesting_account_id: bigint +} + +""" +order by min() on columns of table "vesting_period" +""" +input vesting_period_min_order_by { + amount: order_by + length: order_by + period_order: order_by + vesting_account_id: order_by +} + +""" +response of any mutation on the table "vesting_period" +""" +type vesting_period_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [vesting_period!]! +} + +"""Ordering options when selecting data from "vesting_period".""" +input vesting_period_order_by { + amount: order_by + length: order_by + period_order: order_by + vesting_account: vesting_account_order_by + vesting_account_id: order_by +} + +""" +select columns of table "vesting_period" +""" +enum vesting_period_select_column { + """column name""" + amount + + """column name""" + length + + """column name""" + period_order + + """column name""" + vesting_account_id +} + +""" +input type for updating data in table "vesting_period" +""" +input vesting_period_set_input { + amount: [coin!] + length: bigint + period_order: bigint + vesting_account_id: bigint +} + +"""aggregate stddev on columns""" +type vesting_period_stddev_fields { + length: Float + period_order: Float + vesting_account_id: Float +} + +""" +order by stddev() on columns of table "vesting_period" +""" +input vesting_period_stddev_order_by { + length: order_by + period_order: order_by + vesting_account_id: order_by +} + +"""aggregate stddev_pop on columns""" +type vesting_period_stddev_pop_fields { + length: Float + period_order: Float + vesting_account_id: Float +} + +""" +order by stddev_pop() on columns of table "vesting_period" +""" +input vesting_period_stddev_pop_order_by { + length: order_by + period_order: order_by + vesting_account_id: order_by +} + +"""aggregate stddev_samp on columns""" +type vesting_period_stddev_samp_fields { + length: Float + period_order: Float + vesting_account_id: Float +} + +""" +order by stddev_samp() on columns of table "vesting_period" +""" +input vesting_period_stddev_samp_order_by { + length: order_by + period_order: order_by + vesting_account_id: order_by +} + +""" +Streaming cursor of the table "vesting_period" +""" +input vesting_period_stream_cursor_input { + """Stream column input with initial value""" + initial_value: vesting_period_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input vesting_period_stream_cursor_value_input { + amount: [coin!] + length: bigint + period_order: bigint + vesting_account_id: bigint +} + +"""aggregate sum on columns""" +type vesting_period_sum_fields { + length: bigint + period_order: bigint + vesting_account_id: bigint +} + +""" +order by sum() on columns of table "vesting_period" +""" +input vesting_period_sum_order_by { + length: order_by + period_order: order_by + vesting_account_id: order_by +} + +input vesting_period_updates { + """increments the numeric columns with given value of the filtered values""" + _inc: vesting_period_inc_input + + """sets the columns of the filtered rows to the given values""" + _set: vesting_period_set_input + + """filter the rows which have to be updated""" + where: vesting_period_bool_exp! +} + +"""aggregate var_pop on columns""" +type vesting_period_var_pop_fields { + length: Float + period_order: Float + vesting_account_id: Float +} + +""" +order by var_pop() on columns of table "vesting_period" +""" +input vesting_period_var_pop_order_by { + length: order_by + period_order: order_by + vesting_account_id: order_by +} + +"""aggregate var_samp on columns""" +type vesting_period_var_samp_fields { + length: Float + period_order: Float + vesting_account_id: Float +} + +""" +order by var_samp() on columns of table "vesting_period" +""" +input vesting_period_var_samp_order_by { + length: order_by + period_order: order_by + vesting_account_id: order_by +} + +"""aggregate variance on columns""" +type vesting_period_variance_fields { + length: Float + period_order: Float + vesting_account_id: Float +} + +""" +order by variance() on columns of table "vesting_period" +""" +input vesting_period_variance_order_by { + length: order_by + period_order: order_by + vesting_account_id: order_by +} + diff --git a/hasura/metadata/databases/bdjuno/functions/functions.yaml b/hasura/metadata/databases/callisto/functions/functions.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/functions/functions.yaml rename to hasura/metadata/databases/callisto/functions/functions.yaml diff --git a/hasura/metadata/databases/bdjuno/functions/public_messages_by_address.yaml b/hasura/metadata/databases/callisto/functions/public_messages_by_address.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/functions/public_messages_by_address.yaml rename to hasura/metadata/databases/callisto/functions/public_messages_by_address.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_account.yaml b/hasura/metadata/databases/callisto/tables/public_account.yaml similarity index 97% rename from hasura/metadata/databases/bdjuno/tables/public_account.yaml rename to hasura/metadata/databases/callisto/tables/public_account.yaml index a4ccc1e35..5c2ac1bad 100644 --- a/hasura/metadata/databases/bdjuno/tables/public_account.yaml +++ b/hasura/metadata/databases/callisto/tables/public_account.yaml @@ -49,7 +49,7 @@ array_relationships: schema: public select_permissions: - permission: - allow_aggregations: false + allow_aggregations: true columns: - address filter: {} diff --git a/hasura/metadata/databases/callisto/tables/public_account_denom_balance.yaml b/hasura/metadata/databases/callisto/tables/public_account_denom_balance.yaml new file mode 100644 index 000000000..732b00eec --- /dev/null +++ b/hasura/metadata/databases/callisto/tables/public_account_denom_balance.yaml @@ -0,0 +1,13 @@ +table: + name: account_denom_balance + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - address + - denom + - amount + - height + filter: {} + role: anonymous diff --git a/hasura/metadata/databases/callisto/tables/public_assetft_params.yaml b/hasura/metadata/databases/callisto/tables/public_assetft_params.yaml new file mode 100644 index 000000000..d7d99d7de --- /dev/null +++ b/hasura/metadata/databases/callisto/tables/public_assetft_params.yaml @@ -0,0 +1,12 @@ +table: + name: assetft_params + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - one_row_id + - params + - height + filter: {} + role: anonymous diff --git a/hasura/metadata/databases/callisto/tables/public_assetnft_params.yaml b/hasura/metadata/databases/callisto/tables/public_assetnft_params.yaml new file mode 100644 index 000000000..8536a0d1b --- /dev/null +++ b/hasura/metadata/databases/callisto/tables/public_assetnft_params.yaml @@ -0,0 +1,12 @@ +table: + name: assetnft_params + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - one_row_id + - params + - height + filter: {} + role: anonymous diff --git a/hasura/metadata/databases/callisto/tables/public_auth_params.yaml b/hasura/metadata/databases/callisto/tables/public_auth_params.yaml new file mode 100644 index 000000000..cf462c983 --- /dev/null +++ b/hasura/metadata/databases/callisto/tables/public_auth_params.yaml @@ -0,0 +1,12 @@ +table: + name: auth_params + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - one_row_id + - params + - height + filter: {} + role: anonymous diff --git a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_from_genesis.yaml b/hasura/metadata/databases/callisto/tables/public_average_block_time_from_genesis.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_average_block_time_from_genesis.yaml rename to hasura/metadata/databases/callisto/tables/public_average_block_time_from_genesis.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_day.yaml b/hasura/metadata/databases/callisto/tables/public_average_block_time_per_day.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_day.yaml rename to hasura/metadata/databases/callisto/tables/public_average_block_time_per_day.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_hour.yaml b/hasura/metadata/databases/callisto/tables/public_average_block_time_per_hour.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_hour.yaml rename to hasura/metadata/databases/callisto/tables/public_average_block_time_per_hour.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_minute.yaml b/hasura/metadata/databases/callisto/tables/public_average_block_time_per_minute.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_average_block_time_per_minute.yaml rename to hasura/metadata/databases/callisto/tables/public_average_block_time_per_minute.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_block.yaml b/hasura/metadata/databases/callisto/tables/public_block.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_block.yaml rename to hasura/metadata/databases/callisto/tables/public_block.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_community_pool.yaml b/hasura/metadata/databases/callisto/tables/public_community_pool.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_community_pool.yaml rename to hasura/metadata/databases/callisto/tables/public_community_pool.yaml diff --git a/hasura/metadata/databases/callisto/tables/public_customparams_params.yaml b/hasura/metadata/databases/callisto/tables/public_customparams_params.yaml new file mode 100644 index 000000000..0fedc3eaf --- /dev/null +++ b/hasura/metadata/databases/callisto/tables/public_customparams_params.yaml @@ -0,0 +1,12 @@ +table: + name: customparams_params + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - one_row_id + - staking_params + - height + filter: {} + role: anonymous diff --git a/hasura/metadata/databases/callisto/tables/public_dex_params.yaml b/hasura/metadata/databases/callisto/tables/public_dex_params.yaml new file mode 100644 index 000000000..523ff0d9a --- /dev/null +++ b/hasura/metadata/databases/callisto/tables/public_dex_params.yaml @@ -0,0 +1,12 @@ +table: + name: dex_params + schema: public +select_permissions: + - permission: + allow_aggregations: true + columns: + - one_row_id + - params + - height + filter: { } + role: anonymous diff --git a/hasura/metadata/databases/bdjuno/tables/public_distribution_params.yaml b/hasura/metadata/databases/callisto/tables/public_distribution_params.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_distribution_params.yaml rename to hasura/metadata/databases/callisto/tables/public_distribution_params.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_double_sign_evidence.yaml b/hasura/metadata/databases/callisto/tables/public_double_sign_evidence.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_double_sign_evidence.yaml rename to hasura/metadata/databases/callisto/tables/public_double_sign_evidence.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_double_sign_vote.yaml b/hasura/metadata/databases/callisto/tables/public_double_sign_vote.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_double_sign_vote.yaml rename to hasura/metadata/databases/callisto/tables/public_double_sign_vote.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_fee_grant_allowance.yaml b/hasura/metadata/databases/callisto/tables/public_fee_grant_allowance.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_fee_grant_allowance.yaml rename to hasura/metadata/databases/callisto/tables/public_fee_grant_allowance.yaml diff --git a/hasura/metadata/databases/callisto/tables/public_feemodel_params.yaml b/hasura/metadata/databases/callisto/tables/public_feemodel_params.yaml new file mode 100644 index 000000000..116181d2d --- /dev/null +++ b/hasura/metadata/databases/callisto/tables/public_feemodel_params.yaml @@ -0,0 +1,12 @@ +table: + name: feemodel_params + schema: public +select_permissions: +- permission: + allow_aggregations: true + columns: + - one_row_id + - params + - height + filter: {} + role: anonymous diff --git a/hasura/metadata/databases/bdjuno/tables/public_genesis.yaml b/hasura/metadata/databases/callisto/tables/public_genesis.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_genesis.yaml rename to hasura/metadata/databases/callisto/tables/public_genesis.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_gov_params.yaml b/hasura/metadata/databases/callisto/tables/public_gov_params.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_gov_params.yaml rename to hasura/metadata/databases/callisto/tables/public_gov_params.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_inflation.yaml b/hasura/metadata/databases/callisto/tables/public_inflation.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_inflation.yaml rename to hasura/metadata/databases/callisto/tables/public_inflation.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_message.yaml b/hasura/metadata/databases/callisto/tables/public_message.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_message.yaml rename to hasura/metadata/databases/callisto/tables/public_message.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_mint_params.yaml b/hasura/metadata/databases/callisto/tables/public_mint_params.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_mint_params.yaml rename to hasura/metadata/databases/callisto/tables/public_mint_params.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_modules.yaml b/hasura/metadata/databases/callisto/tables/public_modules.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_modules.yaml rename to hasura/metadata/databases/callisto/tables/public_modules.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_pre_commit.yaml b/hasura/metadata/databases/callisto/tables/public_pre_commit.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_pre_commit.yaml rename to hasura/metadata/databases/callisto/tables/public_pre_commit.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal.yaml b/hasura/metadata/databases/callisto/tables/public_proposal.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_proposal.yaml rename to hasura/metadata/databases/callisto/tables/public_proposal.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal_deposit.yaml b/hasura/metadata/databases/callisto/tables/public_proposal_deposit.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_proposal_deposit.yaml rename to hasura/metadata/databases/callisto/tables/public_proposal_deposit.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal_staking_pool_snapshot.yaml b/hasura/metadata/databases/callisto/tables/public_proposal_staking_pool_snapshot.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_proposal_staking_pool_snapshot.yaml rename to hasura/metadata/databases/callisto/tables/public_proposal_staking_pool_snapshot.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal_tally_result.yaml b/hasura/metadata/databases/callisto/tables/public_proposal_tally_result.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_proposal_tally_result.yaml rename to hasura/metadata/databases/callisto/tables/public_proposal_tally_result.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal_validator_status_snapshot.yaml b/hasura/metadata/databases/callisto/tables/public_proposal_validator_status_snapshot.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_proposal_validator_status_snapshot.yaml rename to hasura/metadata/databases/callisto/tables/public_proposal_validator_status_snapshot.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_proposal_vote.yaml b/hasura/metadata/databases/callisto/tables/public_proposal_vote.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_proposal_vote.yaml rename to hasura/metadata/databases/callisto/tables/public_proposal_vote.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_slashing_params.yaml b/hasura/metadata/databases/callisto/tables/public_slashing_params.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_slashing_params.yaml rename to hasura/metadata/databases/callisto/tables/public_slashing_params.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_software_upgrade_plan.yaml b/hasura/metadata/databases/callisto/tables/public_software_upgrade_plan.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_software_upgrade_plan.yaml rename to hasura/metadata/databases/callisto/tables/public_software_upgrade_plan.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_staking_params.yaml b/hasura/metadata/databases/callisto/tables/public_staking_params.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_staking_params.yaml rename to hasura/metadata/databases/callisto/tables/public_staking_params.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_staking_pool.yaml b/hasura/metadata/databases/callisto/tables/public_staking_pool.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_staking_pool.yaml rename to hasura/metadata/databases/callisto/tables/public_staking_pool.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_supply.yaml b/hasura/metadata/databases/callisto/tables/public_supply.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_supply.yaml rename to hasura/metadata/databases/callisto/tables/public_supply.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_token.yaml b/hasura/metadata/databases/callisto/tables/public_token.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_token.yaml rename to hasura/metadata/databases/callisto/tables/public_token.yaml diff --git a/hasura/metadata/databases/callisto/tables/public_token_holder_count.yaml b/hasura/metadata/databases/callisto/tables/public_token_holder_count.yaml new file mode 100644 index 000000000..deb08cd6c --- /dev/null +++ b/hasura/metadata/databases/callisto/tables/public_token_holder_count.yaml @@ -0,0 +1,11 @@ +table: + name: token_holder_count + schema: public +select_permissions: +- permission: + allow_aggregations: false + columns: + - denom + - holders + filter: {} + role: anonymous diff --git a/hasura/metadata/databases/bdjuno/tables/public_token_price.yaml b/hasura/metadata/databases/callisto/tables/public_token_price.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_token_price.yaml rename to hasura/metadata/databases/callisto/tables/public_token_price.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_token_price_history.yaml b/hasura/metadata/databases/callisto/tables/public_token_price_history.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_token_price_history.yaml rename to hasura/metadata/databases/callisto/tables/public_token_price_history.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_token_unit.yaml b/hasura/metadata/databases/callisto/tables/public_token_unit.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_token_unit.yaml rename to hasura/metadata/databases/callisto/tables/public_token_unit.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_transaction.yaml b/hasura/metadata/databases/callisto/tables/public_transaction.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_transaction.yaml rename to hasura/metadata/databases/callisto/tables/public_transaction.yaml diff --git a/hasura/metadata/databases/callisto/tables/public_transaction_bridge.yaml b/hasura/metadata/databases/callisto/tables/public_transaction_bridge.yaml new file mode 100644 index 000000000..df37b2035 --- /dev/null +++ b/hasura/metadata/databases/callisto/tables/public_transaction_bridge.yaml @@ -0,0 +1,38 @@ +table: + name: bridge_transaction + schema: public + +select_permissions: + - role: anonymous + permission: + columns: + - id + - init_height + - final_height + - init_hash + - final_hash + - counterparty + - counterparty_hash + - sender + - recipient + - amount + - direction + - result + - operation_ids + filter: {} +--- +table: + name: bridge_evidence + schema: public + +select_permissions: + - role: anonymous + permission: + columns: + - id + - tx_id + - height + - hash + - sender + - threshold_reached + filter: {} \ No newline at end of file diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator.yaml b/hasura/metadata/databases/callisto/tables/public_validator.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_validator.yaml rename to hasura/metadata/databases/callisto/tables/public_validator.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_commission.yaml b/hasura/metadata/databases/callisto/tables/public_validator_commission.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_validator_commission.yaml rename to hasura/metadata/databases/callisto/tables/public_validator_commission.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_description.yaml b/hasura/metadata/databases/callisto/tables/public_validator_description.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_validator_description.yaml rename to hasura/metadata/databases/callisto/tables/public_validator_description.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_info.yaml b/hasura/metadata/databases/callisto/tables/public_validator_info.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_validator_info.yaml rename to hasura/metadata/databases/callisto/tables/public_validator_info.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_signing_info.yaml b/hasura/metadata/databases/callisto/tables/public_validator_signing_info.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_validator_signing_info.yaml rename to hasura/metadata/databases/callisto/tables/public_validator_signing_info.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_status.yaml b/hasura/metadata/databases/callisto/tables/public_validator_status.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_validator_status.yaml rename to hasura/metadata/databases/callisto/tables/public_validator_status.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_validator_voting_power.yaml b/hasura/metadata/databases/callisto/tables/public_validator_voting_power.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_validator_voting_power.yaml rename to hasura/metadata/databases/callisto/tables/public_validator_voting_power.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_vesting_account.yaml b/hasura/metadata/databases/callisto/tables/public_vesting_account.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_vesting_account.yaml rename to hasura/metadata/databases/callisto/tables/public_vesting_account.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/public_vesting_period.yaml b/hasura/metadata/databases/callisto/tables/public_vesting_period.yaml similarity index 100% rename from hasura/metadata/databases/bdjuno/tables/public_vesting_period.yaml rename to hasura/metadata/databases/callisto/tables/public_vesting_period.yaml diff --git a/hasura/metadata/databases/bdjuno/tables/tables.yaml b/hasura/metadata/databases/callisto/tables/tables.yaml similarity index 84% rename from hasura/metadata/databases/bdjuno/tables/tables.yaml rename to hasura/metadata/databases/callisto/tables/tables.yaml index 920a84a31..c0063c10c 100644 --- a/hasura/metadata/databases/bdjuno/tables/tables.yaml +++ b/hasura/metadata/databases/callisto/tables/tables.yaml @@ -1,3 +1,4 @@ +- "!include public_account_denom_balance.yaml" - "!include public_account.yaml" - "!include public_average_block_time_from_genesis.yaml" - "!include public_average_block_time_per_day.yaml" @@ -28,6 +29,7 @@ - "!include public_staking_pool.yaml" - "!include public_supply.yaml" - "!include public_token.yaml" +- "!include public_token_holder_count.yaml" - "!include public_token_price.yaml" - "!include public_token_price_history.yaml" - "!include public_token_unit.yaml" @@ -41,3 +43,9 @@ - "!include public_validator_voting_power.yaml" - "!include public_vesting_account.yaml" - "!include public_vesting_period.yaml" +- "!include public_feemodel_params.yaml" +- "!include public_customparams_params.yaml" +- "!include public_assetft_params.yaml" +- "!include public_assetnft_params.yaml" +- "!include public_dex_params.yaml" +- "!include public_auth_params.yaml" diff --git a/modules/actions/config.go b/modules/actions/config.go index 1ba56a2a0..63eba2634 100644 --- a/modules/actions/config.go +++ b/modules/actions/config.go @@ -1,7 +1,7 @@ package actions import ( - "github.com/forbole/juno/v5/node/remote" + "github.com/forbole/juno/v6/node/remote" "gopkg.in/yaml.v3" ) diff --git a/modules/actions/handle_additional_operations.go b/modules/actions/handle_additional_operations.go index 8978b7de4..0d94d4699 100644 --- a/modules/actions/handle_additional_operations.go +++ b/modules/actions/handle_additional_operations.go @@ -10,9 +10,7 @@ import ( actionstypes "github.com/forbole/callisto/v4/modules/actions/types" ) -var ( - waitGroup sync.WaitGroup -) +var waitGroup sync.WaitGroup func (m *Module) RunAdditionalOperations() error { // Build the worker @@ -56,7 +54,7 @@ func (m *Module) RunAdditionalOperations() error { // trapSignal will listen for any OS signal and invoke Done on the main // WaitGroup allowing the main process to gracefully exit. func (m *Module) trapSignal() { - var sigCh = make(chan os.Signal, 1) + sigCh := make(chan os.Signal, 1) signal.Notify(sigCh, syscall.SIGTERM) signal.Notify(sigCh, syscall.SIGINT) diff --git a/modules/actions/handlers/account_balance.go b/modules/actions/handlers/account_balance.go index ba6597c81..e8e3257a5 100644 --- a/modules/actions/handlers/account_balance.go +++ b/modules/actions/handlers/account_balance.go @@ -4,7 +4,6 @@ import ( "fmt" "github.com/forbole/callisto/v4/modules/actions/types" - "github.com/rs/zerolog/log" ) diff --git a/modules/actions/handlers/delegation.go b/modules/actions/handlers/delegation.go index 0466b73b4..49d243f22 100644 --- a/modules/actions/handlers/delegation.go +++ b/modules/actions/handlers/delegation.go @@ -4,12 +4,10 @@ import ( "fmt" "strings" - "github.com/forbole/callisto/v4/modules/actions/types" - - "google.golang.org/grpc/codes" - sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/forbole/callisto/v4/modules/actions/types" "github.com/rs/zerolog/log" + "google.golang.org/grpc/codes" ) func DelegationHandler(ctx *types.Context, payload *types.Payload) (interface{}, error) { diff --git a/modules/actions/handlers/delegation_total.go b/modules/actions/handlers/delegation_total.go index 8352b71c3..e86a9c0f5 100644 --- a/modules/actions/handlers/delegation_total.go +++ b/modules/actions/handlers/delegation_total.go @@ -4,9 +4,8 @@ import ( "fmt" "strings" - "github.com/forbole/callisto/v4/modules/actions/types" - sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/forbole/callisto/v4/modules/actions/types" "github.com/rs/zerolog/log" "google.golang.org/grpc/codes" ) diff --git a/modules/actions/handlers/delegator_reward.go b/modules/actions/handlers/delegator_reward.go index fa72d27fa..7cf4ab514 100644 --- a/modules/actions/handlers/delegator_reward.go +++ b/modules/actions/handlers/delegator_reward.go @@ -4,7 +4,6 @@ import ( "fmt" "github.com/forbole/callisto/v4/modules/actions/types" - "github.com/rs/zerolog/log" ) diff --git a/modules/actions/handlers/delegator_withdraw_address.go b/modules/actions/handlers/delegator_withdraw_address.go index df53d4235..21fa5e982 100644 --- a/modules/actions/handlers/delegator_withdraw_address.go +++ b/modules/actions/handlers/delegator_withdraw_address.go @@ -4,7 +4,6 @@ import ( "fmt" "github.com/forbole/callisto/v4/modules/actions/types" - "github.com/rs/zerolog/log" ) diff --git a/modules/actions/handlers/redelegation.go b/modules/actions/handlers/redelegation.go index 7a65d1fee..a6e7f02f8 100644 --- a/modules/actions/handlers/redelegation.go +++ b/modules/actions/handlers/redelegation.go @@ -3,9 +3,8 @@ package handlers import ( "fmt" - "github.com/forbole/callisto/v4/modules/actions/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + "github.com/forbole/callisto/v4/modules/actions/types" "github.com/rs/zerolog/log" ) diff --git a/modules/actions/handlers/unbonding_delegation_total.go b/modules/actions/handlers/unbonding_delegation_total.go index 41aca678d..504f3a475 100644 --- a/modules/actions/handlers/unbonding_delegation_total.go +++ b/modules/actions/handlers/unbonding_delegation_total.go @@ -5,7 +5,6 @@ import ( "math/big" "github.com/forbole/callisto/v4/modules/actions/types" - "github.com/rs/zerolog/log" ) @@ -32,7 +31,7 @@ func UnbondingDelegationsTotal(ctx *types.Context, payload *types.Payload) (inte } // Add up total value of unbonding delegations - var totalAmount = big.NewInt(0) + totalAmount := big.NewInt(0) for _, eachUnbondingDelegation := range unbondingDelegations.UnbondingResponses { for _, entry := range eachUnbondingDelegation.Entries { totalAmount = totalAmount.Add(totalAmount, entry.Balance.BigInt()) diff --git a/modules/actions/handlers/unbonding_delegations.go b/modules/actions/handlers/unbonding_delegations.go index 2c8867511..e77023968 100644 --- a/modules/actions/handlers/unbonding_delegations.go +++ b/modules/actions/handlers/unbonding_delegations.go @@ -4,7 +4,6 @@ import ( "fmt" "github.com/forbole/callisto/v4/modules/actions/types" - "github.com/rs/zerolog/log" ) diff --git a/modules/actions/handlers/validator_commission.go b/modules/actions/handlers/validator_commission.go index 9fb7d3deb..7a359aef7 100644 --- a/modules/actions/handlers/validator_commission.go +++ b/modules/actions/handlers/validator_commission.go @@ -4,7 +4,6 @@ import ( "fmt" "github.com/forbole/callisto/v4/modules/actions/types" - "github.com/rs/zerolog/log" ) diff --git a/modules/actions/handlers/validator_delegation.go b/modules/actions/handlers/validator_delegation.go index cdc14cc5b..747c0df17 100644 --- a/modules/actions/handlers/validator_delegation.go +++ b/modules/actions/handlers/validator_delegation.go @@ -3,9 +3,8 @@ package handlers import ( "fmt" - "github.com/forbole/callisto/v4/modules/actions/types" - sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/forbole/callisto/v4/modules/actions/types" "github.com/rs/zerolog/log" ) diff --git a/modules/actions/handlers/validator_redelegations_from.go b/modules/actions/handlers/validator_redelegations_from.go index c281865c4..0a57d1a21 100644 --- a/modules/actions/handlers/validator_redelegations_from.go +++ b/modules/actions/handlers/validator_redelegations_from.go @@ -3,9 +3,8 @@ package handlers import ( "fmt" - "github.com/forbole/callisto/v4/modules/actions/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + "github.com/forbole/callisto/v4/modules/actions/types" "github.com/rs/zerolog/log" ) diff --git a/modules/actions/handlers/validator_unbonding_delegations.go b/modules/actions/handlers/validator_unbonding_delegations.go index e048f91ac..068e38fef 100644 --- a/modules/actions/handlers/validator_unbonding_delegations.go +++ b/modules/actions/handlers/validator_unbonding_delegations.go @@ -4,7 +4,6 @@ import ( "fmt" "github.com/forbole/callisto/v4/modules/actions/types" - "github.com/rs/zerolog/log" ) diff --git a/modules/actions/logging/prometheus.go b/modules/actions/logging/prometheus.go index 3e7e00417..e99736e70 100644 --- a/modules/actions/logging/prometheus.go +++ b/modules/actions/logging/prometheus.go @@ -27,19 +27,70 @@ var ActionErrorCounter = prometheus.NewCounterVec( }, []string{"path", "http_status_code"}, ) -func init() { - err := prometheus.Register(ActionResponseTime) - if err != nil { - panic(err) - } +// BlockTimeGauge represents the Telemetry gauge used to track chain block time +var BlockTimeGauge = prometheus.NewGaugeVec( + prometheus.GaugeOpts{ + Name: "callisto_block_time", + Help: "The current callisto block time.", + }, []string{ + "period", + }, +) - err = prometheus.Register(ActionCounter) - if err != nil { - panic(err) - } +// ProposalSummary represents the Telemetry summary used to track proposals +var ProposalSummary = prometheus.NewSummaryVec( + prometheus.SummaryOpts{ + Name: "callisto_proposal", + Help: "Counts successful proposals.", + }, []string{ + "validator", + }, +) + +// ValidatorBlockMismatchCounter represents the Telemetry counter used to track cases when height in processed block +// differs from the one in returned validator set. +var ValidatorBlockMismatchCounter = prometheus.NewCounter( + prometheus.CounterOpts{ + Name: "callisto_validator_block_mismatch", + Help: "Total number of mismatched block heights in validator set.", + }, +) + +// BlockRoundSummary represents the Telemetry summary used to track block proposal rounds +var BlockRoundSummary = prometheus.NewSummaryVec( + prometheus.SummaryOpts{ + Name: "callisto_block_round", + Help: "Counts block rounds.", + }, []string{ + "round", + }, +) - err = prometheus.Register(ActionErrorCounter) - if err != nil { - panic(err) +// VoteTimeHistogram represents the Telemetry histogram used to track voting times +var VoteTimeHistogram = prometheus.NewHistogramVec( + prometheus.HistogramOpts{ + Name: "callisto_vote_time", + Help: "Measures time required to vote.", + Buckets: []float64{250, 500, 750, 1000, 1500, 2000, 2500, 3000, 4000, 5000, 6000, 7000}, + }, []string{ + "proposer", + "voter", + }, +) + +func init() { + for _, c := range []prometheus.Collector{ + ActionResponseTime, + ActionCounter, + ActionErrorCounter, + BlockTimeGauge, + ProposalSummary, + ValidatorBlockMismatchCounter, + BlockRoundSummary, + VoteTimeHistogram, + } { + if err := prometheus.Register(c); err != nil { + panic(err) + } } } diff --git a/modules/actions/module.go b/modules/actions/module.go index 20e613fc0..d496e3f25 100644 --- a/modules/actions/module.go +++ b/modules/actions/module.go @@ -1,14 +1,17 @@ package actions import ( - "github.com/forbole/juno/v5/modules" - "github.com/forbole/juno/v5/node" - "github.com/forbole/juno/v5/node/builder" - nodeconfig "github.com/forbole/juno/v5/node/config" - "github.com/forbole/juno/v5/types/config" - "github.com/forbole/juno/v5/types/params" + "time" + "github.com/cosmos/cosmos-sdk/codec" + authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" modulestypes "github.com/forbole/callisto/v4/modules/types" + "github.com/forbole/juno/v6/modules" + "github.com/forbole/juno/v6/node" + "github.com/forbole/juno/v6/node/builder" + nodeconfig "github.com/forbole/juno/v6/node/config" + "github.com/forbole/juno/v6/types/config" + "github.com/rs/zerolog/log" ) const ( @@ -26,7 +29,7 @@ type Module struct { sources *modulestypes.Sources } -func NewModule(cfg config.Config, encodingConfig params.EncodingConfig) *Module { +func NewModule(cfg config.Config, cdc codec.Codec, sources *modulestypes.Sources) *Module { bz, err := cfg.GetBytes() if err != nil { panic(err) @@ -42,21 +45,26 @@ func NewModule(cfg config.Config, encodingConfig params.EncodingConfig) *Module nodeCfg = nodeconfig.NewConfig(nodeconfig.TypeRemote, actionsCfg.Node) } - // Build the node - junoNode, err := builder.BuildNode(nodeCfg, encodingConfig) - if err != nil { - panic(err) - } + var node node.Node + if cfg.Node.Type == nodeconfig.TypeLocal { + log.Warn().Str("module", ModuleName).Msg("local node is not supported for actions module, please ensure actions module is removed from the configuration") - // Build the sources - sources, err := modulestypes.BuildSources(nodeCfg, encodingConfig) - if err != nil { - panic(err) + // Sleep for 3 seconds to allow the user to see the warning + time.Sleep(3 * time.Second) + } else { + // Build the node + txConfig := authtx.NewTxConfig(cdc, authtx.DefaultSignModes) + junoNode, err := builder.BuildNode(nodeCfg, txConfig, cdc) + if err != nil { + panic(err) + } + + node = junoNode } return &Module{ cfg: actionsCfg, - node: junoNode, + node: node, sources: sources, } } diff --git a/modules/actions/types/handler.go b/modules/actions/types/handler.go index a9716fe70..bbd1a932b 100644 --- a/modules/actions/types/handler.go +++ b/modules/actions/types/handler.go @@ -1,11 +1,8 @@ package types import ( - "fmt" - - "github.com/forbole/juno/v5/node" - modulestypes "github.com/forbole/callisto/v4/modules/types" + "github.com/forbole/juno/v6/node" ) // Context contains the data about a Hasura actions worker execution @@ -25,11 +22,7 @@ func NewContext(node node.Node, sources *modulestypes.Sources) *Context { // GetHeight uses the latest height when the input height is empty from graphql request func (c *Context) GetHeight(payload *Payload) (int64, error) { if payload == nil || payload.Input.Height == 0 { - latestHeight, err := c.node.LatestHeight() - if err != nil { - return 0, fmt.Errorf("error while getting chain latest block height: %s", err) - } - return latestHeight, nil + return 0, nil } return payload.Input.Height, nil diff --git a/modules/actions/types/response.go b/modules/actions/types/response.go index f1764ca3d..a63f20f45 100644 --- a/modules/actions/types/response.go +++ b/modules/actions/types/response.go @@ -3,7 +3,7 @@ package types import ( "time" - sdkmath "cosmossdk.io/math" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/query" stakingtype "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -96,6 +96,6 @@ type Redelegation struct { } type RedelegationEntry struct { - CompletionTime time.Time `json:"completion_time"` - Balance sdkmath.Int `json:"balance"` + CompletionTime time.Time `json:"completion_time"` + Balance math.Int `json:"balance"` } diff --git a/modules/actions/types/worker.go b/modules/actions/types/worker.go index 984b67628..9cd0b7ba5 100644 --- a/modules/actions/types/worker.go +++ b/modules/actions/types/worker.go @@ -8,7 +8,6 @@ import ( "time" "github.com/forbole/callisto/v4/modules/actions/logging" - "github.com/rs/zerolog/log" ) @@ -102,7 +101,6 @@ func (w *ActionsWorker) Start(host string, port uint) { } err := server.ListenAndServe() - if err != nil { panic(err) } diff --git a/modules/addresses/handle_msg.go b/modules/addresses/handle_msg.go new file mode 100644 index 000000000..f5195200e --- /dev/null +++ b/modules/addresses/handle_msg.go @@ -0,0 +1,94 @@ +package addresses + +import ( + "encoding/json" + "strings" + + tmtypes "github.com/cometbft/cometbft/abci/types" + sdk "github.com/cosmos/cosmos-sdk/types" + juno "github.com/forbole/juno/v6/types" + "github.com/samber/lo" +) + +// HandleMsg implements MessageModule +func (m *Module) HandleMsg(_ int, msg juno.Message, tx *juno.Transaction) error { + if len(tx.Events) == 0 { + return nil + } + + addresses, err := m.collectAddresses(msg, tx) + if err != nil { + return err + } + + return m.db.SaveMessage( + int64(tx.Height), + tx.TxHash, + msg, + addresses, + ) +} + +func (m *Module) collectAddresses(msg juno.Message, tx *juno.Transaction) ([]string, error) { + // get the involved addresses with general parser first + messageAddresses, err := m.messageParser(tx) + if err != nil { + return nil, err + } + + addresses := make(map[string]struct{}) + for _, address := range messageAddresses { + addresses[address] = struct{}{} + } + // add address from event values + addBech32EventValues(addresses, tx.Events) + if err := addBech32MsgValues(addresses, msg); err != nil { + return nil, err + } + + return lo.Keys(addresses), nil +} + +func addBech32MsgValues(addressSet map[string]struct{}, msg juno.Message) error { + objects := []interface{}{map[string]interface{}{}} + if err := json.Unmarshal(msg.GetBytes(), &objects[0]); err != nil { + return err + } + + for len(objects) > 0 { + object := objects[len(objects)-1] + objects = objects[:len(objects)-1] + + switch v := object.(type) { + case map[string]interface{}: + for _, o := range v { + objects = append(objects, o) + } + case []interface{}: + objects = append(objects, v...) + case string: + if isBech32Address(v) { + addressSet[v] = struct{}{} + } + } + } + + return nil +} + +func addBech32EventValues(addressSet map[string]struct{}, events []tmtypes.Event) { + for _, ev := range sdk.StringifyEvents(events) { + for _, attrItem := range ev.Attributes { + address := strings.Trim(strings.TrimSpace(attrItem.Value), `"`) + if !isBech32Address(address) { + continue + } + addressSet[address] = struct{}{} + } + } +} + +func isBech32Address(address string) bool { + _, err := sdk.AccAddressFromBech32(address) + return err == nil +} diff --git a/modules/addresses/module.go b/modules/addresses/module.go new file mode 100644 index 000000000..cfcddef67 --- /dev/null +++ b/modules/addresses/module.go @@ -0,0 +1,37 @@ +package addresses + +import ( + "github.com/cosmos/cosmos-sdk/codec" + "github.com/forbole/callisto/v4/database" + "github.com/forbole/juno/v6/modules" + junomessages "github.com/forbole/juno/v6/modules/messages" +) + +var ( + _ modules.Module = &Module{} + _ modules.MessageModule = &Module{} +) + +// Module represents the x/asset/ft module +type Module struct { + cdc codec.Codec + db *database.Db + messageParser junomessages.MessageAddressesParser +} + +// NewModule returns a new Module instance +func NewModule( + messageParser junomessages.MessageAddressesParser, + cdc codec.Codec, db *database.Db, +) *Module { + return &Module{ + cdc: cdc, + db: db, + messageParser: messageParser, + } +} + +// Name implements modules.Module +func (m *Module) Name() string { + return "addresses" +} diff --git a/modules/assetft/handle_genesis.go b/modules/assetft/handle_genesis.go new file mode 100644 index 000000000..40f61272c --- /dev/null +++ b/modules/assetft/handle_genesis.go @@ -0,0 +1,32 @@ +package assetft + +import ( + "encoding/json" + "fmt" + + tmtypes "github.com/cometbft/cometbft/types" + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" + + assetfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/ft/types" +) + +// HandleGenesis implements GenesisModule +func (m *Module) HandleGenesis(doc *tmtypes.GenesisDoc, appState map[string]json.RawMessage) error { + log.Debug().Str("module", "assetft").Msg("parsing genesis") + + // Read the genesis state + var genState assetfttypes.GenesisState + err := m.cdc.UnmarshalJSON(appState[assetfttypes.ModuleName], &genState) + if err != nil { + return fmt.Errorf("error while unmarshaling assetft state: %s", err) + } + + // Save the params + err = m.db.SaveAssetFTParams(types.NewAssetFTParams(genState.Params, doc.InitialHeight)) + if err != nil { + return fmt.Errorf("error while storing genesis assetft params: %s", err) + } + + return nil +} diff --git a/modules/assetft/module.go b/modules/assetft/module.go new file mode 100644 index 000000000..86c246f50 --- /dev/null +++ b/modules/assetft/module.go @@ -0,0 +1,37 @@ +package assetft + +import ( + "github.com/cosmos/cosmos-sdk/codec" + "github.com/forbole/callisto/v4/database" + assetftsource "github.com/forbole/callisto/v4/modules/assetft/source" + "github.com/forbole/juno/v6/modules" +) + +var ( + _ modules.Module = &Module{} + _ modules.GenesisModule = &Module{} +) + +// Module represents the x/asset/ft module +type Module struct { + cdc codec.Codec + db *database.Db + source assetftsource.Source +} + +// NewModule returns a new Module instance +func NewModule( + source assetftsource.Source, + cdc codec.Codec, db *database.Db, +) *Module { + return &Module{ + cdc: cdc, + db: db, + source: source, + } +} + +// Name implements modules.Module +func (m *Module) Name() string { + return "assetft" +} diff --git a/modules/assetft/source/remote/source.go b/modules/assetft/source/remote/source.go new file mode 100644 index 000000000..c331b88dc --- /dev/null +++ b/modules/assetft/source/remote/source.go @@ -0,0 +1,34 @@ +package remote + +import ( + assetftsource "github.com/forbole/callisto/v4/modules/assetft/source" + "github.com/forbole/juno/v6/node/remote" + + assetfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/ft/types" +) + +var _ assetftsource.Source = &Source{} + +// Source implements assetftsource.Source using a remote node +type Source struct { + *remote.Source + assetftClient assetfttypes.QueryClient +} + +// NewSource returns a new Source instance +func NewSource(source *remote.Source, assetftClient assetfttypes.QueryClient) *Source { + return &Source{ + Source: source, + assetftClient: assetftClient, + } +} + +// GetParams implements assetftsource.Source +func (s Source) GetParams(height int64) (assetfttypes.Params, error) { + res, err := s.assetftClient.Params(remote.GetHeightRequestContext(s.Ctx, height), &assetfttypes.QueryParamsRequest{}) + if err != nil { + return assetfttypes.Params{}, err + } + + return res.Params, nil +} diff --git a/modules/assetft/source/source.go b/modules/assetft/source/source.go new file mode 100644 index 000000000..f8c0101e2 --- /dev/null +++ b/modules/assetft/source/source.go @@ -0,0 +1,9 @@ +package source + +import ( + assetfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/ft/types" +) + +type Source interface { + GetParams(height int64) (assetfttypes.Params, error) +} diff --git a/modules/assetft/utils_params.go b/modules/assetft/utils_params.go new file mode 100644 index 000000000..647831617 --- /dev/null +++ b/modules/assetft/utils_params.go @@ -0,0 +1,21 @@ +package assetft + +import ( + "fmt" + + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" +) + +// UpdateParams gets the updated params and stores them inside the database +func (m *Module) UpdateParams(height int64) error { + log.Debug().Str("module", "assetft").Int64("height", height). + Msg("updating params") + + params, err := m.source.GetParams(height) + if err != nil { + return fmt.Errorf("error while getting params: %s", err) + } + + return m.db.SaveAssetFTParams(types.NewAssetFTParams(params, height)) +} diff --git a/modules/assetnft/handle_genesis.go b/modules/assetnft/handle_genesis.go new file mode 100644 index 000000000..a25bdff81 --- /dev/null +++ b/modules/assetnft/handle_genesis.go @@ -0,0 +1,32 @@ +package assetnft + +import ( + "encoding/json" + "fmt" + + tmtypes "github.com/cometbft/cometbft/types" + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" + + assetnfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/nft/types" +) + +// HandleGenesis implements GenesisModule +func (m *Module) HandleGenesis(doc *tmtypes.GenesisDoc, appState map[string]json.RawMessage) error { + log.Debug().Str("module", "assetnft").Msg("parsing genesis") + + // Read the genesis state + var genState assetnfttypes.GenesisState + err := m.cdc.UnmarshalJSON(appState[assetnfttypes.ModuleName], &genState) + if err != nil { + return fmt.Errorf("error while unmarshaling assetnft state: %s", err) + } + + // Save the params + err = m.db.SaveAssetNFTParams(types.NewAssetNFTParams(genState.Params, doc.InitialHeight)) + if err != nil { + return fmt.Errorf("error while storing genesis assetnft params: %s", err) + } + + return nil +} diff --git a/modules/assetnft/module.go b/modules/assetnft/module.go new file mode 100644 index 000000000..4a806e9d6 --- /dev/null +++ b/modules/assetnft/module.go @@ -0,0 +1,37 @@ +package assetnft + +import ( + "github.com/cosmos/cosmos-sdk/codec" + "github.com/forbole/callisto/v4/database" + assetnftsource "github.com/forbole/callisto/v4/modules/assetnft/source" + "github.com/forbole/juno/v6/modules" +) + +var ( + _ modules.Module = &Module{} + _ modules.GenesisModule = &Module{} +) + +// Module represents the x/asset/nft module +type Module struct { + cdc codec.Codec + db *database.Db + source assetnftsource.Source +} + +// NewModule returns a new Module instance +func NewModule( + source assetnftsource.Source, + cdc codec.Codec, db *database.Db, +) *Module { + return &Module{ + cdc: cdc, + db: db, + source: source, + } +} + +// Name implements modules.Module +func (m *Module) Name() string { + return "assetnft" +} diff --git a/modules/assetnft/source/remote/source.go b/modules/assetnft/source/remote/source.go new file mode 100644 index 000000000..683599142 --- /dev/null +++ b/modules/assetnft/source/remote/source.go @@ -0,0 +1,34 @@ +package remote + +import ( + assetnftsource "github.com/forbole/callisto/v4/modules/assetnft/source" + "github.com/forbole/juno/v6/node/remote" + + assetnfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/nft/types" +) + +var _ assetnftsource.Source = &Source{} + +// Source implements assetnftsource.Source using a remote node +type Source struct { + *remote.Source + assetnftClient assetnfttypes.QueryClient +} + +// NewSource returns a new Source instance +func NewSource(source *remote.Source, assetnftClient assetnfttypes.QueryClient) *Source { + return &Source{ + Source: source, + assetnftClient: assetnftClient, + } +} + +// GetParams implements assetnftsource.Source +func (s Source) GetParams(height int64) (assetnfttypes.Params, error) { + res, err := s.assetnftClient.Params(remote.GetHeightRequestContext(s.Ctx, height), &assetnfttypes.QueryParamsRequest{}) + if err != nil { + return assetnfttypes.Params{}, err + } + + return res.Params, nil +} diff --git a/modules/assetnft/source/source.go b/modules/assetnft/source/source.go new file mode 100644 index 000000000..2ec7d1fe3 --- /dev/null +++ b/modules/assetnft/source/source.go @@ -0,0 +1,9 @@ +package source + +import ( + assetnfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/nft/types" +) + +type Source interface { + GetParams(height int64) (assetnfttypes.Params, error) +} diff --git a/modules/assetnft/utils_params.go b/modules/assetnft/utils_params.go new file mode 100644 index 000000000..2a726fe2b --- /dev/null +++ b/modules/assetnft/utils_params.go @@ -0,0 +1,21 @@ +package assetnft + +import ( + "fmt" + + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" +) + +// UpdateParams gets the updated params and stores them inside the database +func (m *Module) UpdateParams(height int64) error { + log.Debug().Str("module", "assetnft").Int64("height", height). + Msg("updating params") + + params, err := m.source.GetParams(height) + if err != nil { + return fmt.Errorf("error while getting params: %s", err) + } + + return m.db.SaveAssetNFTParams(types.NewAssetNFTParams(params, height)) +} diff --git a/modules/auth/auth_accounts.go b/modules/auth/auth_accounts.go index d14b24c51..dfaae4bdf 100644 --- a/modules/auth/auth_accounts.go +++ b/modules/auth/auth_accounts.go @@ -5,9 +5,8 @@ import ( "github.com/cosmos/cosmos-sdk/codec" authttypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/rs/zerolog/log" - "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" ) // GetGenesisAccounts parses the given appState and returns the genesis accounts @@ -39,7 +38,7 @@ func GetAccounts(height int64, addresses []string) []types.Account { log.Debug().Str("module", "auth").Str("operation", "accounts").Msg("getting accounts data") // Get all the accounts information - var accounts = make([]types.Account, len(addresses)) + accounts := make([]types.Account, len(addresses)) for index, address := range addresses { accounts[index] = types.NewAccount(address) } diff --git a/modules/auth/handle_genesis.go b/modules/auth/handle_genesis.go index 75346d050..1bfe2cbcd 100644 --- a/modules/auth/handle_genesis.go +++ b/modules/auth/handle_genesis.go @@ -5,12 +5,13 @@ import ( "fmt" tmtypes "github.com/cometbft/cometbft/types" - + authttypes "github.com/cosmos/cosmos-sdk/x/auth/types" + juno "github.com/forbole/callisto/v4/types" "github.com/rs/zerolog/log" ) // HandleGenesis implements modules.GenesisModule -func (m *Module) HandleGenesis(_ *tmtypes.GenesisDoc, appState map[string]json.RawMessage) error { +func (m *Module) HandleGenesis(doc *tmtypes.GenesisDoc, appState map[string]json.RawMessage) error { log.Debug().Str("module", "auth").Msg("parsing genesis") accounts, err := GetGenesisAccounts(appState, m.cdc) @@ -31,5 +32,15 @@ func (m *Module) HandleGenesis(_ *tmtypes.GenesisDoc, appState map[string]json.R return fmt.Errorf("error while storing genesis vesting accounts: %s", err) } + var genState authttypes.GenesisState + if err := m.cdc.UnmarshalJSON(appState[authttypes.ModuleName], &genState); err != nil { + return err + } + + err = m.db.SaveAuthParams(juno.NewAuthParams(genState.Params, doc.InitialHeight)) + if err != nil { + return fmt.Errorf("error while storing genesis auth params: %s", err) + } + return nil } diff --git a/modules/auth/handle_msg.go b/modules/auth/handle_msg.go index a9b60bcc9..6bd1fda88 100644 --- a/modules/auth/handle_msg.go +++ b/modules/auth/handle_msg.go @@ -5,50 +5,57 @@ import ( "time" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/authz" - "github.com/cosmos/gogoproto/proto" - juno "github.com/forbole/juno/v5/types" - "github.com/rs/zerolog/log" - authttypes "github.com/cosmos/cosmos-sdk/x/auth/types" vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" - - "github.com/forbole/callisto/v4/modules/utils" + moduleutils "github.com/forbole/callisto/v4/modules/utils" "github.com/forbole/callisto/v4/types" + "github.com/forbole/callisto/v4/utils" + juno "github.com/forbole/juno/v6/types" + "github.com/rs/zerolog/log" ) +var msgFilter = map[string]bool{ + "/cosmos.vesting.v1beta1.MsgCreateVestingAccount": true, +} + // HandleMsgExec implements modules.AuthzMessageModule -func (m *Module) HandleMsgExec(index int, _ *authz.MsgExec, _ int, executedMsg sdk.Msg, tx *juno.Tx) error { +func (m *Module) HandleMsgExec(index, _ int, executedMsg juno.Message, tx *juno.Transaction) error { return m.HandleMsg(index, executedMsg, tx) } // HandleMsg implements modules.MessageModule -func (m *Module) HandleMsg(_ int, msg sdk.Msg, tx *juno.Tx) error { +func (m *Module) HandleMsg(_ int, msg juno.Message, tx *juno.Transaction) error { addresses, err := m.messagesParser(tx) if err != nil { log.Error().Str("module", "auth").Err(err). Str("operation", "refresh account"). - Msgf("error while refreshing accounts after message of type %s", proto.MessageName(msg)) + Msgf("error while refreshing accounts after message of type %s", msg.GetType()) } - if cosmosMsg, ok := msg.(*vestingtypes.MsgCreateVestingAccount); ok { + if _, ok := msgFilter[msg.GetType()]; !ok { + return nil + } + + log.Debug().Str("module", "auth").Str("hash", tx.TxHash).Uint64("height", tx.Height).Msg(fmt.Sprintf("handling auth message %s", msg.GetType())) + + if msg.GetType() == "/cosmos.vesting.v1beta1.MsgCreateVestingAccount" { // Store tx timestamp as start_time of the created vesting account timestamp, err := time.Parse(time.RFC3339, tx.Timestamp) if err != nil { return fmt.Errorf("error while parsing time: %s", err) } + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &vestingtypes.MsgCreateVestingAccount{}) err = m.handleMsgCreateVestingAccount(cosmosMsg, timestamp) if err != nil { return fmt.Errorf("error while handling MsgCreateVestingAccount %s", err) } } - return m.RefreshAccounts(tx.Height, utils.FilterNonAccountAddresses(addresses)) + return m.RefreshAccounts(int64(tx.Height), moduleutils.FilterNonAccountAddresses(addresses)) } func (m *Module) handleMsgCreateVestingAccount(msg *vestingtypes.MsgCreateVestingAccount, txTimestamp time.Time) error { - accAddress, err := sdk.AccAddressFromBech32(msg.ToAddress) if err != nil { return fmt.Errorf("error while converting account address %s", err) @@ -60,9 +67,13 @@ func (m *Module) handleMsgCreateVestingAccount(msg *vestingtypes.MsgCreateVestin return fmt.Errorf("error while storing vesting account: %s", err) } - bva := vestingtypes.NewBaseVestingAccount( + bva, err := vestingtypes.NewBaseVestingAccount( authttypes.NewBaseAccountWithAddress(accAddress), msg.Amount, msg.EndTime, ) + if err != nil { + return fmt.Errorf("error while new base vesting account: %s", err) + } + err = m.db.StoreBaseVestingAccountFromMsg(bva, txTimestamp) if err != nil { return fmt.Errorf("error while storing base vesting account from msg %s", err) diff --git a/modules/auth/module.go b/modules/auth/module.go index 7058543df..1593a8f5e 100644 --- a/modules/auth/module.go +++ b/modules/auth/module.go @@ -2,32 +2,36 @@ package auth import ( "github.com/cosmos/cosmos-sdk/codec" - "github.com/forbole/callisto/v4/database" - - "github.com/forbole/juno/v5/modules" - "github.com/forbole/juno/v5/modules/messages" + authsource "github.com/forbole/callisto/v4/modules/auth/source" + "github.com/forbole/juno/v6/modules" + "github.com/forbole/juno/v6/modules/messages" ) var ( - _ modules.Module = &Module{} - _ modules.GenesisModule = &Module{} - _ modules.MessageModule = &Module{} + _ modules.Module = &Module{} + _ modules.GenesisModule = &Module{} + _ modules.MessageModule = &Module{} + _ modules.AuthzMessageModule = &Module{} ) // Module represents the x/auth module type Module struct { cdc codec.Codec db *database.Db + source authsource.Source messagesParser messages.MessageAddressesParser } // NewModule builds a new Module instance -func NewModule(messagesParser messages.MessageAddressesParser, cdc codec.Codec, db *database.Db) *Module { +func NewModule(source authsource.Source, messagesParser messages.MessageAddressesParser, cdc codec.Codec, + db *database.Db, +) *Module { return &Module{ messagesParser: messagesParser, cdc: cdc, db: db, + source: source, } } diff --git a/modules/auth/source/remote/source.go b/modules/auth/source/remote/source.go new file mode 100644 index 000000000..dc115e8dc --- /dev/null +++ b/modules/auth/source/remote/source.go @@ -0,0 +1,33 @@ +package remote + +import ( + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + authsource "github.com/forbole/callisto/v4/modules/auth/source" + "github.com/forbole/juno/v6/node/remote" +) + +var _ authsource.Source = &Source{} + +// Source implements authsource.Source using a remote node +type Source struct { + *remote.Source + authClient authtypes.QueryClient +} + +// NewSource returns a new Source instance +func NewSource(source *remote.Source, authClient authtypes.QueryClient) *Source { + return &Source{ + Source: source, + authClient: authClient, + } +} + +// GetParams implements authsource.Source +func (s Source) GetParams(height int64) (authtypes.Params, error) { + res, err := s.authClient.Params(remote.GetHeightRequestContext(s.Ctx, height), &authtypes.QueryParamsRequest{}) + if err != nil { + return authtypes.Params{}, err + } + + return res.Params, nil +} diff --git a/modules/auth/source/source.go b/modules/auth/source/source.go new file mode 100644 index 000000000..ae15fb76c --- /dev/null +++ b/modules/auth/source/source.go @@ -0,0 +1,9 @@ +package source + +import ( + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" +) + +type Source interface { + GetParams(height int64) (authtypes.Params, error) +} diff --git a/modules/auth/utils_params.go b/modules/auth/utils_params.go new file mode 100644 index 000000000..c0b43c4fc --- /dev/null +++ b/modules/auth/utils_params.go @@ -0,0 +1,21 @@ +package auth + +import ( + "fmt" + + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" +) + +// UpdateParams gets the updated params and stores them inside the database +func (m *Module) UpdateParams(height int64) error { + log.Debug().Str("module", "auth").Int64("height", height). + Msg("updating params") + + params, err := m.source.GetParams(height) + if err != nil { + return fmt.Errorf("error while getting params: %s", err) + } + + return m.db.SaveAuthParams(types.NewAuthParams(params, height)) +} diff --git a/modules/bank/handle_msg.go b/modules/bank/handle_msg.go new file mode 100644 index 000000000..080c491fe --- /dev/null +++ b/modules/bank/handle_msg.go @@ -0,0 +1,108 @@ +package bank + +import ( + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + juno "github.com/forbole/juno/v6/types" +) + +// HandleMsg implements modules.MessageModule +func (m *Module) HandleMsg(index int, _ juno.Message, tx *juno.Transaction) error { + if err := m.UpdateAccountsBalances(index, tx); err != nil { + return err + } + + return nil +} + +func (m *Module) UpdateAccountsBalances(index int, tx *juno.Transaction) error { + if len(tx.Logs) == 0 { + return nil + } + + if err := m.updateBalanceForEventType(index, tx, banktypes.EventTypeCoinReceived); err != nil { + return err + } + + return m.updateBalanceForEventType(index, tx, banktypes.EventTypeCoinSpent) +} + +func (m *Module) updateBalanceForEventType(index int, tx *juno.Transaction, eventType string) error { + accountAttribute := banktypes.AttributeKeySpender + if eventType == banktypes.EventTypeCoinReceived { + accountAttribute = banktypes.AttributeKeyReceiver + } + + block, err := m.db.GetLastBlockHeightAndTimestamp() + if err != nil { + return fmt.Errorf("error while getting latest block height: %s", err) + } + + events := FindAllEventsByType(index, tx, eventType) + type addressDenom struct { + address string + denom string + } + addressDenomMap := make(map[addressDenom]interface{}) + for _, event := range events { + account, err := tx.FindAttributeByKey(event, accountAttribute) + if err != nil { + return err + } + + coinString, err := tx.FindAttributeByKey(event, sdk.AttributeKeyAmount) + if err != nil { + return err + } + + coin, err := sdk.ParseCoinNormalized(coinString) + if err != nil { + return err + } + + // since the main governance token exists in every transaction, we have decided to skip processing + // that token. + if coin.Denom == m.baseDenom { + continue + } + + addressDenomMap[addressDenom{address: account, denom: coin.Denom}] = true + } + + for ad := range addressDenomMap { + storedBalance, found, err := m.db.GetAccountDenomBalance(ad.address, ad.denom) + if err != nil { + return err + } + if found && storedBalance.Height >= block.Height { + continue + } + + quriedBalance, err := m.keeper.GetAccountDenomBalance(ad.address, ad.denom, block.Height) + if err != nil { + return err + } + + if quriedBalance == nil { + return fmt.Errorf("query balance return nil, account: %s, denom:%s", ad.address, ad.denom) + } + + if err := m.db.SaveAccountDenomBalance(ad.address, *quriedBalance, block.Height); err != nil { + return err + } + } + + return nil +} + +func FindAllEventsByType(index int, tx *juno.Transaction, eventType string) []sdk.StringEvent { + var list []sdk.StringEvent + for _, ev := range tx.Logs[index].Events { + if ev.Type == eventType { + list = append(list, ev) + } + } + return list +} diff --git a/modules/bank/handle_periodic_operations.go b/modules/bank/handle_periodic_operations.go index a282d6afb..169eb51cb 100644 --- a/modules/bank/handle_periodic_operations.go +++ b/modules/bank/handle_periodic_operations.go @@ -3,10 +3,9 @@ package bank import ( "fmt" + "github.com/forbole/callisto/v4/modules/utils" "github.com/go-co-op/gocron" "github.com/rs/zerolog/log" - - "github.com/forbole/callisto/v4/modules/utils" ) // RegisterPeriodicOperations implements modules.Module diff --git a/modules/bank/module.go b/modules/bank/module.go index ac16161e2..41f2355bb 100644 --- a/modules/bank/module.go +++ b/modules/bank/module.go @@ -2,18 +2,18 @@ package bank import ( "github.com/cosmos/cosmos-sdk/codec" - "github.com/forbole/callisto/v4/database" "github.com/forbole/callisto/v4/modules/bank/source" + "github.com/forbole/juno/v6/modules" + junomessages "github.com/forbole/juno/v6/modules/messages" - junomessages "github.com/forbole/juno/v5/modules/messages" - - "github.com/forbole/juno/v5/modules" + "github.com/CoreumFoundation/coreum/v5/pkg/config/constant" ) var ( _ modules.Module = &Module{} _ modules.PeriodicOperationsModule = &Module{} + _ modules.MessageModule = &Module{} ) // Module represents the x/bank module @@ -23,17 +23,23 @@ type Module struct { messageParser junomessages.MessageAddressesParser keeper source.Source + baseDenom string } // NewModule returns a new Module instance func NewModule( - messageParser junomessages.MessageAddressesParser, keeper source.Source, cdc codec.Codec, db *database.Db, + messageParser junomessages.MessageAddressesParser, + keeper source.Source, + cdc codec.Codec, + db *database.Db, + addressPrefix string, ) *Module { return &Module{ cdc: cdc, db: db, messageParser: messageParser, keeper: keeper, + baseDenom: getBaseTokenFromAddressPrefix(addressPrefix), } } @@ -41,3 +47,16 @@ func NewModule( func (m *Module) Name() string { return "bank" } + +func getBaseTokenFromAddressPrefix(addressPrefix string) string { + switch addressPrefix { + case constant.AddressPrefixMain: + return constant.DenomMain + case constant.AddressPrefixTest: + return constant.DenomTest + case constant.AddressPrefixDev: + return constant.DenomDev + default: + panic("unknown address prefix: " + addressPrefix) + } +} diff --git a/modules/bank/source/local/source.go b/modules/bank/source/local/source.go index 6ad623c02..cf2872e66 100644 --- a/modules/bank/source/local/source.go +++ b/modules/bank/source/local/source.go @@ -3,19 +3,15 @@ package local import ( "fmt" + sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/query" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/forbole/juno/v5/node/local" - "github.com/forbole/callisto/v4/modules/bank/source" "github.com/forbole/callisto/v4/types" + "github.com/forbole/juno/v6/node/local" ) -var ( - _ source.Source = &Source{} -) +var _ source.Source = &Source{} // Source represents the implementation of the bank keeper that works on a local node type Source struct { @@ -60,7 +56,7 @@ func (s Source) GetSupply(height int64) (sdk.Coins, error) { var coins []sdk.Coin var nextKey []byte - var stop = false + stop := false for !stop { res, err := s.q.TotalSupply( sdk.WrapSDKContext(ctx), @@ -96,3 +92,17 @@ func (s Source) GetAccountBalance(address string, height int64) ([]sdk.Coin, err return balRes.Balances, nil } + +// GetAccountDenomBalance implements bankkeeper.Source +func (s Source) GetAccountDenomBalance(address, denom string, height int64) (*sdk.Coin, error) { + ctx, err := s.LoadHeight(height) + if err != nil { + return nil, fmt.Errorf("error while loading height: %s", err) + } + balRes, err := s.q.Balance(sdk.WrapSDKContext(ctx), &banktypes.QueryBalanceRequest{Address: address, Denom: denom}) + if err != nil { + return nil, fmt.Errorf("error while getting all balances: %s", err) + } + + return balRes.Balance, nil +} diff --git a/modules/bank/source/remote/source.go b/modules/bank/source/remote/source.go index 4e50cfcc0..a313baccc 100644 --- a/modules/bank/source/remote/source.go +++ b/modules/bank/source/remote/source.go @@ -6,15 +6,12 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/query" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/forbole/juno/v5/node/remote" - bankkeeper "github.com/forbole/callisto/v4/modules/bank/source" "github.com/forbole/callisto/v4/types" + "github.com/forbole/juno/v6/node/remote" ) -var ( - _ bankkeeper.Source = &Source{} -) +var _ bankkeeper.Source = &Source{} type Source struct { *remote.Source @@ -56,7 +53,7 @@ func (s Source) GetSupply(height int64) (sdk.Coins, error) { var coins []sdk.Coin var nextKey []byte - var stop = false + stop := false for !stop { res, err := s.bankClient.TotalSupply( ctx, diff --git a/modules/bank/source/remote/source_actions.go b/modules/bank/source/remote/source_actions.go index 8e9927ec5..24ffce503 100644 --- a/modules/bank/source/remote/source_actions.go +++ b/modules/bank/source/remote/source_actions.go @@ -5,13 +5,11 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/forbole/callisto/v4/utils" ) // GetAccountBalances implements bankkeeper.Source func (s Source) GetAccountBalance(address string, height int64) ([]sdk.Coin, error) { - // Get account balance at certain height ctx := utils.GetHeightRequestContext(s.Ctx, height) balRes, err := s.bankClient.AllBalances(ctx, &banktypes.QueryAllBalancesRequest{Address: address}) @@ -21,3 +19,15 @@ func (s Source) GetAccountBalance(address string, height int64) ([]sdk.Coin, err return balRes.Balances, nil } + +// GetAccountDenomBalance implements bankkeeper.Source +func (s Source) GetAccountDenomBalance(address, denom string, height int64) (*sdk.Coin, error) { + // Get account balance at certain height + ctx := utils.GetHeightRequestContext(s.Ctx, height) + balRes, err := s.bankClient.Balance(ctx, &banktypes.QueryBalanceRequest{Address: address, Denom: denom}) + if err != nil { + return nil, fmt.Errorf("error while getting all balances: %s", err) + } + + return balRes.GetBalance(), nil +} diff --git a/modules/bank/source/source.go b/modules/bank/source/source.go index 2cd5504ac..c1351c116 100644 --- a/modules/bank/source/source.go +++ b/modules/bank/source/source.go @@ -2,13 +2,13 @@ package source import ( sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/forbole/callisto/v4/types" ) type Source interface { GetBalances(addresses []string, height int64) ([]types.AccountBalance, error) GetSupply(height int64) (sdk.Coins, error) + GetAccountDenomBalance(address, denom string, height int64) (*sdk.Coin, error) // -- For hasura action -- GetAccountBalance(address string, height int64) ([]sdk.Coin, error) diff --git a/modules/bridge/handle_msg.go b/modules/bridge/handle_msg.go new file mode 100644 index 000000000..5d74ca32a --- /dev/null +++ b/modules/bridge/handle_msg.go @@ -0,0 +1,235 @@ +package bridge + +import ( + "fmt" + "strconv" + "strings" + + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + "github.com/forbole/callisto/v4/types" + "github.com/forbole/callisto/v4/utils" + juno "github.com/forbole/juno/v6/types" + "github.com/rs/zerolog/log" +) + +var msgFilter = map[string]bool{ + "/cosmwasm.wasm.v1.MsgExecuteContract": true, +} + +// HandleMsgExec implements modules.AuthzMessageModule +func (m *Module) HandleMsgExec(index, _ int, executedMsg juno.Message, tx *juno.Transaction) error { + return m.HandleMsg(index, executedMsg, tx) +} + +// HandleMsg implements modules.MessageModule +func (m *Module) HandleMsg( + _ int, msg juno.Message, tx *juno.Transaction, +) error { + if _, ok := msgFilter[msg.GetType()]; !ok { + return nil + } + + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &wasmtypes.MsgExecuteContract{}) + + // TODO: move this to a configuration + if cosmosMsg.Contract != types.BridgeContractAddress { + return nil + } + + log.Debug().Str("module", "bridge").Str("hash", tx.TxHash).Uint64("height", tx.Height).Msg(fmt.Sprintf("handling bridge message %s", msg.GetType())) + + err := m.addCoreumToXRPLTransfer(tx.Height, msg, tx) + if err != nil { + fmt.Printf("Error when adding Coreum to XRPL transfer, error: %s", err) + } + return nil +} + +// addCoreumToXRPLTransfer +func (m *Module) addCoreumToXRPLTransfer(height uint64, _ juno.Message, tx *juno.Transaction) error { + events := juno.FindEventsByType(tx.Events, "wasm") + for _, event := range events { + action, err := juno.FindAttributeByKey(event, "action") + if err != nil { + return fmt.Errorf("error while getting action attribute: %s", err) + } + switch action.Value { + case "send_to_xrpl": + sender, err := juno.FindAttributeByKey(event, "sender") + if err != nil { + return fmt.Errorf("error while getting sender attribute: %s", err) + } + recipient, err := juno.FindAttributeByKey(event, "recipient") + if err != nil { + return fmt.Errorf("error while getting recipient attribute: %s", err) + } + coin, err := juno.FindAttributeByKey(event, "coin") + if err != nil { + return fmt.Errorf("error while getting coin attribute: %s", err) + } + + operationIds, err := m.Source.GetSendToXRPLOperationIDs(recipient.Value, height) + if err != nil { + return fmt.Errorf("error while getting operation id: %s", err) + } + + // check if the operation id already exists + pendingTx, err := m.db.GetOutgoingPendingTransaction(operationIds) + if err != nil && !strings.Contains(err.Error(), "sql: no rows in result set") { + return fmt.Errorf("error while getting pending transaction: %s", err) + } + if pendingTx != nil { + return fmt.Errorf("pending transaction already exists for operation id %v", operationIds) + } + + err = m.db.SaveOutgoingTransfer(types.NewOutgoingPendingBridgeTransaction( + tx.TxHash, + height, + types.Counterparty_XRPL, + sender.Value, + recipient.Value, + coin.Value, + types.BridgeTxDir_Outgoing, + operationIds, + )) + if err != nil { + return fmt.Errorf("error while saving coreum to xrpl transaction: %s", err) + } + case "save_evidence": + operationType, err := juno.FindAttributeByKey(event, "operation_type") + if err != nil { + // xrpl tp coreum transfer does not have operation type + if err.Error() != "no attribute with key operation_type found inside event with type wasm" { + return fmt.Errorf("error while getting operation type attribute: %s", err) + } + } + + if operationType.Value != "" && operationType.Value != "coreum_to_xrpl_transfer" { + continue + } + + relayerAcc, err := juno.FindAttributeByKey(event, "sender") + if err != nil { + return fmt.Errorf("error while getting sender attribute: %s", err) + } + + threshold_reached, err := juno.FindAttributeByKey(event, "threshold_reached") + if err != nil { + return fmt.Errorf("error while getting threshold reached attribute: %s", err) + } + threshold_reached_value, err := strconv.ParseBool(threshold_reached.Value) + if err != nil { + return fmt.Errorf("error while parsing threshold reached value: %s", err) + } + + evidence := types.NewBridgeEvidence( + height, + tx.TxHash, + relayerAcc.Value, + threshold_reached_value, + ) + + if operationType.Value == "coreum_to_xrpl_transfer" { + // match operation Ids and save them + operationId, err := juno.FindAttributeByKey(event, "operation_id") + if err != nil { + return fmt.Errorf("error while getting operation id attribute: %s", err) + } + + operationIdInt, err := strconv.ParseUint(operationId.Value, 10, 32) + if err != nil { + return fmt.Errorf("error while parsing operation id: %s", err) + } + + if threshold_reached_value { + transactionResult, err := juno.FindAttributeByKey(event, "transaction_result") + if err != nil { + return fmt.Errorf("error while getting transaction result attribute: %s", err) + } + xrplTxHash, err := juno.FindAttributeByKey(event, "tx_hash") + if err != nil { + return fmt.Errorf("error while getting tx hash attribute: %s", err) + } + + err = m.db.SaveOutgoingFinalEvidence( + evidence, + uint32(operationIdInt), + types.BridgeTxResultToStr[transactionResult.Value], + xrplTxHash.Value, + ) + if err != nil { + return fmt.Errorf("error while saving evidence for operation finalization: %s", err) + } + } else { + // TODO: check if the evidences come after finalization + err = m.db.SaveOutgoingPendingEvidence( + evidence, + uint32(operationIdInt), + ) + + if err != nil { + return fmt.Errorf("error while saving evidence for pending operation: %s", err) + } + } + + } else { + // xrpl to coreum transfer + xrplHash, err := juno.FindAttributeByKey(event, "hash") + if err != nil { + return fmt.Errorf("error while getting hash attribute: %s", err) + } + recipient, err := juno.FindAttributeByKey(event, "recipient") + if err != nil { + return fmt.Errorf("error while getting recipient attribute: %s", err) + } + + if threshold_reached_value { + err = m.db.SaveIncomingFinalTxAndEvidence( + evidence, + types.Counterparty_XRPL, + xrplHash.Value, + types.BridgeTxResult_ACCEPTED, + ) + if err != nil { + return fmt.Errorf("error while saving xrpl to coreum transaction result: %s", err) + } + } else { + issuer, err := juno.FindAttributeByKey(event, "issuer") + if err != nil { + return fmt.Errorf("error while getting issuer attribute: %s", err) + } + currency, err := juno.FindAttributeByKey(event, "currency") + if err != nil { + return fmt.Errorf("error while getting currency attribute: %s", err) + } + amount, err := juno.FindAttributeByKey(event, "amount") + if err != nil { + return fmt.Errorf("error while getting amount attribute: %s", err) + } + + err = m.db.SaveIncomingPendingTxAndEvidence( + types.NewIncomingPendingBridgeTransaction( + tx.TxHash, + height, + types.Counterparty_XRPL, + xrplHash.Value, + issuer.Value, + recipient.Value, + strings.Join([]string{amount.Value, currency.Value}, ""), + types.BridgeTxDir_Incoming, + ), + evidence.Relayer, + ) + if err != nil { + return fmt.Errorf("error while saving xrpl to coreum transaction: %s", err) + } + } + if err != nil { + return fmt.Errorf("error while saving xrpl to coreum transaction evidence: %s", err) + } + } + } + + } + return nil +} diff --git a/modules/bridge/module.go b/modules/bridge/module.go new file mode 100644 index 000000000..706970e1e --- /dev/null +++ b/modules/bridge/module.go @@ -0,0 +1,34 @@ +package bridge + +import ( + "github.com/cosmos/cosmos-sdk/codec" + "github.com/forbole/callisto/v4/database" + bridgesource "github.com/forbole/callisto/v4/modules/bridge/source" + "github.com/forbole/juno/v6/modules" +) + +var ( + _ modules.MessageModule = &Module{} + _ modules.Module = &Module{} +) + +// Module represent bridge module +type Module struct { + bridgesource.Source + cdc codec.Codec + db *database.Db +} + +// NewModule returns a new Module instance +func NewModule(source bridgesource.Source, cdc codec.Codec, db *database.Db) *Module { + return &Module{ + Source: source, + cdc: cdc, + db: db, + } +} + +// Name implements modules.Module +func (m *Module) Name() string { + return "bridge" +} diff --git a/modules/bridge/source/local/source.go b/modules/bridge/source/local/source.go new file mode 100644 index 000000000..559da8cb4 --- /dev/null +++ b/modules/bridge/source/local/source.go @@ -0,0 +1,129 @@ +package local + +import ( + "context" + "encoding/json" + "fmt" + + "cosmossdk.io/errors" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + "github.com/forbole/juno/v6/node/local" + "github.com/samber/lo" + + "github.com/forbole/callisto/v4/modules/bridge/source" + "github.com/forbole/callisto/v4/types" +) + +var _ source.Source = &Source{} + +// Source implements types.Source by using a local node +type Source struct { + *local.Source + queryClient wasmtypes.QueryClient +} + +// NewSource returns a new Source instance +func NewSource(source *local.Source, queryClient wasmtypes.QueryClient) *Source { + return &Source{ + Source: source, + queryClient: queryClient, + } +} + +func (s Source) Name() string { + return "local" +} + +func (s *Source) GetSendToXRPLOperationIDs( + recipient string, + height uint64, +) ([]uint32, error) { + beforeCtx, err := s.LoadHeight(int64(height - 1)) + if err != nil { + return nil, fmt.Errorf("error while loading height: %s", err) + } + operationsBefore, err := s.getPendingOperations(beforeCtx) + if err != nil { + return nil, err + } + + afterCtx, err := s.LoadHeight(int64(height)) + if err != nil { + return nil, fmt.Errorf("error while loading height: %s", err) + } + operationsAfter, err := s.getPendingOperations(afterCtx) + if err != nil { + return nil, err + } + + operationsBeforeMap := lo.SliceToMap(operationsBefore, func(operation types.Operation) (uint32, types.Operation) { + return operation.GetOperationID(), operation + }) + + operationIDs := make([]uint32, 0) + for _, operation := range operationsAfter { + if _, ok := operationsBeforeMap[operation.GetOperationID()]; !ok { + if operation.OperationType.CoreumToXRPLTransfer == nil { + continue + } + if operation.OperationType.CoreumToXRPLTransfer.Recipient != recipient { + continue + } + operationIDs = append(operationIDs, operation.GetOperationID()) + } + } + + return operationIDs, nil +} + +// getPendingOperations returns a list of all pending operations. +func (s Source) getPendingOperations(ctx context.Context) ([]types.Operation, error) { + operations := make([]types.Operation, 0) + var startAfterKey *uint32 + for { + var res types.PendingOperationsResponse + err := s.query(ctx, map[types.QueryMethod]types.PagingUint32KeyRequest{ + types.QueryMethodPendingOperations: { + StartAfterKey: startAfterKey, + Limit: &types.Limit, + }, + }, &res) + if err != nil { + return nil, err + } + if len(res.Operations) == 0 { + break + } + operations = append(operations, res.Operations...) + startAfterKey = &res.LastKey + } + + return operations, nil +} + +func (s Source) query(ctx context.Context, request, response any) error { + payload, err := json.Marshal(request) + if err != nil { + return errors.Wrapf(err, "failed to marshal query request") + } + + query := &wasmtypes.QuerySmartContractStateRequest{ + Address: types.BridgeContractAddress, + QueryData: payload, + } + resp, err := s.queryClient.SmartContractState(ctx, query) + if err != nil { + return errors.Wrapf(err, "query failed, request:%+v", request) + } + + if err := json.Unmarshal(resp.Data, response); err != nil { + return errors.Wrapf( + err, + "failed to unmarshal wasm contract response, request:%s, response:%s", + string(payload), + string(resp.Data), + ) + } + + return nil +} diff --git a/modules/bridge/source/remote/source.go b/modules/bridge/source/remote/source.go new file mode 100644 index 000000000..6e8e7020c --- /dev/null +++ b/modules/bridge/source/remote/source.go @@ -0,0 +1,120 @@ +package local + +import ( + "context" + "encoding/json" + "fmt" + + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + "github.com/forbole/juno/v6/node/remote" + "github.com/samber/lo" + + "github.com/forbole/callisto/v4/modules/bridge/source" + "github.com/forbole/callisto/v4/types" +) + +var _ source.Source = &Source{} + +// Source implements types.Source by using a local node +type Source struct { + *remote.Source + queryClient wasmtypes.QueryClient +} + +// NewSource returns a new Source instance +func NewSource(source *remote.Source, queryClient wasmtypes.QueryClient) *Source { + return &Source{ + Source: source, + queryClient: queryClient, + } +} + +func (s Source) Name() string { + return "remote" +} + +func (s *Source) GetSendToXRPLOperationIDs( + recipient string, + height uint64, +) ([]uint32, error) { + beforeCtx := remote.GetHeightRequestContext(s.Ctx, int64(height-1)) + operationsBefore, err := s.getPendingOperations(beforeCtx) + if err != nil { + return nil, err + } + + afterCtx := remote.GetHeightRequestContext(s.Ctx, int64(height)) + operationsAfter, err := s.getPendingOperations(afterCtx) + if err != nil { + return nil, err + } + + operationsBeforeMap := lo.SliceToMap(operationsBefore, func(operation types.Operation) (uint32, types.Operation) { + return operation.GetOperationID(), operation + }) + + operationIDs := make([]uint32, 0) + for _, operation := range operationsAfter { + if _, ok := operationsBeforeMap[operation.GetOperationID()]; !ok { + if operation.OperationType.CoreumToXRPLTransfer == nil { + continue + } + if operation.OperationType.CoreumToXRPLTransfer.Recipient != recipient { + continue + } + operationIDs = append(operationIDs, operation.GetOperationID()) + } + } + + return operationIDs, nil +} + +// getPendingOperations returns a list of all pending operations. +func (s Source) getPendingOperations(ctx context.Context) ([]types.Operation, error) { + operations := make([]types.Operation, 0) + var startAfterKey *uint32 + for { + var res types.PendingOperationsResponse + err := s.query(ctx, map[types.QueryMethod]types.PagingUint32KeyRequest{ + types.QueryMethodPendingOperations: { + StartAfterKey: startAfterKey, + Limit: &types.Limit, + }, + }, &res) + if err != nil { + return nil, err + } + if len(res.Operations) == 0 { + break + } + operations = append(operations, res.Operations...) + startAfterKey = &res.LastKey + } + + return operations, nil +} + +func (s Source) query(ctx context.Context, request, response any) error { + payload, err := json.Marshal(request) + if err != nil { + return fmt.Errorf("failed to marshal query request: %w", err) + } + + query := &wasmtypes.QuerySmartContractStateRequest{ + Address: types.BridgeContractAddress, + QueryData: payload, + } + resp, err := s.queryClient.SmartContractState(ctx, query) + if err != nil { + return fmt.Errorf("query failed, request:%+v: %w", request, err) + } + + if err := json.Unmarshal(resp.Data, response); err != nil { + return fmt.Errorf("failed to unmarshal wasm contract response, request:%s, response:%s", + string(payload), + string(resp.Data)) + + } + + return nil +} diff --git a/modules/bridge/source/source.go b/modules/bridge/source/source.go new file mode 100644 index 000000000..47e3fbdf1 --- /dev/null +++ b/modules/bridge/source/source.go @@ -0,0 +1,8 @@ +package source + +type Source interface { + GetSendToXRPLOperationIDs( + recipient string, + height uint64, + ) ([]uint32, error) +} diff --git a/modules/consensus/handle_block.go b/modules/consensus/handle_block.go index f77c7a60e..bbf05dd10 100644 --- a/modules/consensus/handle_block.go +++ b/modules/consensus/handle_block.go @@ -1,18 +1,22 @@ package consensus import ( + "bytes" "fmt" - - "github.com/forbole/juno/v5/types" - - "github.com/rs/zerolog/log" + "strconv" + "time" tmctypes "github.com/cometbft/cometbft/rpc/core/types" + tmtypes "github.com/cometbft/cometbft/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/forbole/callisto/v4/modules/actions/logging" + juno "github.com/forbole/juno/v6/types" + "github.com/rs/zerolog/log" ) // HandleBlock implements modules.Module func (m *Module) HandleBlock( - b *tmctypes.ResultBlock, _ *tmctypes.ResultBlockResults, _ []*types.Tx, _ *tmctypes.ResultValidators, + b *tmctypes.ResultBlock, _ *tmctypes.ResultBlockResults, _ []*juno.Transaction, vals *tmctypes.ResultValidators, ) error { err := m.updateBlockTimeFromGenesis(b) if err != nil { @@ -20,6 +24,11 @@ func (m *Module) HandleBlock( Err(err).Msg("error while updating block time from genesis") } + logging.BlockRoundSummary.WithLabelValues(strconv.Itoa(int(b.Block.LastCommit.Round))).Observe(1.0) + + m.countProposalsByValidator(b, vals) + m.measureVotingTimes(b) + return nil } @@ -44,3 +53,82 @@ func (m *Module) updateBlockTimeFromGenesis(block *tmctypes.ResultBlock) error { newBlockTime := block.Block.Time.Sub(genesis.Time).Seconds() / float64(block.Block.Height-genesis.InitialHeight) return m.db.SaveAverageBlockTimeGenesis(newBlockTime, block.Block.Height) } + +func (m *Module) countProposalsByValidator(block *tmctypes.ResultBlock, vals *tmctypes.ResultValidators) { + if block.Block.Height != vals.BlockHeight { + log.Warn().Int64("blockHeight", block.Block.Height).Int64("valHeight", vals.BlockHeight). + Msg("block height and validator height don't match") + logging.ValidatorBlockMismatchCounter.Inc() + return + } + + // Based on https://github.com/cometbft/cometbft/blob/613d602e48adc723e41bd4c9a9ba37a95a510c7c/types/validator.go#L65 + expectedNextProposer := vals.Validators[0] + if len(vals.Validators) > 1 { + for _, v := range vals.Validators[1:] { + if v.ProposerPriority > expectedNextProposer.ProposerPriority || + (v.ProposerPriority == expectedNextProposer.ProposerPriority && + bytes.Compare(v.Address, expectedNextProposer.Address) < 0) { + expectedNextProposer = v + } + } + } + + height := block.Block.Height + currentProposer := block.Block.ProposerAddress + nextProposer := expectedNextProposer.Address + + m.mu.Lock() + defer m.mu.Unlock() + + // This handles the case when block is received in order. + if expectedProposer, exists := m.expectedProposers[height]; exists { + delete(m.expectedProposers, height) + updateProposerMetric(expectedProposer, currentProposer) + } else { + m.realProposers[height] = currentProposer + } + + // This handles the case when block is received out of order. + if realProposer, exists := m.realProposers[height+1]; exists { + delete(m.realProposers, height+1) + updateProposerMetric(nextProposer, realProposer) + } else { + m.expectedProposers[height+1] = nextProposer + } + + // Protection against memory leaks when blocks are missed by the indexer. + // This is naive approach which might lead to loosing some measures, but it won't break statistics. + const maxCacheSize = 100 + if len(m.realProposers) > maxCacheSize { + m.realProposers = map[int64]tmtypes.Address{} + } + if len(m.expectedProposers) > maxCacheSize { + m.expectedProposers = map[int64]tmtypes.Address{} + } +} + +func updateProposerMetric(expected, real tmtypes.Address) { + var value float64 + if bytes.Equal(expected, real) { + value = 1.0 + } + logging.ProposalSummary.WithLabelValues(sdk.ConsAddress(expected).String()).Observe(value) +} + +func (m *Module) measureVotingTimes(block *tmctypes.ResultBlock) { + proposerAddr := block.Block.ProposerAddress.Bytes() + + var proposerVoteTime time.Time + for _, s := range block.Block.LastCommit.Signatures { + if bytes.Equal(s.ValidatorAddress.Bytes(), proposerAddr) { + proposerVoteTime = s.Timestamp + break + } + } + proposer := sdk.ConsAddress(block.Block.ProposerAddress).String() + for _, s := range block.Block.LastCommit.Signatures { + logging.VoteTimeHistogram.WithLabelValues(proposer, sdk.ConsAddress(s.ValidatorAddress).String()). + Observe(float64(s.Timestamp.Sub(proposerVoteTime)) / float64(time.Millisecond)) + } +} diff --git a/modules/consensus/handle_genesis.go b/modules/consensus/handle_genesis.go index a02611611..ac580106f 100644 --- a/modules/consensus/handle_genesis.go +++ b/modules/consensus/handle_genesis.go @@ -4,9 +4,8 @@ import ( "encoding/json" "fmt" - "github.com/forbole/callisto/v4/types" - tmtypes "github.com/cometbft/cometbft/types" + "github.com/forbole/callisto/v4/types" "github.com/rs/zerolog/log" ) diff --git a/modules/consensus/handle_periodic_operations.go b/modules/consensus/handle_periodic_operations.go index 15499fb04..391f70a6a 100644 --- a/modules/consensus/handle_periodic_operations.go +++ b/modules/consensus/handle_periodic_operations.go @@ -3,10 +3,9 @@ package consensus import ( "fmt" + "github.com/forbole/callisto/v4/modules/utils" "github.com/go-co-op/gocron" "github.com/rs/zerolog/log" - - "github.com/forbole/callisto/v4/modules/utils" ) // RegisterPeriodicOperations implements modules.Module diff --git a/modules/consensus/module.go b/modules/consensus/module.go index a2ccc9f72..b7dd636b6 100644 --- a/modules/consensus/module.go +++ b/modules/consensus/module.go @@ -1,9 +1,11 @@ package consensus import ( - "github.com/forbole/callisto/v4/database" + "sync" - "github.com/forbole/juno/v5/modules" + tmtypes "github.com/cometbft/cometbft/types" + "github.com/forbole/callisto/v4/database" + "github.com/forbole/juno/v6/modules" ) var ( @@ -16,12 +18,18 @@ var ( // Module implements the consensus utils type Module struct { db *database.Db + + mu sync.Mutex + realProposers map[int64]tmtypes.Address + expectedProposers map[int64]tmtypes.Address } // NewModule builds a new Module instance func NewModule(db *database.Db) *Module { return &Module{ - db: db, + db: db, + realProposers: map[int64]tmtypes.Address{}, + expectedProposers: map[int64]tmtypes.Address{}, } } diff --git a/modules/customparams/handle_genesis.go b/modules/customparams/handle_genesis.go new file mode 100644 index 000000000..2a433f899 --- /dev/null +++ b/modules/customparams/handle_genesis.go @@ -0,0 +1,32 @@ +package customparams + +import ( + "encoding/json" + "fmt" + + tmtypes "github.com/cometbft/cometbft/types" + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" + + customparamstypes "github.com/CoreumFoundation/coreum/v5/x/customparams/types" +) + +// HandleGenesis implements GenesisModule +func (m *Module) HandleGenesis(doc *tmtypes.GenesisDoc, appState map[string]json.RawMessage) error { + log.Debug().Str("module", "customparams").Msg("parsing genesis") + + // Read the genesis state + var genState customparamstypes.GenesisState + err := m.cdc.UnmarshalJSON(appState[customparamstypes.ModuleName], &genState) + if err != nil { + return fmt.Errorf("error while unmarshaling customparams state: %s", err) + } + + // Save the params + err = m.db.SaveCustomParamsParams(types.NewCustomParamsParams(types.CustomParamsStakingParams(genState.StakingParams), doc.InitialHeight)) + if err != nil { + return fmt.Errorf("error while storing genesis customparams staking params: %s", err) + } + + return nil +} diff --git a/modules/customparams/module.go b/modules/customparams/module.go new file mode 100644 index 000000000..0c20bc3d2 --- /dev/null +++ b/modules/customparams/module.go @@ -0,0 +1,37 @@ +package customparams + +import ( + "github.com/cosmos/cosmos-sdk/codec" + "github.com/forbole/callisto/v4/database" + customparamssource "github.com/forbole/callisto/v4/modules/customparams/source" + "github.com/forbole/juno/v6/modules" +) + +var ( + _ modules.Module = &Module{} + _ modules.GenesisModule = &Module{} +) + +// Module represents the x/customparams module +type Module struct { + cdc codec.Codec + db *database.Db + source customparamssource.Source +} + +// NewModule returns a new Module instance +func NewModule( + source customparamssource.Source, + cdc codec.Codec, db *database.Db, +) *Module { + return &Module{ + cdc: cdc, + db: db, + source: source, + } +} + +// Name implements modules.Module +func (m *Module) Name() string { + return "customparams" +} diff --git a/modules/customparams/source/remote/source.go b/modules/customparams/source/remote/source.go new file mode 100644 index 000000000..b811161d0 --- /dev/null +++ b/modules/customparams/source/remote/source.go @@ -0,0 +1,34 @@ +package remote + +import ( + customparamssource "github.com/forbole/callisto/v4/modules/customparams/source" + "github.com/forbole/juno/v6/node/remote" + + customparamstypes "github.com/CoreumFoundation/coreum/v5/x/customparams/types" +) + +var _ customparamssource.Source = &Source{} + +// Source implements customparamssource.Source using a remote node +type Source struct { + *remote.Source + customparamsClient customparamstypes.QueryClient +} + +// NewSource returns a new Source instance +func NewSource(source *remote.Source, customparamsClient customparamstypes.QueryClient) *Source { + return &Source{ + Source: source, + customparamsClient: customparamsClient, + } +} + +// GetParams implements customparamssource.Source +func (s Source) GetParams(height int64) (customparamstypes.StakingParams, error) { + res, err := s.customparamsClient.StakingParams(remote.GetHeightRequestContext(s.Ctx, height), &customparamstypes.QueryStakingParamsRequest{}) + if err != nil { + return customparamstypes.StakingParams{}, err + } + + return res.Params, nil +} diff --git a/modules/customparams/source/source.go b/modules/customparams/source/source.go new file mode 100644 index 000000000..0a0a5ab3c --- /dev/null +++ b/modules/customparams/source/source.go @@ -0,0 +1,9 @@ +package source + +import ( + customparamstypes "github.com/CoreumFoundation/coreum/v5/x/customparams/types" +) + +type Source interface { + GetParams(height int64) (customparamstypes.StakingParams, error) +} diff --git a/modules/customparams/utils_params.go b/modules/customparams/utils_params.go new file mode 100644 index 000000000..9e6aaf5aa --- /dev/null +++ b/modules/customparams/utils_params.go @@ -0,0 +1,21 @@ +package customparams + +import ( + "fmt" + + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" +) + +// UpdateParams gets the updated params and stores them inside the database +func (m *Module) UpdateParams(height int64) error { + log.Debug().Str("module", "customparams").Int64("height", height). + Msg("updating params") + + stakingParams, err := m.source.GetParams(height) + if err != nil { + return fmt.Errorf("error while getting params: %s", err) + } + + return m.db.SaveCustomParamsParams(types.NewCustomParamsParams(types.CustomParamsStakingParams(stakingParams), height)) +} diff --git a/modules/daily_refetch/handle_periodic_operations.go b/modules/daily_refetch/handle_periodic_operations.go index ae8f5c307..f777f1995 100644 --- a/modules/daily_refetch/handle_periodic_operations.go +++ b/modules/daily_refetch/handle_periodic_operations.go @@ -4,13 +4,11 @@ import ( "fmt" "time" - "github.com/forbole/juno/v5/parser" - "github.com/forbole/juno/v5/types/config" - + parsecmdtypes "github.com/forbole/juno/v6/cmd/parse/types" + "github.com/forbole/juno/v6/parser" + "github.com/forbole/juno/v6/types/config" "github.com/go-co-op/gocron" "github.com/rs/zerolog/log" - - parsecmdtypes "github.com/forbole/juno/v5/cmd/parse/types" ) func (m *Module) RegisterPeriodicOperations(scheduler *gocron.Scheduler) error { @@ -40,7 +38,7 @@ func (m *Module) refetchMissingBlocks() error { if err != nil { return fmt.Errorf("error while getting block height from a day ago: %s", err) } - var startHeight = blockHeightDayAgo.Height + startHeight := blockHeightDayAgo.Height missingBlocks := m.database.GetMissingBlocks(startHeight, latestBlock) @@ -54,7 +52,7 @@ func (m *Module) refetchMissingBlocks() error { return err } - workerCtx := parser.NewContext(parseCtx.EncodingConfig, parseCtx.Node, parseCtx.Database, parseCtx.Logger, parseCtx.Modules) + workerCtx := parser.NewContext(parseCtx.Node, parseCtx.Database, parseCtx.Logger, parseCtx.Modules) worker := parser.NewWorker(workerCtx, nil, 0) log.Info().Int64("start height", startHeight).Int64("end height", latestBlock). @@ -67,5 +65,4 @@ func (m *Module) refetchMissingBlocks() error { } return nil - } diff --git a/modules/daily_refetch/module.go b/modules/daily_refetch/module.go index 3f38ffac3..3a46a961f 100644 --- a/modules/daily_refetch/module.go +++ b/modules/daily_refetch/module.go @@ -1,11 +1,9 @@ package daily_refetch import ( - "github.com/forbole/juno/v5/node" - callistodb "github.com/forbole/callisto/v4/database" - - "github.com/forbole/juno/v5/modules" + "github.com/forbole/juno/v6/modules" + "github.com/forbole/juno/v6/node" ) var ( diff --git a/modules/dex/handle_genesis.go b/modules/dex/handle_genesis.go new file mode 100644 index 000000000..d8b495c35 --- /dev/null +++ b/modules/dex/handle_genesis.go @@ -0,0 +1,32 @@ +package dex + +import ( + "encoding/json" + "fmt" + + tmtypes "github.com/cometbft/cometbft/types" + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" + + dextypes "github.com/CoreumFoundation/coreum/v5/x/dex/types" +) + +// HandleGenesis implements GenesisModule +func (m *Module) HandleGenesis(doc *tmtypes.GenesisDoc, appState map[string]json.RawMessage) error { + log.Debug().Str("module", "dex").Msg("parsing genesis") + + // Read the genesis state + var genState dextypes.GenesisState + err := m.cdc.UnmarshalJSON(appState[dextypes.ModuleName], &genState) + if err != nil { + return fmt.Errorf("error while unmarshaling DEX state: %s", err) + } + + // Save the params + err = m.db.SaveDEXParams(types.NewDEXParams(genState.Params, doc.InitialHeight)) + if err != nil { + return fmt.Errorf("error while storing genesis DEX params: %s", err) + } + + return nil +} diff --git a/modules/dex/module.go b/modules/dex/module.go new file mode 100644 index 000000000..170a823d4 --- /dev/null +++ b/modules/dex/module.go @@ -0,0 +1,37 @@ +package dex + +import ( + "github.com/cosmos/cosmos-sdk/codec" + "github.com/forbole/callisto/v4/database" + dexsource "github.com/forbole/callisto/v4/modules/dex/source" + "github.com/forbole/juno/v6/modules" +) + +var ( + _ modules.Module = &Module{} + _ modules.GenesisModule = &Module{} +) + +// Module represents the x/dex module +type Module struct { + cdc codec.Codec + db *database.Db + source dexsource.Source +} + +// NewModule returns a new Module instance +func NewModule( + source dexsource.Source, + cdc codec.Codec, db *database.Db, +) *Module { + return &Module{ + cdc: cdc, + db: db, + source: source, + } +} + +// Name implements modules.Module +func (m *Module) Name() string { + return "dex" +} diff --git a/modules/dex/source/remote/source.go b/modules/dex/source/remote/source.go new file mode 100644 index 000000000..a26cb358d --- /dev/null +++ b/modules/dex/source/remote/source.go @@ -0,0 +1,34 @@ +package remote + +import ( + dexsource "github.com/forbole/callisto/v4/modules/dex/source" + "github.com/forbole/juno/v6/node/remote" + + dextypes "github.com/CoreumFoundation/coreum/v5/x/dex/types" +) + +var _ dexsource.Source = &Source{} + +// Source implements dexsource.Source using a remote node +type Source struct { + *remote.Source + dexClient dextypes.QueryClient +} + +// NewSource returns a new Source instance +func NewSource(source *remote.Source, dexClient dextypes.QueryClient) *Source { + return &Source{ + Source: source, + dexClient: dexClient, + } +} + +// GetParams implements dexsource.Source +func (s Source) GetParams(height int64) (dextypes.Params, error) { + res, err := s.dexClient.Params(remote.GetHeightRequestContext(s.Ctx, height), &dextypes.QueryParamsRequest{}) + if err != nil { + return dextypes.Params{}, err + } + + return res.Params, nil +} diff --git a/modules/dex/source/source.go b/modules/dex/source/source.go new file mode 100644 index 000000000..b27941ca2 --- /dev/null +++ b/modules/dex/source/source.go @@ -0,0 +1,9 @@ +package source + +import ( + dextypes "github.com/CoreumFoundation/coreum/v5/x/dex/types" +) + +type Source interface { + GetParams(height int64) (dextypes.Params, error) +} diff --git a/modules/dex/utils_params.go b/modules/dex/utils_params.go new file mode 100644 index 000000000..758a57615 --- /dev/null +++ b/modules/dex/utils_params.go @@ -0,0 +1,21 @@ +package dex + +import ( + "fmt" + + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" +) + +// UpdateParams gets the updated params and stores them inside the database +func (m *Module) UpdateParams(height int64) error { + log.Debug().Str("module", "dex").Int64("height", height). + Msg("updating params") + + params, err := m.source.GetParams(height) + if err != nil { + return fmt.Errorf("error while getting params: %s", err) + } + + return m.db.SaveDEXParams(types.NewDEXParams(params, height)) +} diff --git a/modules/distribution/handle_genesis.go b/modules/distribution/handle_genesis.go index 532e2931d..3da65a55f 100644 --- a/modules/distribution/handle_genesis.go +++ b/modules/distribution/handle_genesis.go @@ -5,10 +5,8 @@ import ( "fmt" tmtypes "github.com/cometbft/cometbft/types" - - "github.com/forbole/callisto/v4/types" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + "github.com/forbole/callisto/v4/types" "github.com/rs/zerolog/log" ) diff --git a/modules/distribution/handle_msg.go b/modules/distribution/handle_msg.go index 5503b7e83..7df589e08 100644 --- a/modules/distribution/handle_msg.go +++ b/modules/distribution/handle_msg.go @@ -1,26 +1,31 @@ package distribution import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/authz" - juno "github.com/forbole/juno/v5/types" + "fmt" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + juno "github.com/forbole/juno/v6/types" + "github.com/rs/zerolog/log" ) +var msgFilter = map[string]bool{ + "/cosmos.distribution.v1beta1.MsgFundCommunityPool": true, +} + // HandleMsgExec implements modules.AuthzMessageModule -func (m *Module) HandleMsgExec(index int, _ *authz.MsgExec, _ int, executedMsg sdk.Msg, tx *juno.Tx) error { +func (m *Module) HandleMsgExec(index, _ int, executedMsg juno.Message, tx *juno.Transaction) error { return m.HandleMsg(index, executedMsg, tx) } // HandleMsg implements modules.MessageModule -func (m *Module) HandleMsg(_ int, msg sdk.Msg, tx *juno.Tx) error { - if len(tx.Logs) == 0 { +func (m *Module) HandleMsg(_ int, msg juno.Message, tx *juno.Transaction) error { + if _, ok := msgFilter[msg.GetType()]; !ok { return nil } - if _, ok := msg.(*distrtypes.MsgFundCommunityPool); ok { - return m.updateCommunityPool(tx.Height) + log.Debug().Str("module", "distribution").Str("hash", tx.TxHash).Uint64("height", tx.Height).Msg(fmt.Sprintf("handling distribution message %s", msg.GetType())) + + if msg.GetType() == "/cosmos.distribution.v1beta1.MsgFundCommunityPool" { + return m.updateCommunityPool(int64(tx.Height)) } return nil } diff --git a/modules/distribution/handle_periodic_operations.go b/modules/distribution/handle_periodic_operations.go index 534ef2b8a..c24bed6fe 100644 --- a/modules/distribution/handle_periodic_operations.go +++ b/modules/distribution/handle_periodic_operations.go @@ -3,10 +3,9 @@ package distribution import ( "fmt" + "github.com/forbole/callisto/v4/modules/utils" "github.com/go-co-op/gocron" "github.com/rs/zerolog/log" - - "github.com/forbole/callisto/v4/modules/utils" ) // RegisterPeriodicOperations implements modules.PeriodicOperationsModule diff --git a/modules/distribution/module.go b/modules/distribution/module.go index ee72027e2..3cf7de23a 100644 --- a/modules/distribution/module.go +++ b/modules/distribution/module.go @@ -2,12 +2,9 @@ package distribution import ( "github.com/cosmos/cosmos-sdk/codec" - - distrsource "github.com/forbole/callisto/v4/modules/distribution/source" - - "github.com/forbole/juno/v5/modules" - "github.com/forbole/callisto/v4/database" + distrsource "github.com/forbole/callisto/v4/modules/distribution/source" + "github.com/forbole/juno/v6/modules" ) var ( @@ -15,6 +12,7 @@ var ( _ modules.GenesisModule = &Module{} _ modules.PeriodicOperationsModule = &Module{} _ modules.MessageModule = &Module{} + _ modules.AuthzMessageModule = &Module{} ) // Module represents the x/distr module diff --git a/modules/distribution/source/local/source.go b/modules/distribution/source/local/source.go index 511a70a28..e57f92142 100644 --- a/modules/distribution/source/local/source.go +++ b/modules/distribution/source/local/source.go @@ -5,14 +5,11 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - "github.com/forbole/juno/v5/node/local" - distrsource "github.com/forbole/callisto/v4/modules/distribution/source" + "github.com/forbole/juno/v6/node/local" ) -var ( - _ distrsource.Source = &Source{} -) +var _ distrsource.Source = &Source{} // Source implements distrsource.Source reading the data from a local node type Source struct { diff --git a/modules/distribution/source/remote/source.go b/modules/distribution/source/remote/source.go index 3292b14a1..4a3d8f9ca 100644 --- a/modules/distribution/source/remote/source.go +++ b/modules/distribution/source/remote/source.go @@ -3,14 +3,11 @@ package remote import ( sdk "github.com/cosmos/cosmos-sdk/types" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - "github.com/forbole/juno/v5/node/remote" - distrsource "github.com/forbole/callisto/v4/modules/distribution/source" + "github.com/forbole/juno/v6/node/remote" ) -var ( - _ distrsource.Source = &Source{} -) +var _ distrsource.Source = &Source{} // Source implements distrsource.Source querying the data from a remote node type Source struct { diff --git a/modules/distribution/source/remote/source_actions.go b/modules/distribution/source/remote/source_actions.go index ed9d3eab1..121400d15 100644 --- a/modules/distribution/source/remote/source_actions.go +++ b/modules/distribution/source/remote/source_actions.go @@ -5,9 +5,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - "github.com/forbole/juno/v5/node/remote" - "github.com/forbole/callisto/v4/utils" + "github.com/forbole/juno/v6/node/remote" ) // DelegatorTotalRewards implements distrsource.Source diff --git a/modules/distribution/utils_params.go b/modules/distribution/utils_params.go index d8a53a585..ca0f905d0 100644 --- a/modules/distribution/utils_params.go +++ b/modules/distribution/utils_params.go @@ -3,9 +3,8 @@ package distribution import ( "fmt" - "github.com/rs/zerolog/log" - "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" ) // UpdateParams gets the updated params and stores them inside the database @@ -19,5 +18,4 @@ func (m *Module) UpdateParams(height int64) error { } return m.db.SaveDistributionParams(types.NewDistributionParams(params, height)) - } diff --git a/modules/feegrant/handle_block.go b/modules/feegrant/handle_block.go index 8324b8762..28ff1fa58 100644 --- a/modules/feegrant/handle_block.go +++ b/modules/feegrant/handle_block.go @@ -3,24 +3,20 @@ package feegrant import ( "fmt" + feegranttypes "cosmossdk.io/x/feegrant" abci "github.com/cometbft/cometbft/abci/types" - - feegranttypes "github.com/cosmos/cosmos-sdk/x/feegrant" - juno "github.com/forbole/juno/v5/types" - tmctypes "github.com/cometbft/cometbft/rpc/core/types" - "github.com/rs/zerolog/log" - "github.com/forbole/callisto/v4/types" + juno "github.com/forbole/juno/v6/types" + "github.com/rs/zerolog/log" ) // HandleBlock implements BlockModule func (m *Module) HandleBlock( - block *tmctypes.ResultBlock, res *tmctypes.ResultBlockResults, _ []*juno.Tx, _ *tmctypes.ResultValidators, + block *tmctypes.ResultBlock, res *tmctypes.ResultBlockResults, _ []*juno.Transaction, _ *tmctypes.ResultValidators, ) error { - // Remove expired fee grant allowances - err := m.removeExpiredFeeGrantAllowances(block.Block.Height, res.EndBlockEvents) + err := m.removeExpiredFeeGrantAllowances(block.Block.Height, res.FinalizeBlockEvents) if err != nil { fmt.Printf("Error when removing expired fee grant allowance, error: %s", err) } @@ -46,9 +42,7 @@ func (m *Module) removeExpiredFeeGrantAllowances(height int64, events []abci.Eve err = m.db.DeleteFeeGrantAllowance(types.NewGrantRemoval(granteeAddress.Value, granterAddress.Value, height)) if err != nil { return fmt.Errorf("error while deleting fee grant allowance: %s", err) - } } return nil - } diff --git a/modules/feegrant/handle_msg.go b/modules/feegrant/handle_msg.go index 1594f4c0e..d61b4771e 100644 --- a/modules/feegrant/handle_msg.go +++ b/modules/feegrant/handle_msg.go @@ -3,29 +3,38 @@ package feegrant import ( "fmt" + feegranttypes "cosmossdk.io/x/feegrant" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/authz" - feegranttypes "github.com/cosmos/cosmos-sdk/x/feegrant" - juno "github.com/forbole/juno/v5/types" - "github.com/forbole/callisto/v4/types" + "github.com/forbole/callisto/v4/utils" + juno "github.com/forbole/juno/v6/types" + "github.com/rs/zerolog/log" ) +var msgFilter = map[string]bool{ + "/cosmos.feegrant.v1beta1.MsgGrantAllowance": true, + "/cosmos.feegrant.v1beta1.MsgRevokeAllowance": true, +} + // HandleMsgExec implements modules.AuthzMessageModule -func (m *Module) HandleMsgExec(index int, _ *authz.MsgExec, _ int, executedMsg sdk.Msg, tx *juno.Tx) error { +func (m *Module) HandleMsgExec(index, _ int, executedMsg juno.Message, tx *juno.Transaction) error { return m.HandleMsg(index, executedMsg, tx) } // HandleMsg implements modules.MessageModule -func (m *Module) HandleMsg(_ int, msg sdk.Msg, tx *juno.Tx) error { - if len(tx.Logs) == 0 { +func (m *Module) HandleMsg(_ int, msg juno.Message, tx *juno.Transaction) error { + if _, ok := msgFilter[msg.GetType()]; !ok { return nil } - switch cosmosMsg := msg.(type) { - case *feegranttypes.MsgGrantAllowance: + log.Debug().Str("module", "feegrant").Str("hash", tx.TxHash).Uint64("height", tx.Height).Msg(fmt.Sprintf("handling feegrant message %s", msg.GetType())) + + switch msg.GetType() { + case "/cosmos.feegrant.v1beta1.MsgGrantAllowance": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &feegranttypes.MsgGrantAllowance{}) return m.HandleMsgGrantAllowance(tx, cosmosMsg) - case *feegranttypes.MsgRevokeAllowance: + case "/cosmos.feegrant.v1beta1.MsgRevokeAllowance": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &feegranttypes.MsgRevokeAllowance{}) return m.HandleMsgRevokeAllowance(tx, cosmosMsg) } @@ -33,7 +42,7 @@ func (m *Module) HandleMsg(_ int, msg sdk.Msg, tx *juno.Tx) error { } // HandleMsgGrantAllowance allows to properly handle a MsgGrantAllowance -func (m *Module) HandleMsgGrantAllowance(tx *juno.Tx, msg *feegranttypes.MsgGrantAllowance) error { +func (m *Module) HandleMsgGrantAllowance(tx *juno.Transaction, msg *feegranttypes.MsgGrantAllowance) error { allowance, err := msg.GetFeeAllowanceI() if err != nil { return fmt.Errorf("error while getting fee allowance: %s", err) @@ -50,10 +59,10 @@ func (m *Module) HandleMsgGrantAllowance(tx *juno.Tx, msg *feegranttypes.MsgGran if err != nil { return fmt.Errorf("error while getting new grant allowance: %s", err) } - return m.db.SaveFeeGrantAllowance(types.NewFeeGrant(feeGrant, tx.Height)) + return m.db.SaveFeeGrantAllowance(types.NewFeeGrant(feeGrant, int64(tx.Height))) } // HandleMsgRevokeAllowance allows to properly handle a MsgRevokeAllowance -func (m *Module) HandleMsgRevokeAllowance(tx *juno.Tx, msg *feegranttypes.MsgRevokeAllowance) error { - return m.db.DeleteFeeGrantAllowance(types.NewGrantRemoval(msg.Grantee, msg.Granter, tx.Height)) +func (m *Module) HandleMsgRevokeAllowance(tx *juno.Transaction, msg *feegranttypes.MsgRevokeAllowance) error { + return m.db.DeleteFeeGrantAllowance(types.NewGrantRemoval(msg.Grantee, msg.Granter, int64(tx.Height))) } diff --git a/modules/feegrant/module.go b/modules/feegrant/module.go index 64e96e421..357e501e8 100644 --- a/modules/feegrant/module.go +++ b/modules/feegrant/module.go @@ -2,16 +2,15 @@ package feegrant import ( "github.com/cosmos/cosmos-sdk/codec" - "github.com/forbole/callisto/v4/database" - - "github.com/forbole/juno/v5/modules" + "github.com/forbole/juno/v6/modules" ) var ( - _ modules.BlockModule = &Module{} - _ modules.Module = &Module{} - _ modules.MessageModule = &Module{} + _ modules.BlockModule = &Module{} + _ modules.Module = &Module{} + _ modules.MessageModule = &Module{} + _ modules.AuthzMessageModule = &Module{} ) // Module represent x/feegrant module diff --git a/modules/feemodel/handle_genesis.go b/modules/feemodel/handle_genesis.go new file mode 100644 index 000000000..379037b73 --- /dev/null +++ b/modules/feemodel/handle_genesis.go @@ -0,0 +1,32 @@ +package feemodel + +import ( + "encoding/json" + "fmt" + + tmtypes "github.com/cometbft/cometbft/types" + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" + + feemodeltypes "github.com/CoreumFoundation/coreum/v5/x/feemodel/types" +) + +// HandleGenesis implements GenesisModule +func (m *Module) HandleGenesis(doc *tmtypes.GenesisDoc, appState map[string]json.RawMessage) error { + log.Debug().Str("module", "feemodel").Msg("parsing genesis") + + // Read the genesis state + var genState feemodeltypes.GenesisState + err := m.cdc.UnmarshalJSON(appState[feemodeltypes.ModuleName], &genState) + if err != nil { + return fmt.Errorf("error while unmarshaling feemodel state: %s", err) + } + + // Save the params + err = m.db.SaveFeeModelParams(types.NewFeeModelParams(genState.Params, doc.InitialHeight)) + if err != nil { + return fmt.Errorf("error while storing genesis feemodel params: %s", err) + } + + return nil +} diff --git a/modules/feemodel/module.go b/modules/feemodel/module.go new file mode 100644 index 000000000..4b9444865 --- /dev/null +++ b/modules/feemodel/module.go @@ -0,0 +1,37 @@ +package feemodel + +import ( + "github.com/cosmos/cosmos-sdk/codec" + "github.com/forbole/callisto/v4/database" + feemodelsource "github.com/forbole/callisto/v4/modules/feemodel/source" + "github.com/forbole/juno/v6/modules" +) + +var ( + _ modules.Module = &Module{} + _ modules.GenesisModule = &Module{} +) + +// Module represents the x/feemodel module +type Module struct { + cdc codec.Codec + db *database.Db + source feemodelsource.Source +} + +// NewModule returns a new Module instance +func NewModule( + source feemodelsource.Source, + cdc codec.Codec, db *database.Db, +) *Module { + return &Module{ + cdc: cdc, + db: db, + source: source, + } +} + +// Name implements modules.Module +func (m *Module) Name() string { + return "feemodel" +} diff --git a/modules/feemodel/source/remote/source.go b/modules/feemodel/source/remote/source.go new file mode 100644 index 000000000..f3ae51cbd --- /dev/null +++ b/modules/feemodel/source/remote/source.go @@ -0,0 +1,34 @@ +package remote + +import ( + feemodelsource "github.com/forbole/callisto/v4/modules/feemodel/source" + "github.com/forbole/juno/v6/node/remote" + + feemodeltypes "github.com/CoreumFoundation/coreum/v5/x/feemodel/types" +) + +var _ feemodelsource.Source = &Source{} + +// Source implements feemodelsource.Source using a remote node +type Source struct { + *remote.Source + feemodelClient feemodeltypes.QueryClient +} + +// NewSource returns a new Source instance +func NewSource(source *remote.Source, feemodelClient feemodeltypes.QueryClient) *Source { + return &Source{ + Source: source, + feemodelClient: feemodelClient, + } +} + +// GetParams implements feemodelsource.Source +func (s Source) GetParams(height int64) (feemodeltypes.Params, error) { + res, err := s.feemodelClient.Params(remote.GetHeightRequestContext(s.Ctx, height), &feemodeltypes.QueryParamsRequest{}) + if err != nil { + return feemodeltypes.Params{}, err + } + + return res.Params, nil +} diff --git a/modules/feemodel/source/source.go b/modules/feemodel/source/source.go new file mode 100644 index 000000000..bb54c21b7 --- /dev/null +++ b/modules/feemodel/source/source.go @@ -0,0 +1,9 @@ +package source + +import ( + feemodeltypes "github.com/CoreumFoundation/coreum/v5/x/feemodel/types" +) + +type Source interface { + GetParams(height int64) (feemodeltypes.Params, error) +} diff --git a/modules/feemodel/utils_params.go b/modules/feemodel/utils_params.go new file mode 100644 index 000000000..31f13d113 --- /dev/null +++ b/modules/feemodel/utils_params.go @@ -0,0 +1,21 @@ +package feemodel + +import ( + "fmt" + + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" +) + +// UpdateParams gets the updated params and stores them inside the database +func (m *Module) UpdateParams(height int64) error { + log.Debug().Str("module", "feemodel").Int64("height", height). + Msg("updating params") + + params, err := m.source.GetParams(height) + if err != nil { + return fmt.Errorf("error while getting params: %s", err) + } + + return m.db.SaveFeeModelParams(types.NewFeeModelParams(params, height)) +} diff --git a/modules/gov/expected_modules.go b/modules/gov/expected_modules.go index eb0abb5dd..866e54645 100644 --- a/modules/gov/expected_modules.go +++ b/modules/gov/expected_modules.go @@ -4,6 +4,10 @@ import ( "github.com/forbole/callisto/v4/types" ) +type AuthModule interface { + UpdateParams(height int64) error +} + type DistrModule interface { UpdateParams(height int64) error } @@ -21,3 +25,23 @@ type StakingModule interface { GetStakingPoolSnapshot(height int64) (*types.PoolSnapshot, error) UpdateParams(height int64) error } + +type FeeModelModule interface { + UpdateParams(height int64) error +} + +type CustomParamsModule interface { + UpdateParams(height int64) error +} + +type AssetFTModule interface { + UpdateParams(height int64) error +} + +type AssetNFTModule interface { + UpdateParams(height int64) error +} + +type DEXModule interface { + UpdateParams(height int64) error +} diff --git a/modules/gov/handle_block.go b/modules/gov/handle_block.go index 1eb8b2130..0e14e3aea 100644 --- a/modules/gov/handle_block.go +++ b/modules/gov/handle_block.go @@ -4,22 +4,19 @@ import ( "fmt" "strconv" - juno "github.com/forbole/juno/v5/types" - - tmctypes "github.com/cometbft/cometbft/rpc/core/types" - abci "github.com/cometbft/cometbft/abci/types" + tmctypes "github.com/cometbft/cometbft/rpc/core/types" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - + juno "github.com/forbole/juno/v6/types" "github.com/rs/zerolog/log" ) // HandleBlock implements modules.BlockModule func (m *Module) HandleBlock( - b *tmctypes.ResultBlock, blockResults *tmctypes.ResultBlockResults, txs []*juno.Tx, _ *tmctypes.ResultValidators, + b *tmctypes.ResultBlock, blockResults *tmctypes.ResultBlockResults, txs []*juno.Transaction, _ *tmctypes.ResultValidators, ) error { txEvents := collectTxEvents(txs) - err := m.updateProposalsStatus(b.Block.Height, txEvents, blockResults.EndBlockEvents) + err := m.updateProposalsStatus(b.Block.Height, txEvents, blockResults.FinalizeBlockEvents) if err != nil { log.Error().Str("module", "gov").Int64("height", b.Block.Height). Err(err).Msg("error while updating proposals") @@ -87,7 +84,7 @@ func findProposalIDsInEvents(events []abci.Event, eventType, attrKey string) ([] return ids, nil } -func collectTxEvents(txs []*juno.Tx) []abci.Event { +func collectTxEvents(txs []*juno.Transaction) []abci.Event { events := make([]abci.Event, 0) for _, tx := range txs { for _, ev := range tx.Events { diff --git a/modules/gov/handle_genesis.go b/modules/gov/handle_genesis.go index 0ad0521ba..5248c8516 100644 --- a/modules/gov/handle_genesis.go +++ b/modules/gov/handle_genesis.go @@ -5,11 +5,9 @@ import ( "fmt" tmtypes "github.com/cometbft/cometbft/types" - - "github.com/forbole/callisto/v4/types" - gov "github.com/cosmos/cosmos-sdk/x/gov/types" govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" + "github.com/forbole/callisto/v4/types" "github.com/rs/zerolog/log" ) diff --git a/modules/gov/handle_msg.go b/modules/gov/handle_msg.go index d8f0de4b2..d35887b89 100644 --- a/modules/gov/handle_msg.go +++ b/modules/gov/handle_msg.go @@ -5,56 +5,79 @@ import ( "strings" "time" - "github.com/forbole/callisto/v4/types" - "google.golang.org/grpc/codes" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/authz" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - - juno "github.com/forbole/juno/v5/types" + "github.com/forbole/callisto/v4/types" + "github.com/forbole/callisto/v4/utils" + eventutils "github.com/forbole/callisto/v4/utils/events" + juno "github.com/forbole/juno/v6/types" + "github.com/rs/zerolog/log" + "google.golang.org/grpc/codes" ) +var msgFilter = map[string]bool{ + "/cosmos.gov.v1.MsgSubmitProposal": true, + "/cosmos.gov.v1.MsgDeposit": true, + "/cosmos.gov.v1.MsgVote": true, + "/cosmos.gov.v1.MsgVoteWeighted": true, + + "/cosmos.gov.v1beta1.MsgSubmitProposal": true, + "/cosmos.gov.v1beta1.MsgDeposit": true, + "/cosmos.gov.v1beta1.MsgVote": true, + "/cosmos.gov.v1beta1.MsgVoteWeighted": true, +} + // HandleMsgExec implements modules.AuthzMessageModule -func (m *Module) HandleMsgExec(index int, _ *authz.MsgExec, _ int, executedMsg sdk.Msg, tx *juno.Tx) error { +func (m *Module) HandleMsgExec(index, _ int, executedMsg juno.Message, tx *juno.Transaction) error { return m.HandleMsg(index, executedMsg, tx) } // HandleMsg implements modules.MessageModule -func (m *Module) HandleMsg(index int, msg sdk.Msg, tx *juno.Tx) error { - if len(tx.Logs) == 0 { +func (m *Module) HandleMsg(index int, msg juno.Message, tx *juno.Transaction) error { + if _, ok := msgFilter[msg.GetType()]; !ok { return nil } - switch cosmosMsg := msg.(type) { - case *govtypesv1.MsgSubmitProposal: - return m.handleSubmitProposalEvent(tx, cosmosMsg.Proposer, tx.Logs[index].Events) - case *govtypesv1beta1.MsgSubmitProposal: - return m.handleSubmitProposalEvent(tx, cosmosMsg.Proposer, tx.Logs[index].Events) - - case *govtypesv1.MsgDeposit: - return m.handleDepositEvent(tx, cosmosMsg.Depositor, tx.Logs[index].Events) - case *govtypesv1beta1.MsgDeposit: - return m.handleDepositEvent(tx, cosmosMsg.Depositor, tx.Logs[index].Events) - - case *govtypesv1.MsgVote: - return m.handleVoteEvent(tx, cosmosMsg.Voter, tx.Logs[index].Events) - case *govtypesv1beta1.MsgVote: - return m.handleVoteEvent(tx, cosmosMsg.Voter, tx.Logs[index].Events) - - case *govtypesv1.MsgVoteWeighted: - return m.handleVoteEvent(tx, cosmosMsg.Voter, tx.Logs[index].Events) - case *govtypesv1beta1.MsgVoteWeighted: - return m.handleVoteEvent(tx, cosmosMsg.Voter, tx.Logs[index].Events) + log.Debug().Str("module", "gov").Str("hash", tx.TxHash).Uint64("height", tx.Height).Msg(fmt.Sprintf("handling gov message %s", msg.GetType())) + + switch msg.GetType() { + case "/cosmos.gov.v1.MsgSubmitProposal": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &govtypesv1.MsgSubmitProposal{}) + return m.handleSubmitProposalEvent(tx, cosmosMsg.Proposer, eventutils.FindEventsByMsgIndex(sdk.StringifyEvents(tx.Events), index)) + case "/cosmos.gov.v1beta1.MsgSubmitProposal": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &govtypesv1beta1.MsgSubmitProposal{}) + return m.handleSubmitProposalEvent(tx, cosmosMsg.Proposer, eventutils.FindEventsByMsgIndex(sdk.StringifyEvents(tx.Events), index)) + + case "/cosmos.gov.v1.MsgDeposit": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &govtypesv1.MsgDeposit{}) + return m.handleDepositEvent(tx, cosmosMsg.Depositor, eventutils.FindEventsByMsgIndex(sdk.StringifyEvents(tx.Events), index)) + case "/cosmos.gov.v1beta1.MsgDeposit": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &govtypesv1beta1.MsgDeposit{}) + return m.handleDepositEvent(tx, cosmosMsg.Depositor, eventutils.FindEventsByMsgIndex(sdk.StringifyEvents(tx.Events), index)) + + case "/cosmos.gov.v1.MsgVote": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &govtypesv1.MsgVote{}) + return m.handleVoteEvent(tx, cosmosMsg.Voter, eventutils.FindEventsByMsgIndex(sdk.StringifyEvents(tx.Events), index)) + case "/cosmos.gov.v1beta1.MsgVote": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &govtypesv1beta1.MsgVote{}) + return m.handleVoteEvent(tx, cosmosMsg.Voter, eventutils.FindEventsByMsgIndex(sdk.StringifyEvents(tx.Events), index)) + + case "/cosmos.gov.v1.MsgVoteWeighted": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &govtypesv1.MsgVoteWeighted{}) + return m.handleVoteEvent(tx, cosmosMsg.Voter, eventutils.FindEventsByMsgIndex(sdk.StringifyEvents(tx.Events), index)) + case "/cosmos.gov.v1beta1.MsgVoteWeighted": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &govtypesv1beta1.MsgVoteWeighted{}) + + return m.handleVoteEvent(tx, cosmosMsg.Voter, eventutils.FindEventsByMsgIndex(sdk.StringifyEvents(tx.Events), index)) } return nil } // handleSubmitProposalEvent allows to properly handle a handleSubmitProposalEvent -func (m *Module) handleSubmitProposalEvent(tx *juno.Tx, proposer string, events sdk.StringEvents) error { +func (m *Module) handleSubmitProposalEvent(tx *juno.Transaction, proposer string, events sdk.StringEvents) error { // Get the proposal id proposalID, err := ProposalIDFromEvents(events) if err != nil { @@ -62,7 +85,7 @@ func (m *Module) handleSubmitProposalEvent(tx *juno.Tx, proposer string, events } // Get the proposal - proposal, err := m.source.Proposal(tx.Height, proposalID) + proposal, err := m.source.Proposal(int64(tx.Height), proposalID) if err != nil { if strings.Contains(err.Error(), codes.NotFound.String()) { // query the proposal details using the latest height stored in db @@ -135,14 +158,14 @@ func (m *Module) handleSubmitProposalEvent(tx *juno.Tx, proposer string, events } // handleDepositEvent allows to properly handle a handleDepositEvent -func (m *Module) handleDepositEvent(tx *juno.Tx, depositor string, events sdk.StringEvents) error { +func (m *Module) handleDepositEvent(tx *juno.Transaction, depositor string, events sdk.StringEvents) error { // Get the proposal id proposalID, err := ProposalIDFromEvents(events) if err != nil { return fmt.Errorf("error while getting proposal id: %s", err) } - deposit, err := m.source.ProposalDeposit(tx.Height, proposalID, depositor) + deposit, err := m.source.ProposalDeposit(int64(tx.Height), proposalID, depositor) if err != nil { return fmt.Errorf("error while getting proposal deposit: %s", err) } @@ -152,12 +175,12 @@ func (m *Module) handleDepositEvent(tx *juno.Tx, depositor string, events sdk.St } return m.db.SaveDeposits([]types.Deposit{ - types.NewDeposit(proposalID, depositor, deposit.Amount, txTimestamp, tx.TxHash, tx.Height), + types.NewDeposit(proposalID, depositor, deposit.Amount, txTimestamp, tx.TxHash, int64(tx.Height)), }) } // handleVoteEvent allows to properly handle a handleVoteEvent -func (m *Module) handleVoteEvent(tx *juno.Tx, voter string, events sdk.StringEvents) error { +func (m *Module) handleVoteEvent(tx *juno.Transaction, voter string, events sdk.StringEvents) error { // Get the proposal id proposalID, err := ProposalIDFromEvents(events) if err != nil { @@ -170,18 +193,20 @@ func (m *Module) handleVoteEvent(tx *juno.Tx, voter string, events sdk.StringEve } // Get the vote option - weightVoteOption, err := WeightVoteOptionFromEvents(events) + weightVoteOptions, err := WeightVoteOptionsFromEvents(events) if err != nil { return fmt.Errorf("error while getting vote option: %s", err) } - vote := types.NewVote(proposalID, voter, weightVoteOption.Option, weightVoteOption.Weight, txTimestamp, tx.Height) + for _, weightVoteOption := range weightVoteOptions { + vote := types.NewVote(proposalID, voter, weightVoteOption.Option, weightVoteOption.Weight, txTimestamp, int64(tx.Height)) - err = m.db.SaveVote(vote) - if err != nil { - return fmt.Errorf("error while saving vote: %s", err) + err = m.db.SaveVote(vote) + if err != nil { + return fmt.Errorf("error while saving vote: %s", err) + } } // update tally result for given proposal - return m.UpdateProposalTallyResult(proposalID, tx.Height) + return m.UpdateProposalTallyResult(proposalID, int64(tx.Height)) } diff --git a/modules/gov/handle_periodic_operations.go b/modules/gov/handle_periodic_operations.go index 7a52375a7..abc403750 100644 --- a/modules/gov/handle_periodic_operations.go +++ b/modules/gov/handle_periodic_operations.go @@ -3,10 +3,9 @@ package gov import ( "fmt" + "github.com/forbole/callisto/v4/modules/utils" "github.com/go-co-op/gocron" "github.com/rs/zerolog/log" - - "github.com/forbole/callisto/v4/modules/utils" ) // RegisterPeriodicOperations implements modules.PeriodicOperationsModule diff --git a/modules/gov/module.go b/modules/gov/module.go index 34ca290f3..57e52959e 100644 --- a/modules/gov/module.go +++ b/modules/gov/module.go @@ -2,12 +2,9 @@ package gov import ( "github.com/cosmos/cosmos-sdk/codec" - "github.com/forbole/callisto/v4/database" - govsource "github.com/forbole/callisto/v4/modules/gov/source" - - "github.com/forbole/juno/v5/modules" + "github.com/forbole/juno/v6/modules" ) var ( @@ -20,33 +17,51 @@ var ( // Module represent x/gov module type Module struct { - cdc codec.Codec - db *database.Db - source govsource.Source - distrModule DistrModule - mintModule MintModule - slashingModule SlashingModule - stakingModule StakingModule + cdc codec.Codec + db *database.Db + source govsource.Source + authModule AuthModule + distrModule DistrModule + mintModule MintModule + slashingModule SlashingModule + stakingModule StakingModule + feeModelModule FeeModelModule + customParamsModule CustomParamsModule + assetFTModule AssetFTModule + assetNFTModule AssetNFTModule + dexModule DEXModule } // NewModule returns a new Module instance func NewModule( source govsource.Source, + authModule AuthModule, distrModule DistrModule, mintModule MintModule, slashingModule SlashingModule, stakingModule StakingModule, + feeModelModule FeeModelModule, + customParamsModule CustomParamsModule, + assetFTModule AssetNFTModule, + assetNFTModule AssetNFTModule, + dexModule DEXModule, cdc codec.Codec, db *database.Db, ) *Module { return &Module{ - cdc: cdc, - source: source, - distrModule: distrModule, - mintModule: mintModule, - slashingModule: slashingModule, - stakingModule: stakingModule, - db: db, + cdc: cdc, + source: source, + authModule: authModule, + distrModule: distrModule, + mintModule: mintModule, + slashingModule: slashingModule, + stakingModule: stakingModule, + feeModelModule: feeModelModule, + customParamsModule: customParamsModule, + assetFTModule: assetFTModule, + assetNFTModule: assetNFTModule, + dexModule: dexModule, + db: db, } } diff --git a/modules/gov/source/local/source.go b/modules/gov/source/local/source.go index 0b1360eb5..4b9c069b0 100644 --- a/modules/gov/source/local/source.go +++ b/modules/gov/source/local/source.go @@ -5,14 +5,11 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" - "github.com/forbole/juno/v5/node/local" - govsource "github.com/forbole/callisto/v4/modules/gov/source" + "github.com/forbole/juno/v6/node/local" ) -var ( - _ govsource.Source = &Source{} -) +var _ govsource.Source = &Source{} // Source implements govsource.Source by using a local node type Source struct { diff --git a/modules/gov/source/remote/source.go b/modules/gov/source/remote/source.go index 2ea04ea5d..1bc5a9905 100644 --- a/modules/gov/source/remote/source.go +++ b/modules/gov/source/remote/source.go @@ -2,14 +2,11 @@ package remote import ( govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" - "github.com/forbole/juno/v5/node/remote" - govsource "github.com/forbole/callisto/v4/modules/gov/source" + "github.com/forbole/juno/v6/node/remote" ) -var ( - _ govsource.Source = &Source{} -) +var _ govsource.Source = &Source{} // Source implements govsource.Source using a remote node type Source struct { diff --git a/modules/gov/utils_events.go b/modules/gov/utils_events.go index 772d9e802..88dc6ef63 100644 --- a/modules/gov/utils_events.go +++ b/modules/gov/utils_events.go @@ -24,43 +24,51 @@ func ProposalIDFromEvents(events sdk.StringEvents) (uint64, error) { return 0, fmt.Errorf("no proposal id found") } -// WeightVoteOptionFromEvents returns the vote option from the given events -func WeightVoteOptionFromEvents(events sdk.StringEvents) (govtypesv1.WeightedVoteOption, error) { +// WeightVoteOptionsFromEvents returns the vote options from the given events +func WeightVoteOptionsFromEvents(events sdk.StringEvents) ([]govtypesv1.WeightedVoteOption, error) { for _, event := range events { attribute, ok := eventsutil.FindAttributeByKey(event, govtypes.AttributeKeyOption) if ok { - return parseWeightVoteOption(attribute.Value) + return parseWeightVoteOptions(attribute.Value) } } - return govtypesv1.WeightedVoteOption{}, fmt.Errorf("no vote option found") + return nil, fmt.Errorf("no vote option found") } -// parseWeightVoteOption returns the vote option from the given string +// parseWeightVoteOptions returns the vote option from the given string // option value in string has 2 cases, for example: -// 1. "{\"option\":1,\"weight\":\"1.000000000000000000\"}" -// 2. "option:VOTE_OPTION_NO weight:\"1.000000000000000000\"" -func parseWeightVoteOption(optionValue string) (govtypesv1.WeightedVoteOption, error) { +// 1. "[{\"option\":1,\"weight\":\"1.000000000000000000\"}]" +// 2. "{\"option\":1,\"weight\":\"1.000000000000000000\"}" +// 3. "option:VOTE_OPTION_NO weight:\"1.000000000000000000\"" +func parseWeightVoteOptions(optionValue string) ([]govtypesv1.WeightedVoteOption, error) { + // try parse json options value + var weightedVoteOptions []govtypesv1.WeightedVoteOption + err := json.Unmarshal([]byte(optionValue), &weightedVoteOptions) + if err == nil { + return weightedVoteOptions, nil + } + // try parse json option value var weightedVoteOption govtypesv1.WeightedVoteOption - err := json.Unmarshal([]byte(optionValue), &weightedVoteOption) + err = json.Unmarshal([]byte(optionValue), &weightedVoteOption) if err == nil { - return weightedVoteOption, nil + return []govtypesv1.WeightedVoteOption{weightedVoteOption}, nil } // try parse string option value // option:VOTE_OPTION_NO weight:"1.000000000000000000" voteOptionParsed := strings.Split(optionValue, " ") if len(voteOptionParsed) != 2 { - return govtypesv1.WeightedVoteOption{}, fmt.Errorf("failed to parse vote option %s", optionValue) + return nil, fmt.Errorf("failed to parse vote option %s", optionValue) } voteOption, err := govtypesv1.VoteOptionFromString(strings.ReplaceAll(voteOptionParsed[0], "option:", "")) if err != nil { - return govtypesv1.WeightedVoteOption{}, fmt.Errorf("failed to parse vote option %s: %s", optionValue, err) + return nil, fmt.Errorf("failed to parse vote option %s: %s", optionValue, err) } weight := strings.ReplaceAll(voteOptionParsed[1], "weight:", "") weight = strings.ReplaceAll(weight, "\"", "") - return govtypesv1.WeightedVoteOption{Option: voteOption, Weight: weight}, nil + return []govtypesv1.WeightedVoteOption{{Option: voteOption, Weight: weight}}, nil } diff --git a/modules/gov/utils_events_test.go b/modules/gov/utils_events_test.go index 8605e653b..3abdebe0d 100644 --- a/modules/gov/utils_events_test.go +++ b/modules/gov/utils_events_test.go @@ -14,7 +14,7 @@ func TestWeightVoteOptionFromEvents(t *testing.T) { tests := []struct { name string events sdk.StringEvents - expected govtypesv1.WeightedVoteOption + expected []govtypesv1.WeightedVoteOption shouldErr bool }{ { @@ -27,7 +27,23 @@ func TestWeightVoteOptionFromEvents(t *testing.T) { }, }, }, - govtypesv1.WeightedVoteOption{Option: govtypesv1.OptionYes, Weight: "1.000000000000000000"}, + []govtypesv1.WeightedVoteOption{{Option: govtypesv1.OptionYes, Weight: "1.000000000000000000"}}, + false, + }, + { + "json options from vote event returns properly", + sdk.StringEvents{ + sdk.StringEvent{ + Type: "vote", + Attributes: []sdk.Attribute{ + sdk.NewAttribute(govtypes.AttributeKeyOption, "[{\"option\":3,\"weight\":\"0.300000000000000000\"},{\"option\":4,\"weight\":\"0.700000000000000000\"}]"), + }, + }, + }, + []govtypesv1.WeightedVoteOption{ + {Option: govtypesv1.OptionNo, Weight: "0.300000000000000000"}, + {Option: govtypesv1.OptionNoWithVeto, Weight: "0.700000000000000000"}, + }, false, }, { @@ -40,7 +56,7 @@ func TestWeightVoteOptionFromEvents(t *testing.T) { }, }, }, - govtypesv1.WeightedVoteOption{Option: govtypesv1.OptionNo, Weight: "1.000000000000000000"}, + []govtypesv1.WeightedVoteOption{{Option: govtypesv1.OptionNo, Weight: "1.000000000000000000"}}, false, }, { @@ -53,14 +69,14 @@ func TestWeightVoteOptionFromEvents(t *testing.T) { }, }, }, - govtypesv1.WeightedVoteOption{}, + nil, true, }, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { - result, err := gov.WeightVoteOptionFromEvents(test.events) + result, err := gov.WeightVoteOptionsFromEvents(test.events) if test.shouldErr { require.Error(t, err) } else { diff --git a/modules/gov/utils_params.go b/modules/gov/utils_params.go index 08a371ee8..1bfac98ba 100644 --- a/modules/gov/utils_params.go +++ b/modules/gov/utils_params.go @@ -3,9 +3,8 @@ package gov import ( "fmt" - "github.com/rs/zerolog/log" - "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" ) // UpdateParams updates the governance parameters for the given height diff --git a/modules/gov/utils_proposal.go b/modules/gov/utils_proposal.go index 0f89b606a..46720adad 100644 --- a/modules/gov/utils_proposal.go +++ b/modules/gov/utils_proposal.go @@ -4,23 +4,27 @@ import ( "fmt" "strings" + upgradetypes "cosmossdk.io/x/upgrade/types" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + gov "github.com/cosmos/cosmos-sdk/x/gov/types" govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" - "github.com/rs/zerolog/log" - - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" proposaltypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - "google.golang.org/grpc/codes" - "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" + "google.golang.org/grpc/codes" - gov "github.com/cosmos/cosmos-sdk/x/gov/types" + assetfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/ft/types" + assetnfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/nft/types" + customparamstypes "github.com/CoreumFoundation/coreum/v5/x/customparams/types" + dextypes "github.com/CoreumFoundation/coreum/v5/x/dex/types" + feemodeltypes "github.com/CoreumFoundation/coreum/v5/x/feemodel/types" ) // UpdateProposalStatus queries the latest details of given proposal ID, updates it's status @@ -121,6 +125,11 @@ func (m *Module) updateDeletedProposalStatus(id uint64) error { // handleParamChangeProposal updates params to the corresponding modules if a ParamChangeProposal has passed func (m *Module) handleParamChangeProposal(height int64, moduleName string) (err error) { switch moduleName { + case authtypes.ModuleName: + err = m.authModule.UpdateParams(height) + if err != nil { + return fmt.Errorf("error while updating ParamChangeProposal %s params : %s", authtypes.ModuleName, err) + } case distrtypes.ModuleName: err = m.distrModule.UpdateParams(height) if err != nil { @@ -152,6 +161,32 @@ func (m *Module) handleParamChangeProposal(height int64, moduleName string) (err if err != nil { return fmt.Errorf("error while updating ParamChangeProposal %s params : %s", stakingtypes.ModuleName, err) } + + case feemodeltypes.ModuleName: + err = m.feeModelModule.UpdateParams(height) + if err != nil { + return fmt.Errorf("error while updating ParamChangeProposal %s params : %s", feemodeltypes.ModuleName, err) + } + case customparamstypes.CustomParamsStaking: + err = m.customParamsModule.UpdateParams(height) + if err != nil { + return fmt.Errorf("error while updating ParamChangeProposal %s params : %s", customparamstypes.ModuleName, err) + } + case assetfttypes.ModuleName: + err = m.assetFTModule.UpdateParams(height) + if err != nil { + return fmt.Errorf("error while updating ParamChangeProposal %s params : %s", assetfttypes.ModuleName, err) + } + case assetnfttypes.ModuleName: + err = m.assetNFTModule.UpdateParams(height) + if err != nil { + return fmt.Errorf("error while updating ParamChangeProposal %s params : %s", assetnfttypes.ModuleName, err) + } + case dextypes.ModuleName: + err = m.dexModule.UpdateParams(height) + if err != nil { + return fmt.Errorf("error while updating ParamChangeProposal %s params : %s", dextypes.ModuleName, err) + } } return nil @@ -266,6 +301,8 @@ func (m *Module) handlePassedV1Proposal(proposal *govtypesv1.Proposal, msg sdk.M // If the message is not a param change proposal, it returns false func getParamChangeSubspace(msg sdk.Msg) (string, bool) { switch msg.(type) { + case *authtypes.MsgUpdateParams: + return authtypes.ModuleName, true case *distrtypes.MsgUpdateParams: return distrtypes.ModuleName, true case *govtypesv1.MsgUpdateParams: @@ -276,6 +313,16 @@ func getParamChangeSubspace(msg sdk.Msg) (string, bool) { return slashingtypes.ModuleName, true case *stakingtypes.MsgUpdateParams: return stakingtypes.ModuleName, true + case *feemodeltypes.MsgUpdateParams: + return feemodeltypes.ModuleName, true + case *customparamstypes.MsgUpdateStakingParams: + return customparamstypes.ModuleName, true + case *assetfttypes.MsgUpdateParams: + return assetfttypes.ModuleName, true + case *assetnfttypes.MsgUpdateParams: + return assetnfttypes.ModuleName, true + case *dextypes.MsgUpdateParams: + return dextypes.ModuleName, true default: return "", false diff --git a/modules/message_type/handle_msg.go b/modules/message_type/handle_msg.go index f1d95623a..1e349fa90 100644 --- a/modules/message_type/handle_msg.go +++ b/modules/message_type/handle_msg.go @@ -1,24 +1,21 @@ package message_type import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/gogoproto/proto" utils "github.com/forbole/callisto/v4/modules/utils" msgtypes "github.com/forbole/callisto/v4/types" - - "github.com/forbole/juno/v5/types" + "github.com/forbole/juno/v6/types" ) // HandleMsg represents a message handler that stores the given message inside the proper database table func (m *Module) HandleMsg( - index int, msg sdk.Msg, tx *types.Tx) error { + index int, msg types.Message, tx *types.Transaction, +) error { // Save message type err := m.db.SaveMessageType(msgtypes.NewMessageType( - proto.MessageName(msg), - utils.GetModuleNameFromTypeURL(proto.MessageName(msg)), - utils.GetMsgFromTypeURL(proto.MessageName(msg)), - tx.Height)) - + msg.GetType(), + utils.GetModuleNameFromTypeURL(msg.GetType()), + utils.GetMsgFromTypeURL(msg.GetType()), + int64(tx.Height))) if err != nil { return err } diff --git a/modules/message_type/module.go b/modules/message_type/module.go index e328c6cd7..1d4c47da7 100644 --- a/modules/message_type/module.go +++ b/modules/message_type/module.go @@ -3,8 +3,8 @@ package message_type import ( "github.com/cosmos/cosmos-sdk/codec" "github.com/forbole/callisto/v4/database" - "github.com/forbole/juno/v5/modules" - "github.com/forbole/juno/v5/modules/messages" + "github.com/forbole/juno/v6/modules" + "github.com/forbole/juno/v6/modules/messages" ) var ( diff --git a/modules/mint/handle_genesis.go b/modules/mint/handle_genesis.go index c5e1f56b5..703742bff 100644 --- a/modules/mint/handle_genesis.go +++ b/modules/mint/handle_genesis.go @@ -5,10 +5,8 @@ import ( "fmt" tmtypes "github.com/cometbft/cometbft/types" - - "github.com/forbole/callisto/v4/types" - minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" + "github.com/forbole/callisto/v4/types" "github.com/rs/zerolog/log" ) diff --git a/modules/mint/handle_periodic_operations.go b/modules/mint/handle_periodic_operations.go index 25895135d..6209e6724 100644 --- a/modules/mint/handle_periodic_operations.go +++ b/modules/mint/handle_periodic_operations.go @@ -2,7 +2,6 @@ package mint import ( "github.com/forbole/callisto/v4/modules/utils" - "github.com/go-co-op/gocron" "github.com/rs/zerolog/log" ) diff --git a/modules/mint/module.go b/modules/mint/module.go index ddee8fa98..5ba8283b1 100644 --- a/modules/mint/module.go +++ b/modules/mint/module.go @@ -2,10 +2,9 @@ package mint import ( "github.com/cosmos/cosmos-sdk/codec" - "github.com/forbole/juno/v5/modules" - "github.com/forbole/callisto/v4/database" mintsource "github.com/forbole/callisto/v4/modules/mint/source" + "github.com/forbole/juno/v6/modules" ) var ( diff --git a/modules/mint/source/local/source.go b/modules/mint/source/local/source.go index 846467b42..abddb8d81 100644 --- a/modules/mint/source/local/source.go +++ b/modules/mint/source/local/source.go @@ -3,16 +3,14 @@ package local import ( "fmt" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" - "github.com/forbole/juno/v5/node/local" - mintsource "github.com/forbole/callisto/v4/modules/mint/source" + "github.com/forbole/juno/v6/node/local" ) -var ( - _ mintsource.Source = &Source{} -) +var _ mintsource.Source = &Source{} // Source implements mintsource.Source using a local node type Source struct { @@ -29,15 +27,15 @@ func NewSource(source *local.Source, querier minttypes.QueryServer) *Source { } // GetInflation implements mintsource.Source -func (s Source) GetInflation(height int64) (sdk.Dec, error) { +func (s Source) GetInflation(height int64) (math.LegacyDec, error) { ctx, err := s.LoadHeight(height) if err != nil { - return sdk.Dec{}, fmt.Errorf("error while loading height: %s", err) + return math.LegacyDec{}, fmt.Errorf("error while loading height: %s", err) } res, err := s.querier.Inflation(sdk.WrapSDKContext(ctx), &minttypes.QueryInflationRequest{}) if err != nil { - return sdk.Dec{}, err + return math.LegacyDec{}, err } return res.Inflation, nil diff --git a/modules/mint/source/remote/source.go b/modules/mint/source/remote/source.go index ee2c44548..85b667561 100644 --- a/modules/mint/source/remote/source.go +++ b/modules/mint/source/remote/source.go @@ -1,16 +1,13 @@ package remote import ( - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" - "github.com/forbole/juno/v5/node/remote" - mintsource "github.com/forbole/callisto/v4/modules/mint/source" + "github.com/forbole/juno/v6/node/remote" ) -var ( - _ mintsource.Source = &Source{} -) +var _ mintsource.Source = &Source{} // Source implements mintsource.Source using a remote node type Source struct { @@ -27,10 +24,10 @@ func NewSource(source *remote.Source, querier minttypes.QueryClient) *Source { } // GetInflation implements mintsource.Source -func (s Source) GetInflation(height int64) (sdk.Dec, error) { +func (s Source) GetInflation(height int64) (math.LegacyDec, error) { res, err := s.querier.Inflation(remote.GetHeightRequestContext(s.Ctx, height), &minttypes.QueryInflationRequest{}) if err != nil { - return sdk.Dec{}, err + return math.LegacyDec{}, err } return res.Inflation, nil diff --git a/modules/mint/source/source.go b/modules/mint/source/source.go index 04ce0b03a..3cdde980f 100644 --- a/modules/mint/source/source.go +++ b/modules/mint/source/source.go @@ -1,11 +1,11 @@ package source import ( - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" ) type Source interface { - GetInflation(height int64) (sdk.Dec, error) + GetInflation(height int64) (math.LegacyDec, error) Params(height int64) (minttypes.Params, error) } diff --git a/modules/mint/utils_params.go b/modules/mint/utils_params.go index f8dcc4d8d..78c41ad3a 100644 --- a/modules/mint/utils_params.go +++ b/modules/mint/utils_params.go @@ -3,9 +3,8 @@ package mint import ( "fmt" - "github.com/rs/zerolog/log" - "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" ) // UpdateParams gets the updated params and stores them inside the database @@ -19,5 +18,4 @@ func (m *Module) UpdateParams(height int64) error { } return m.db.SaveMintParams(types.NewMintParams(params, height)) - } diff --git a/modules/modules/module.go b/modules/modules/module.go index 5798936fb..65b638d37 100644 --- a/modules/modules/module.go +++ b/modules/modules/module.go @@ -1,10 +1,9 @@ package modules import ( - "github.com/forbole/juno/v5/modules" - "github.com/forbole/juno/v5/types/config" - "github.com/forbole/callisto/v4/database" + "github.com/forbole/juno/v6/modules" + "github.com/forbole/juno/v6/types/config" ) var ( diff --git a/modules/pricefeed/coingecko/apis_test.go b/modules/pricefeed/coingecko/apis_test.go index 7da790832..2840b3623 100644 --- a/modules/pricefeed/coingecko/apis_test.go +++ b/modules/pricefeed/coingecko/apis_test.go @@ -4,9 +4,8 @@ import ( "encoding/json" "testing" - "github.com/stretchr/testify/require" - "github.com/forbole/callisto/v4/modules/pricefeed/coingecko" + "github.com/stretchr/testify/require" ) func TestConvertCoingeckoPrices(t *testing.T) { diff --git a/modules/pricefeed/config.go b/modules/pricefeed/config.go index 2b2f8842b..2cbbd078b 100644 --- a/modules/pricefeed/config.go +++ b/modules/pricefeed/config.go @@ -1,9 +1,8 @@ package pricefeed import ( - "gopkg.in/yaml.v3" - "github.com/forbole/callisto/v4/types" + "gopkg.in/yaml.v3" ) // Config contains the configuration about the pricefeed module diff --git a/modules/pricefeed/handle_additional_operations.go b/modules/pricefeed/handle_additional_operations.go index 5265cabab..13563db6f 100644 --- a/modules/pricefeed/handle_additional_operations.go +++ b/modules/pricefeed/handle_additional_operations.go @@ -5,7 +5,6 @@ import ( "time" "github.com/forbole/callisto/v4/types" - "github.com/rs/zerolog/log" ) diff --git a/modules/pricefeed/handle_periodic_operations.go b/modules/pricefeed/handle_periodic_operations.go index 28125b3e6..e4b3a7fbf 100644 --- a/modules/pricefeed/handle_periodic_operations.go +++ b/modules/pricefeed/handle_periodic_operations.go @@ -4,28 +4,26 @@ import ( "fmt" "time" - "github.com/go-co-op/gocron" - "github.com/rs/zerolog/log" - - "github.com/forbole/callisto/v4/types" - "github.com/forbole/callisto/v4/modules/pricefeed/coingecko" "github.com/forbole/callisto/v4/modules/utils" + "github.com/forbole/callisto/v4/types" + "github.com/go-co-op/gocron" + "github.com/rs/zerolog/log" ) // RegisterPeriodicOperations implements modules.PeriodicOperationsModule func (m *Module) RegisterPeriodicOperations(scheduler *gocron.Scheduler) error { log.Debug().Str("module", "pricefeed").Msg("setting up periodic tasks") - // Fetch the token prices every 2 mins - if _, err := scheduler.Every(2).Minutes().Do(func() { + // Fetch the token prices every minute + if _, err := scheduler.Every(1).Minutes().Do(func() { utils.WatchMethod(m.UpdatePrice) }); err != nil { return fmt.Errorf("error while setting up pricefeed period operations: %s", err) } - // Update the historical token prices every 1 hour - if _, err := scheduler.Every(1).Hour().Do(func() { + // Update the historical token prices every 10 minutes + if _, err := scheduler.Every(10).Minutes().Do(func() { utils.WatchMethod(m.UpdatePricesHistory) }); err != nil { return fmt.Errorf("error while setting up history period operations: %s", err) @@ -75,7 +73,6 @@ func (m *Module) UpdatePrice() error { } return nil - } // UpdatePricesHistory fetches total amount of coins in the system from RPC diff --git a/modules/pricefeed/module.go b/modules/pricefeed/module.go index 86718b0a1..5647070e1 100644 --- a/modules/pricefeed/module.go +++ b/modules/pricefeed/module.go @@ -2,11 +2,9 @@ package pricefeed import ( "github.com/cosmos/cosmos-sdk/codec" - "github.com/forbole/juno/v5/types/config" - "github.com/forbole/callisto/v4/database" - - "github.com/forbole/juno/v5/modules" + "github.com/forbole/juno/v6/modules" + "github.com/forbole/juno/v6/types/config" ) var ( diff --git a/modules/registrar.go b/modules/registrar.go index da5842d15..2577c347e 100644 --- a/modules/registrar.go +++ b/modules/registrar.go @@ -1,41 +1,43 @@ package modules import ( - "github.com/forbole/callisto/v4/modules/actions" - "github.com/forbole/callisto/v4/modules/types" - - "github.com/forbole/juno/v5/modules/pruning" - "github.com/forbole/juno/v5/modules/telemetry" - - "github.com/forbole/callisto/v4/modules/slashing" - - jmodules "github.com/forbole/juno/v5/modules" - "github.com/forbole/juno/v5/modules/messages" - "github.com/forbole/juno/v5/modules/registrar" - - "github.com/forbole/callisto/v4/utils" - + "github.com/cosmos/cosmos-sdk/codec" "github.com/forbole/callisto/v4/database" + "github.com/forbole/callisto/v4/modules/actions" + "github.com/forbole/callisto/v4/modules/addresses" + "github.com/forbole/callisto/v4/modules/assetft" + "github.com/forbole/callisto/v4/modules/assetnft" "github.com/forbole/callisto/v4/modules/auth" "github.com/forbole/callisto/v4/modules/bank" + "github.com/forbole/callisto/v4/modules/bridge" "github.com/forbole/callisto/v4/modules/consensus" + "github.com/forbole/callisto/v4/modules/customparams" + dailyrefetch "github.com/forbole/callisto/v4/modules/daily_refetch" + "github.com/forbole/callisto/v4/modules/dex" "github.com/forbole/callisto/v4/modules/distribution" "github.com/forbole/callisto/v4/modules/feegrant" - - dailyrefetch "github.com/forbole/callisto/v4/modules/daily_refetch" + "github.com/forbole/callisto/v4/modules/feemodel" "github.com/forbole/callisto/v4/modules/gov" messagetype "github.com/forbole/callisto/v4/modules/message_type" "github.com/forbole/callisto/v4/modules/mint" "github.com/forbole/callisto/v4/modules/modules" "github.com/forbole/callisto/v4/modules/pricefeed" + "github.com/forbole/callisto/v4/modules/slashing" "github.com/forbole/callisto/v4/modules/staking" + "github.com/forbole/callisto/v4/modules/types" "github.com/forbole/callisto/v4/modules/upgrade" - juno "github.com/forbole/juno/v5/types" + "github.com/forbole/callisto/v4/utils" + jmodules "github.com/forbole/juno/v6/modules" + "github.com/forbole/juno/v6/modules/messages" + "github.com/forbole/juno/v6/modules/pruning" + "github.com/forbole/juno/v6/modules/registrar" + "github.com/forbole/juno/v6/modules/telemetry" + juno "github.com/forbole/juno/v6/types" ) // UniqueAddressesParser returns a wrapper around the given parser that removes all duplicated addresses func UniqueAddressesParser(parser messages.MessageAddressesParser) messages.MessageAddressesParser { - return func(tx *juno.Tx) ([]string, error) { + return func(tx *juno.Transaction) ([]string, error) { addresses, err := parser(tx) if err != nil { return nil, err @@ -47,51 +49,71 @@ func UniqueAddressesParser(parser messages.MessageAddressesParser) messages.Mess // -------------------------------------------------------------------------------------------------------------------- -var ( - _ registrar.Registrar = &Registrar{} -) +var _ registrar.Registrar = &Registrar{} // Registrar represents the modules.Registrar that allows to register all modules that are supported by BigDipper type Registrar struct { parser messages.MessageAddressesParser + cdc codec.Codec } // NewRegistrar allows to build a new Registrar instance -func NewRegistrar(parser messages.MessageAddressesParser) *Registrar { +func NewRegistrar(parser messages.MessageAddressesParser, cdc codec.Codec) *Registrar { return &Registrar{ parser: UniqueAddressesParser(parser), + cdc: cdc, } } // BuildModules implements modules.Registrar func (r *Registrar) BuildModules(ctx registrar.Context) jmodules.Modules { - cdc := ctx.EncodingConfig.Codec db := database.Cast(ctx.Database) - sources, err := types.BuildSources(ctx.JunoConfig.Node, ctx.EncodingConfig) + sources, err := types.BuildSources(ctx.JunoConfig.Node, r.cdc) if err != nil { panic(err) } - actionsModule := actions.NewModule(ctx.JunoConfig, ctx.EncodingConfig) - authModule := auth.NewModule(r.parser, cdc, db) - bankModule := bank.NewModule(r.parser, sources.BankSource, cdc, db) + messagetypeModule := messagetype.NewModule(r.parser, r.cdc, db) + actionsModule := actions.NewModule(ctx.JunoConfig, r.cdc, sources) + authModule := auth.NewModule(sources.AuthSource, r.parser, r.cdc, db) + bankModule := bank.NewModule(r.parser, sources.BankSource, r.cdc, db, ctx.JunoConfig.Chain.Bech32Prefix) consensusModule := consensus.NewModule(db) dailyRefetchModule := dailyrefetch.NewModule(ctx.Proxy, db) - distrModule := distribution.NewModule(sources.DistrSource, cdc, db) - feegrantModule := feegrant.NewModule(cdc, db) - messagetypeModule := messagetype.NewModule(r.parser, cdc, db) - mintModule := mint.NewModule(sources.MintSource, cdc, db) - slashingModule := slashing.NewModule(sources.SlashingSource, cdc, db) - stakingModule := staking.NewModule(sources.StakingSource, cdc, db) - govModule := gov.NewModule(sources.GovSource, distrModule, mintModule, slashingModule, stakingModule, cdc, db) + distrModule := distribution.NewModule(sources.DistrSource, r.cdc, db) + feegrantModule := feegrant.NewModule(r.cdc, db) + mintModule := mint.NewModule(sources.MintSource, r.cdc, db) + slashingModule := slashing.NewModule(sources.SlashingSource, r.cdc, db) + stakingModule := staking.NewModule(sources.StakingSource, r.cdc, db) + feeModelModule := feemodel.NewModule(sources.FeeModelSource, r.cdc, db) + customParamsModule := customparams.NewModule(sources.CustomParamsSource, r.cdc, db) + assetFTModule := assetft.NewModule(sources.AssetFTSource, r.cdc, db) + assetNFTModule := assetnft.NewModule(sources.AssetNFTSource, r.cdc, db) + dexModule := dex.NewModule(sources.DEXSource, r.cdc, db) + govModule := gov.NewModule( + sources.GovSource, + authModule, + distrModule, + mintModule, + slashingModule, + stakingModule, + feeModelModule, + customParamsModule, + assetFTModule, + assetNFTModule, + dexModule, + r.cdc, + db, + ) upgradeModule := upgrade.NewModule(db, stakingModule) + bridgeModule := bridge.NewModule(sources.BridgeSource, r.cdc, db) return []jmodules.Module{ - messages.NewModule(r.parser, cdc, ctx.Database), + messages.NewModule(r.parser, ctx.Database), telemetry.NewModule(ctx.JunoConfig), pruning.NewModule(ctx.JunoConfig, db, ctx.Logger), + messagetypeModule, actionsModule, authModule, bankModule, @@ -101,11 +123,18 @@ func (r *Registrar) BuildModules(ctx registrar.Context) jmodules.Modules { feegrantModule, govModule, mintModule, - messagetypeModule, modules.NewModule(ctx.JunoConfig.Chain, db), - pricefeed.NewModule(ctx.JunoConfig, cdc, db), + pricefeed.NewModule(ctx.JunoConfig, r.cdc, db), slashingModule, stakingModule, upgradeModule, + feeModelModule, + customParamsModule, + assetFTModule, + assetNFTModule, + dexModule, + bridgeModule, + // This must be the last item. + addresses.NewModule(r.parser, r.cdc, db), } } diff --git a/modules/slashing/handle_block.go b/modules/slashing/handle_block.go index 928f83774..989cccb61 100644 --- a/modules/slashing/handle_block.go +++ b/modules/slashing/handle_block.go @@ -3,15 +3,14 @@ package slashing import ( "fmt" - juno "github.com/forbole/juno/v5/types" - tmctypes "github.com/cometbft/cometbft/rpc/core/types" + juno "github.com/forbole/juno/v6/types" "github.com/rs/zerolog/log" ) // HandleBlock implements BlockModule func (m *Module) HandleBlock( - block *tmctypes.ResultBlock, results *tmctypes.ResultBlockResults, _ []*juno.Tx, _ *tmctypes.ResultValidators, + block *tmctypes.ResultBlock, results *tmctypes.ResultBlockResults, _ []*juno.Transaction, _ *tmctypes.ResultValidators, ) error { // Update the signing infos err := m.updateSigningInfo(block.Block.Height) diff --git a/modules/slashing/handle_genesis.go b/modules/slashing/handle_genesis.go index be1d10d7f..ad839651c 100644 --- a/modules/slashing/handle_genesis.go +++ b/modules/slashing/handle_genesis.go @@ -5,10 +5,8 @@ import ( "fmt" tmtypes "github.com/cometbft/cometbft/types" - - "github.com/forbole/callisto/v4/types" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" + "github.com/forbole/callisto/v4/types" "github.com/rs/zerolog/log" ) diff --git a/modules/slashing/module.go b/modules/slashing/module.go index f2b107811..a94e55041 100644 --- a/modules/slashing/module.go +++ b/modules/slashing/module.go @@ -2,10 +2,9 @@ package slashing import ( "github.com/cosmos/cosmos-sdk/codec" - "github.com/forbole/juno/v5/modules" - "github.com/forbole/callisto/v4/database" slashingsource "github.com/forbole/callisto/v4/modules/slashing/source" + "github.com/forbole/juno/v6/modules" ) var ( diff --git a/modules/slashing/source/local/source.go b/modules/slashing/source/local/source.go index 58d330347..184a85478 100644 --- a/modules/slashing/source/local/source.go +++ b/modules/slashing/source/local/source.go @@ -6,14 +6,11 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/query" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - "github.com/forbole/juno/v5/node/local" - slashingsource "github.com/forbole/callisto/v4/modules/slashing/source" + "github.com/forbole/juno/v6/node/local" ) -var ( - _ slashingsource.Source = &Source{} -) +var _ slashingsource.Source = &Source{} // Source implements slashingsource.Source using a local node type Source struct { @@ -38,7 +35,7 @@ func (s Source) GetSigningInfos(height int64) ([]slashingtypes.ValidatorSigningI var signingInfos []slashingtypes.ValidatorSigningInfo var nextKey []byte - var stop = false + stop := false for !stop { res, err := s.querier.SigningInfos( sdk.WrapSDKContext(ctx), @@ -89,7 +86,6 @@ func (s Source) GetSigningInfo(height int64, consAddr sdk.ConsAddress) (slashing ConsAddress: consAddr.String(), }, ) - if err != nil { return slashingtypes.ValidatorSigningInfo{}, err } diff --git a/modules/slashing/source/remote/source.go b/modules/slashing/source/remote/source.go index a898375cf..4745a2b07 100644 --- a/modules/slashing/source/remote/source.go +++ b/modules/slashing/source/remote/source.go @@ -2,17 +2,13 @@ package remote import ( sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/query" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - "github.com/forbole/juno/v5/node/remote" - slashingsource "github.com/forbole/callisto/v4/modules/slashing/source" + "github.com/forbole/juno/v6/node/remote" ) -var ( - _ slashingsource.Source = &Source{} -) +var _ slashingsource.Source = &Source{} // Source implements slashingsource.Source using a remote node type Source struct { @@ -34,7 +30,7 @@ func (s Source) GetSigningInfos(height int64) ([]slashingtypes.ValidatorSigningI var signingInfos []slashingtypes.ValidatorSigningInfo var nextKey []byte - var stop = false + stop := false for !stop { res, err := s.querier.SigningInfos( ctx, @@ -75,7 +71,6 @@ func (s Source) GetSigningInfo(height int64, consAddr sdk.ConsAddress) (slashing ConsAddress: consAddr.String(), }, ) - if err != nil { return slashingtypes.ValidatorSigningInfo{}, err } diff --git a/modules/slashing/utils_params.go b/modules/slashing/utils_params.go index fff588d31..8c9f15fb8 100644 --- a/modules/slashing/utils_params.go +++ b/modules/slashing/utils_params.go @@ -3,9 +3,8 @@ package slashing import ( "fmt" - "github.com/rs/zerolog/log" - "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" ) // UpdateParams gets the slashing params for the given height, and stores them inside the database @@ -18,5 +17,4 @@ func (m *Module) UpdateParams(height int64) error { } return m.db.SaveSlashingParams(types.NewSlashingParams(params, height)) - } diff --git a/modules/slashing/utils_signing_info.go b/modules/slashing/utils_signing_info.go index 17d832d8a..9266c5884 100644 --- a/modules/slashing/utils_signing_info.go +++ b/modules/slashing/utils_signing_info.go @@ -2,7 +2,6 @@ package slashing import ( sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/forbole/callisto/v4/types" ) diff --git a/modules/staking/handle_block.go b/modules/staking/handle_block.go index 171141e3c..eb8344446 100644 --- a/modules/staking/handle_block.go +++ b/modules/staking/handle_block.go @@ -4,18 +4,16 @@ import ( "encoding/hex" "fmt" - "github.com/forbole/callisto/v4/types" - - juno "github.com/forbole/juno/v5/types" - tmctypes "github.com/cometbft/cometbft/rpc/core/types" tmtypes "github.com/cometbft/cometbft/types" + "github.com/forbole/callisto/v4/types" + juno "github.com/forbole/juno/v6/types" "github.com/rs/zerolog/log" ) // HandleBlock implements BlockModule func (m *Module) HandleBlock( - block *tmctypes.ResultBlock, res *tmctypes.ResultBlockResults, _ []*juno.Tx, vals *tmctypes.ResultValidators, + block *tmctypes.ResultBlock, res *tmctypes.ResultBlockResults, _ []*juno.Transaction, vals *tmctypes.ResultValidators, ) error { // Update the validators _, err := m.updateValidators(block.Block.Height) @@ -71,5 +69,4 @@ func (m *Module) updateDoubleSignEvidence(height int64, evidenceList tmtypes.Evi Msg("error while saving double sign evidence") return } - } diff --git a/modules/staking/handle_genesis.go b/modules/staking/handle_genesis.go index f829ac02b..e2984ff3e 100644 --- a/modules/staking/handle_genesis.go +++ b/modules/staking/handle_genesis.go @@ -4,15 +4,11 @@ import ( "encoding/json" "fmt" - "github.com/cosmos/cosmos-sdk/types/tx" - - "github.com/forbole/callisto/v4/types" - tmtypes "github.com/cometbft/cometbft/types" - + "github.com/cosmos/cosmos-sdk/types/tx" genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - + "github.com/forbole/callisto/v4/types" "github.com/rs/zerolog/log" ) @@ -95,7 +91,7 @@ func (m *Module) parseGenesisTransactions(doc *tmtypes.GenesisDoc, appState map[ // -------------------------------------------------------------------------------------------------------------------- // saveValidators stores the validators data present inside the given genesis state -func (m *Module) saveValidators(doc *tmtypes.GenesisDoc, validators stakingtypes.Validators) error { +func (m *Module) saveValidators(doc *tmtypes.GenesisDoc, validators []stakingtypes.Validator) error { vals := make([]types.Validator, len(validators)) for i, val := range validators { validator, err := m.convertValidator(doc.InitialHeight, val) @@ -110,7 +106,7 @@ func (m *Module) saveValidators(doc *tmtypes.GenesisDoc, validators stakingtypes } // saveValidatorDescription saves the description for the given validators -func (m *Module) saveValidatorDescription(doc *tmtypes.GenesisDoc, validators stakingtypes.Validators) error { +func (m *Module) saveValidatorDescription(doc *tmtypes.GenesisDoc, validators []stakingtypes.Validator) error { for _, account := range validators { description := m.convertValidatorDescription( doc.InitialHeight, @@ -130,7 +126,7 @@ func (m *Module) saveValidatorDescription(doc *tmtypes.GenesisDoc, validators st // -------------------------------------------------------------------------------------------------------------------- // saveValidatorsCommissions save the initial commission for each validator -func (m *Module) saveValidatorsCommissions(height int64, validators stakingtypes.Validators) error { +func (m *Module) saveValidatorsCommissions(height int64, validators []stakingtypes.Validator) error { for _, account := range validators { commissionRate := account.Commission.Rate minSelfDelegation := account.MinSelfDelegation diff --git a/modules/staking/handle_msg.go b/modules/staking/handle_msg.go index d463a0d17..3cbb105f8 100644 --- a/modules/staking/handle_msg.go +++ b/modules/staking/handle_msg.go @@ -3,41 +3,52 @@ package staking import ( "fmt" - "github.com/cosmos/cosmos-sdk/x/authz" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - - sdk "github.com/cosmos/cosmos-sdk/types" - juno "github.com/forbole/juno/v5/types" + "github.com/forbole/callisto/v4/utils" + juno "github.com/forbole/juno/v6/types" + "github.com/rs/zerolog/log" ) +var msgFilter = map[string]bool{ + "/cosmos.staking.v1beta1.MsgCreateValidator": true, + "/cosmos.staking.v1beta1.MsgEditValidator": true, + "/cosmos.staking.v1beta1.MsgDelegate": true, + "/cosmos.staking.v1beta1.MsgUndelegate": true, + "/cosmos.staking.v1beta1.MsgBeginRedelegate": true, +} + // HandleMsgExec implements modules.AuthzMessageModule -func (m *Module) HandleMsgExec(index int, _ *authz.MsgExec, _ int, executedMsg sdk.Msg, tx *juno.Tx) error { +func (m *Module) HandleMsgExec(index, _ int, executedMsg juno.Message, tx *juno.Transaction) error { return m.HandleMsg(index, executedMsg, tx) } // HandleMsg implements MessageModule -func (m *Module) HandleMsg(_ int, msg sdk.Msg, tx *juno.Tx) error { - if len(tx.Logs) == 0 { +func (m *Module) HandleMsg(_ int, msg juno.Message, tx *juno.Transaction) error { + if _, ok := msgFilter[msg.GetType()]; !ok { return nil } - switch cosmosMsg := msg.(type) { - case *stakingtypes.MsgCreateValidator: - return m.handleMsgCreateValidator(tx.Height, cosmosMsg) + log.Debug().Str("module", "staking").Str("hash", tx.TxHash).Uint64("height", tx.Height).Msg(fmt.Sprintf("handling staking message %s", msg.GetType())) + + switch msg.GetType() { + case "/cosmos.staking.v1beta1.MsgCreateValidator": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &stakingtypes.MsgCreateValidator{}) + return m.handleMsgCreateValidator(int64(tx.Height), cosmosMsg) - case *stakingtypes.MsgEditValidator: - return m.handleEditValidator(tx.Height, cosmosMsg) + case "/cosmos.staking.v1beta1.MsgEditValidator": + cosmosMsg := utils.UnpackMessage(m.cdc, msg.GetBytes(), &stakingtypes.MsgEditValidator{}) + return m.handleEditValidator(int64(tx.Height), cosmosMsg) // update validators statuses, voting power // and proposals validators satatus snapshots // when there is a voting power change - case *stakingtypes.MsgDelegate: + case "/cosmos.staking.v1beta1.MsgDelegate": return m.UpdateValidatorStatuses() - case *stakingtypes.MsgBeginRedelegate: + case "/cosmos.staking.v1beta1.MsgBeginRedelegate": return m.UpdateValidatorStatuses() - case *stakingtypes.MsgUndelegate: + case "/cosmos.staking.v1beta1.MsgUndelegate": return m.UpdateValidatorStatuses() } diff --git a/modules/staking/handle_periodic_operations.go b/modules/staking/handle_periodic_operations.go index 884d06cae..9a5b467e5 100644 --- a/modules/staking/handle_periodic_operations.go +++ b/modules/staking/handle_periodic_operations.go @@ -3,10 +3,9 @@ package staking import ( "fmt" + "github.com/forbole/callisto/v4/modules/utils" "github.com/go-co-op/gocron" "github.com/rs/zerolog/log" - - "github.com/forbole/callisto/v4/modules/utils" ) // RegisterPeriodicOperations implements modules.PeriodicOperationsModule @@ -42,13 +41,11 @@ func (m *Module) UpdateStakingPool() error { pool, err := m.GetStakingPool(block.Height) if err != nil { return fmt.Errorf("error while getting staking pool: %s", err) - } err = m.db.SaveStakingPool(pool) if err != nil { return fmt.Errorf("error while saving staking pool: %s", err) - } return nil diff --git a/modules/staking/module.go b/modules/staking/module.go index f3c83c1bc..0da6f524b 100644 --- a/modules/staking/module.go +++ b/modules/staking/module.go @@ -2,10 +2,9 @@ package staking import ( "github.com/cosmos/cosmos-sdk/codec" - "github.com/forbole/juno/v5/modules" - "github.com/forbole/callisto/v4/database" stakingsource "github.com/forbole/callisto/v4/modules/staking/source" + "github.com/forbole/juno/v6/modules" ) var ( diff --git a/modules/staking/source/local/source.go b/modules/staking/source/local/source.go index 916f6a6b2..300768f8b 100644 --- a/modules/staking/source/local/source.go +++ b/modules/staking/source/local/source.go @@ -6,14 +6,11 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/query" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/forbole/juno/v5/node/local" - stakingsource "github.com/forbole/callisto/v4/modules/staking/source" + "github.com/forbole/juno/v6/node/local" ) -var ( - _ stakingsource.Source = &Source{} -) +var _ stakingsource.Source = &Source{} // Source implements stakingsource.Source using a local node type Source struct { @@ -93,7 +90,7 @@ func (s Source) GetValidatorsWithStatus(height int64, status string) ([]stakingt var validators []stakingtypes.Validator var nextKey []byte - var stop = false + stop := false for !stop { res, err := s.q.Validators( sdk.WrapSDKContext(ctx), @@ -155,7 +152,6 @@ func (s Source) GetParams(height int64) (stakingtypes.Params, error) { // GetUnbondingDelegations implements stakingsource.Source func (s Source) GetUnbondingDelegations(height int64, delegator string, pagination *query.PageRequest) (*stakingtypes.QueryDelegatorUnbondingDelegationsResponse, error) { - ctx, err := s.LoadHeight(height) if err != nil { return nil, fmt.Errorf("error while loading height: %s", err) @@ -177,7 +173,6 @@ func (s Source) GetUnbondingDelegations(height int64, delegator string, paginati } return unbondingDelegations, nil - } // GetValidatorDelegationsWithPagination implements stakingsource.Source diff --git a/modules/staking/source/remote/source.go b/modules/staking/source/remote/source.go index 6b3ebaa2a..69b8ae84c 100644 --- a/modules/staking/source/remote/source.go +++ b/modules/staking/source/remote/source.go @@ -5,14 +5,11 @@ import ( "github.com/cosmos/cosmos-sdk/types/query" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/forbole/juno/v5/node/remote" - stakingsource "github.com/forbole/callisto/v4/modules/staking/source" + "github.com/forbole/juno/v6/node/remote" ) -var ( - _ stakingsource.Source = &Source{} -) +var _ stakingsource.Source = &Source{} // Source implements stakingsource.Source using a remote node type Source struct { @@ -47,7 +44,7 @@ func (s Source) GetValidatorsWithStatus(height int64, status string) ([]stakingt var validators []stakingtypes.Validator var nextKey []byte - var stop = false + stop := false for !stop { res, err := s.stakingClient.Validators( ctx, diff --git a/modules/staking/source/remote/source_actions.go b/modules/staking/source/remote/source_actions.go index 9edd7b17d..4212f686e 100644 --- a/modules/staking/source/remote/source_actions.go +++ b/modules/staking/source/remote/source_actions.go @@ -3,9 +3,8 @@ package remote import ( "github.com/cosmos/cosmos-sdk/types/query" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/forbole/juno/v5/node/remote" - "github.com/forbole/callisto/v4/utils" + "github.com/forbole/juno/v6/node/remote" ) // GetDelegationsWithPagination implements stakingsource.Source @@ -60,7 +59,6 @@ func (s Source) GetRedelegations(height int64, request *stakingtypes.QueryRedele func (s Source) GetValidatorDelegationsWithPagination( height int64, validator string, pagination *query.PageRequest, ) (*stakingtypes.QueryValidatorDelegationsResponse, error) { - res, err := s.stakingClient.ValidatorDelegations( remote.GetHeightRequestContext(s.Ctx, height), &stakingtypes.QueryValidatorDelegationsRequest{ @@ -79,7 +77,6 @@ func (s Source) GetValidatorDelegationsWithPagination( func (s Source) GetUnbondingDelegationsFromValidator( height int64, validator string, pagination *query.PageRequest, ) (*stakingtypes.QueryValidatorUnbondingDelegationsResponse, error) { - unbondingDelegations, err := s.stakingClient.ValidatorUnbondingDelegations( remote.GetHeightRequestContext(s.Ctx, height), &stakingtypes.QueryValidatorUnbondingDelegationsRequest{ diff --git a/modules/staking/utils_gentx.go b/modules/staking/utils_gentx.go index bbe5c2060..0f707eeca 100644 --- a/modules/staking/utils_gentx.go +++ b/modules/staking/utils_gentx.go @@ -6,7 +6,6 @@ import ( cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/forbole/callisto/v4/modules/staking/keybase" "github.com/forbole/callisto/v4/types" ) diff --git a/modules/staking/utils_params.go b/modules/staking/utils_params.go index 9c16f63a9..4c9bb9aa2 100644 --- a/modules/staking/utils_params.go +++ b/modules/staking/utils_params.go @@ -3,9 +3,8 @@ package staking import ( "fmt" - "github.com/rs/zerolog/log" - "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" ) // UpdateParams gets the updated params and stores them inside the database diff --git a/modules/staking/utils_staking_pool.go b/modules/staking/utils_staking_pool.go index 2323b7645..da0af684d 100644 --- a/modules/staking/utils_staking_pool.go +++ b/modules/staking/utils_staking_pool.go @@ -3,10 +3,9 @@ package staking import ( "fmt" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/types/query" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/forbole/callisto/v4/types" ) @@ -21,7 +20,7 @@ func (m *Module) GetStakingPool(height int64) (*types.Pool, error) { return nil, fmt.Errorf("error while getting validators list: %s", err) } - var unbondingTokens = sdk.NewInt(0) + unbondingTokens := math.NewInt(0) for _, validator := range validatorsList { // get list of all unbonding delegations for each validator @@ -55,7 +54,7 @@ func (m *Module) GetStakingPoolSnapshot(height int64) (*types.PoolSnapshot, erro func (m *Module) getTotalUnbondingDelegationsFromValidator(height int64, valOperatorAddress string) []stakingtypes.UnbondingDelegation { var unbondingDelegations []stakingtypes.UnbondingDelegation var nextKey []byte - var stop = false + stop := false for !stop { res, err := m.source.GetUnbondingDelegationsFromValidator(height, valOperatorAddress, diff --git a/modules/staking/utils_validators.go b/modules/staking/utils_validators.go index f0a80d806..056eba3df 100644 --- a/modules/staking/utils_validators.go +++ b/modules/staking/utils_validators.go @@ -3,14 +3,12 @@ package staking import ( "fmt" - "github.com/forbole/callisto/v4/modules/staking/keybase" - "github.com/forbole/callisto/v4/types" - - "github.com/rs/zerolog/log" - cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + "github.com/forbole/callisto/v4/modules/staking/keybase" + "github.com/forbole/callisto/v4/types" + "github.com/rs/zerolog/log" ) // getValidatorConsPubKey returns the consensus public key of the given validator @@ -138,7 +136,7 @@ func (m *Module) GetValidatorsWithStatus(height int64, status string) ([]staking return nil, nil, err } - var vals = make([]types.Validator, len(validators)) + vals := make([]types.Validator, len(validators)) for index, val := range validators { validator, err := m.convertValidator(height, val) if err != nil { @@ -243,11 +241,12 @@ func (m *Module) UpdateValidatorStatuses() error { // updateProposalValidatorStatusSnapshot updates validators snapshot for // the proposal having the given id func (m *Module) updateProposalValidatorStatusSnapshot( - height int64, proposalID uint64, validators []stakingtypes.Validator) error { + height int64, proposalID uint64, validators []stakingtypes.Validator, +) error { snapshots := make([]types.ProposalValidatorStatusSnapshot, len(validators)) for index, validator := range validators { - consAddr, err := validator.GetConsAddr() + consAddr, err := m.getValidatorConsAddr(validator) if err != nil { return err } @@ -274,7 +273,7 @@ func (m *Module) updateValidatorStatusAndVP(height int64, validators []stakingty statuses := make([]types.ValidatorStatus, len(validators)) for index, validator := range validators { - consAddr, err := validator.GetConsAddr() + consAddr, err := m.getValidatorConsAddr(validator) if err != nil { return err } diff --git a/modules/types/sources.go b/modules/types/sources.go index b9adf0f1b..2032f91c9 100644 --- a/modules/types/sources.go +++ b/modules/types/sources.go @@ -2,29 +2,40 @@ package types import ( "fmt" - "os" - - "cosmossdk.io/simapp" - "github.com/cometbft/cometbft/libs/log" - "github.com/forbole/juno/v5/node/remote" - "github.com/forbole/juno/v5/types/params" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + "github.com/cosmos/cosmos-sdk/codec" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" + mintkeeper "github.com/cosmos/cosmos-sdk/x/mint/keeper" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/forbole/juno/v5/node/local" - - nodeconfig "github.com/forbole/juno/v5/node/config" - + assetftsource "github.com/forbole/callisto/v4/modules/assetft/source" + remoteassetftsource "github.com/forbole/callisto/v4/modules/assetft/source/remote" + assetnftsource "github.com/forbole/callisto/v4/modules/assetnft/source" + remoteassetnftsource "github.com/forbole/callisto/v4/modules/assetnft/source/remote" + authsource "github.com/forbole/callisto/v4/modules/auth/source" + remoteauthsource "github.com/forbole/callisto/v4/modules/auth/source/remote" banksource "github.com/forbole/callisto/v4/modules/bank/source" localbanksource "github.com/forbole/callisto/v4/modules/bank/source/local" remotebanksource "github.com/forbole/callisto/v4/modules/bank/source/remote" + bridgesource "github.com/forbole/callisto/v4/modules/bridge/source" + remotebridgesource "github.com/forbole/callisto/v4/modules/bridge/source/remote" + customparamssource "github.com/forbole/callisto/v4/modules/customparams/source" + remotecustomparamssource "github.com/forbole/callisto/v4/modules/customparams/source/remote" + dexsource "github.com/forbole/callisto/v4/modules/dex/source" + remotedexsource "github.com/forbole/callisto/v4/modules/dex/source/remote" distrsource "github.com/forbole/callisto/v4/modules/distribution/source" + localdistrsource "github.com/forbole/callisto/v4/modules/distribution/source/local" remotedistrsource "github.com/forbole/callisto/v4/modules/distribution/source/remote" + feemodelsource "github.com/forbole/callisto/v4/modules/feemodel/source" + remotefeemodelsource "github.com/forbole/callisto/v4/modules/feemodel/source/remote" govsource "github.com/forbole/callisto/v4/modules/gov/source" localgovsource "github.com/forbole/callisto/v4/modules/gov/source/local" remotegovsource "github.com/forbole/callisto/v4/modules/gov/source/remote" @@ -37,44 +48,59 @@ import ( stakingsource "github.com/forbole/callisto/v4/modules/staking/source" localstakingsource "github.com/forbole/callisto/v4/modules/staking/source/local" remotestakingsource "github.com/forbole/callisto/v4/modules/staking/source/remote" + "github.com/forbole/callisto/v4/utils/simapp" + nodeconfig "github.com/forbole/juno/v6/node/config" + "github.com/forbole/juno/v6/node/local" + "github.com/forbole/juno/v6/node/remote" + + assetfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/ft/types" + assetnfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/nft/types" + customparamstypes "github.com/CoreumFoundation/coreum/v5/x/customparams/types" + dextypes "github.com/CoreumFoundation/coreum/v5/x/dex/types" + feemodeltypes "github.com/CoreumFoundation/coreum/v5/x/feemodel/types" ) type Sources struct { - BankSource banksource.Source - DistrSource distrsource.Source - GovSource govsource.Source - MintSource mintsource.Source - SlashingSource slashingsource.Source - StakingSource stakingsource.Source + AuthSource authsource.Source + BankSource banksource.Source + DistrSource distrsource.Source + GovSource govsource.Source + MintSource mintsource.Source + SlashingSource slashingsource.Source + StakingSource stakingsource.Source + FeeModelSource feemodelsource.Source + CustomParamsSource customparamssource.Source + AssetFTSource assetftsource.Source + AssetNFTSource assetnftsource.Source + DEXSource dexsource.Source + BridgeSource bridgesource.Source } -func BuildSources(nodeCfg nodeconfig.Config, encodingConfig params.EncodingConfig) (*Sources, error) { +func BuildSources(nodeCfg nodeconfig.Config, cdc codec.Codec) (*Sources, error) { switch cfg := nodeCfg.Details.(type) { case *remote.Details: return buildRemoteSources(cfg) case *local.Details: - return buildLocalSources(cfg, encodingConfig) + return buildLocalSources(cfg, cdc) default: return nil, fmt.Errorf("invalid configuration type: %T", cfg) } } -func buildLocalSources(cfg *local.Details, encodingConfig params.EncodingConfig) (*Sources, error) { - source, err := local.NewSource(cfg.Home, encodingConfig) +func buildLocalSources(cfg *local.Details, cdc codec.Codec) (*Sources, error) { + source, err := local.NewSource(cfg.Home, cdc) if err != nil { return nil, err } - app := simapp.NewSimApp( - log.NewTMLogger(log.NewSyncWriter(os.Stdout)), source.StoreDB, nil, true, nil, nil, - ) + app := simapp.NewSimApp(cdc) sources := &Sources{ - BankSource: localbanksource.NewSource(source, banktypes.QueryServer(app.BankKeeper)), - // DistrSource: localdistrsource.NewSource(source, distrtypes.QueryServer(app.DistrKeeper)), - GovSource: localgovsource.NewSource(source, govtypesv1.QueryServer(app.GovKeeper)), - MintSource: localmintsource.NewSource(source, minttypes.QueryServer(app.MintKeeper)), + BankSource: localbanksource.NewSource(source, banktypes.QueryServer(app.BankKeeper)), + DistrSource: localdistrsource.NewSource(source, distrkeeper.NewQuerier(app.DistrKeeper)), + GovSource: localgovsource.NewSource(source, govkeeper.NewQueryServer(&app.GovKeeper)), + MintSource: localmintsource.NewSource(source, mintkeeper.NewQueryServerImpl(app.MintKeeper)), SlashingSource: localslashingsource.NewSource(source, slashingtypes.QueryServer(app.SlashingKeeper)), StakingSource: localstakingsource.NewSource(source, stakingkeeper.Querier{Keeper: app.StakingKeeper}), } @@ -85,16 +111,6 @@ func buildLocalSources(cfg *local.Details, encodingConfig params.EncodingConfig) return nil, err } - err = source.MountTransientStores(app, "tkeys") - if err != nil { - return nil, err - } - - err = source.MountMemoryStores(app, "memKeys") - if err != nil { - return nil, err - } - err = source.InitStores() if err != nil { return nil, err @@ -110,11 +126,18 @@ func buildRemoteSources(cfg *remote.Details) (*Sources, error) { } return &Sources{ - BankSource: remotebanksource.NewSource(source, banktypes.NewQueryClient(source.GrpcConn)), - DistrSource: remotedistrsource.NewSource(source, distrtypes.NewQueryClient(source.GrpcConn)), - GovSource: remotegovsource.NewSource(source, govtypesv1.NewQueryClient(source.GrpcConn)), - MintSource: remotemintsource.NewSource(source, minttypes.NewQueryClient(source.GrpcConn)), - SlashingSource: remoteslashingsource.NewSource(source, slashingtypes.NewQueryClient(source.GrpcConn)), - StakingSource: remotestakingsource.NewSource(source, stakingtypes.NewQueryClient(source.GrpcConn)), + AuthSource: remoteauthsource.NewSource(source, authtypes.NewQueryClient(source.GrpcConn)), + BankSource: remotebanksource.NewSource(source, banktypes.NewQueryClient(source.GrpcConn)), + DistrSource: remotedistrsource.NewSource(source, distrtypes.NewQueryClient(source.GrpcConn)), + GovSource: remotegovsource.NewSource(source, govtypesv1.NewQueryClient(source.GrpcConn)), + MintSource: remotemintsource.NewSource(source, minttypes.NewQueryClient(source.GrpcConn)), + SlashingSource: remoteslashingsource.NewSource(source, slashingtypes.NewQueryClient(source.GrpcConn)), + StakingSource: remotestakingsource.NewSource(source, stakingtypes.NewQueryClient(source.GrpcConn)), + FeeModelSource: remotefeemodelsource.NewSource(source, feemodeltypes.NewQueryClient(source.GrpcConn)), + CustomParamsSource: remotecustomparamssource.NewSource(source, customparamstypes.NewQueryClient(source.GrpcConn)), + AssetFTSource: remoteassetftsource.NewSource(source, assetfttypes.NewQueryClient(source.GrpcConn)), + AssetNFTSource: remoteassetnftsource.NewSource(source, assetnfttypes.NewQueryClient(source.GrpcConn)), + DEXSource: remotedexsource.NewSource(source, dextypes.NewQueryClient(source.GrpcConn)), + BridgeSource: remotebridgesource.NewSource(source, wasmtypes.NewQueryClient(source.GrpcConn)), }, nil } diff --git a/modules/upgrade/handle_block.go b/modules/upgrade/handle_block.go index c5ca62fd8..e5e388689 100644 --- a/modules/upgrade/handle_block.go +++ b/modules/upgrade/handle_block.go @@ -3,14 +3,13 @@ package upgrade import ( "fmt" - "github.com/forbole/juno/v5/types" - tmctypes "github.com/cometbft/cometbft/rpc/core/types" + juno "github.com/forbole/juno/v6/types" ) // HandleBlock implements modules.Module func (m *Module) HandleBlock( - b *tmctypes.ResultBlock, _ *tmctypes.ResultBlockResults, _ []*types.Tx, _ *tmctypes.ResultValidators, + b *tmctypes.ResultBlock, _ *tmctypes.ResultBlockResults, _ []*juno.Transaction, _ *tmctypes.ResultValidators, ) error { err := m.refreshDataUponSoftwareUpgrade(b.Block.Height) if err != nil { diff --git a/modules/upgrade/module.go b/modules/upgrade/module.go index 0b67826b8..f0837ccd2 100644 --- a/modules/upgrade/module.go +++ b/modules/upgrade/module.go @@ -2,8 +2,7 @@ package upgrade import ( "github.com/forbole/callisto/v4/database" - - "github.com/forbole/juno/v5/modules" + "github.com/forbole/juno/v6/modules" ) var ( diff --git a/modules/utils/addresses_test.go b/modules/utils/addresses_test.go index 0d1580984..41dc4b491 100644 --- a/modules/utils/addresses_test.go +++ b/modules/utils/addresses_test.go @@ -4,7 +4,6 @@ import ( "testing" "github.com/forbole/callisto/v4/modules/utils" - "github.com/stretchr/testify/require" ) diff --git a/modules/utils/time.go b/modules/utils/time.go index e52cfedcd..816254cd4 100644 --- a/modules/utils/time.go +++ b/modules/utils/time.go @@ -4,7 +4,7 @@ import ( "time" ) -func AreTimesEqual(first *time.Time, second *time.Time) bool { +func AreTimesEqual(first, second *time.Time) bool { if first == nil && second == nil { return true } diff --git a/types/assetft.go b/types/assetft.go new file mode 100644 index 000000000..2a070de8e --- /dev/null +++ b/types/assetft.go @@ -0,0 +1,19 @@ +package types + +import ( + assetfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/ft/types" +) + +// AssetFTParams represents the parameters of the x/asset/ft module +type AssetFTParams struct { + Params assetfttypes.Params + Height int64 +} + +// NewAssetFTParams returns a new AssetFTParams instance +func NewAssetFTParams(params assetfttypes.Params, height int64) AssetFTParams { + return AssetFTParams{ + Params: params, + Height: height, + } +} diff --git a/types/assetnft.go b/types/assetnft.go new file mode 100644 index 000000000..20c935c39 --- /dev/null +++ b/types/assetnft.go @@ -0,0 +1,19 @@ +package types + +import ( + assetnfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/nft/types" +) + +// AssetNFTParams represents the parameters of the x/asset/nft module +type AssetNFTParams struct { + Params assetnfttypes.Params + Height int64 +} + +// NewAssetNFTParams returns a new AssetNFTParams instance +func NewAssetNFTParams(params assetnfttypes.Params, height int64) AssetNFTParams { + return AssetNFTParams{ + Params: params, + Height: height, + } +} diff --git a/types/auth.go b/types/auth.go index 6c06f7434..f6803b2fc 100644 --- a/types/auth.go +++ b/types/auth.go @@ -1,5 +1,21 @@ package types +import authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + +// AuthParams represents the parameters of the x/auth module +type AuthParams struct { + Params authtypes.Params + Height int64 +} + +// NewAuthParams returns a new AuthParams instance +func NewAuthParams(params authtypes.Params, height int64) AuthParams { + return AuthParams{ + Params: params, + Height: height, + } +} + // Account represents a chain account type Account struct { Address string diff --git a/types/bridge.go b/types/bridge.go new file mode 100644 index 000000000..bc9a2b5c1 --- /dev/null +++ b/types/bridge.go @@ -0,0 +1,173 @@ +package types + +import ( + sdkmath "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// this is the default address used in znet +const BridgeContractAddress = "devcore14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9sd4f0ak" + +type BridgeTxDir string + +const ( + BridgeTxDir_UNKNOWN BridgeTxDir = "UNKNOWN" + BridgeTxDir_Outgoing BridgeTxDir = "Outgoing" + BridgeTxDir_Incoming BridgeTxDir = "Incoming" +) + +var StrToBridgeTxDir = map[string]BridgeTxDir{ + "UNKNOWN": BridgeTxDir_UNKNOWN, + "Outgoing": BridgeTxDir_Outgoing, + "Incoming": BridgeTxDir_Incoming, +} + +type BridgeTxResult string + +const ( + BridgeTxResult_UNKNOWN BridgeTxResult = "UNKNOWN" + BridgeTxResult_ACCEPTED BridgeTxResult = "transaction_accepted" + BridgeTxResult_REJECTED BridgeTxResult = "transaction_rejected" + BridgeTxResult_INVALID BridgeTxResult = "transaction_invalid" +) + +var BridgeTxResultToStr = map[string]BridgeTxResult{ + "UNKNOWN": BridgeTxResult_UNKNOWN, + "transaction_accepted": BridgeTxResult_ACCEPTED, + "transaction_rejected": BridgeTxResult_REJECTED, + "transaction_invalid": BridgeTxResult_INVALID, +} + +type Counterparty string + +const ( + Counterparty_UNKNOWN Counterparty = "UNKNOWN" + Counterparty_XRPL Counterparty = "XRPL" +) + +var StrToCounterparty = map[string]Counterparty{ + "UNKNOWN": Counterparty_UNKNOWN, + "XRPL": Counterparty_XRPL, +} + +type BridgeTransaction struct { + ID int64 `json:"id"` + InitHeight int64 `json:"init_height"` + FinalHeight int64 `json:"final_height"` + InitHash string `json:"init_hash"` + FinalHash string `json:"final_hash"` + Counterparty Counterparty `json:"counterparty"` + CounterpartyHash string `json:"counterparty_hash"` + Sender string `json:"sender"` + Recipient string `json:"recipient"` + Amount string `json:"amount"` + Direction BridgeTxDir `json:"direction"` + Result BridgeTxResult `json:"result"` + OperationIDs []uint32 `json:"operation_ids"` +} + +func NewOutgoingPendingBridgeTransaction(txHash string, height uint64, counterparty Counterparty, sender, recipient, amount string, direction BridgeTxDir, operationIDs []uint32) BridgeTransaction { + return BridgeTransaction{ + InitHash: txHash, + InitHeight: int64(height), + Counterparty: counterparty, + Sender: sender, + Recipient: recipient, + Amount: amount, + Direction: direction, + OperationIDs: operationIDs, + } +} + +func NewIncomingPendingBridgeTransaction(txHash string, height uint64, counterparty Counterparty, counterpartyHash, sender, recipient, amount string, direction BridgeTxDir) BridgeTransaction { + return BridgeTransaction{ + InitHash: txHash, + InitHeight: int64(height), + Counterparty: counterparty, + CounterpartyHash: counterpartyHash, + Sender: sender, + Recipient: recipient, + Amount: amount, + Direction: direction, + } +} + +type BridgeEvidence struct { + ID int64 `json:"id"` + BridgeTxID int64 `json:"tx_id"` + Height int64 `json:"height"` + Hash string `json:"hash"` + Relayer string `json:"relayer"` + ThresholdReached bool `json:"threshold_reached"` +} + +func NewBridgeEvidence(height uint64, hash string, relayer string, thresholdReached bool) BridgeEvidence { + return BridgeEvidence{ + Height: int64(height), + Hash: hash, + Relayer: relayer, + ThresholdReached: thresholdReached, + } +} + +type Source interface { + GetSendToXRPLOperationID( + recipient string, + height uint64, + ) (uint32, error) +} + +// QueryMethod is contract query method. +type QueryMethod string + +const QueryMethodPendingOperations QueryMethod = "pending_operations" + +var Limit uint32 = 50 + +// Signature is a pair of the relayer provided the signature and signature string. +type Signature struct { + RelayerCoreumAddress sdk.AccAddress `json:"relayer_coreum_address"` + Signature string `json:"signature"` +} + +// OperationTypeCoreumToXRPLTransfer is coreum to XRPL transfer operation type. +type OperationTypeCoreumToXRPLTransfer struct { + Issuer string `json:"issuer"` + Currency string `json:"currency"` + Amount sdkmath.Int `json:"amount"` + MaxAmount *sdkmath.Int `json:"max_amount,omitempty"` + Recipient string `json:"recipient"` +} + +// OperationType is operation type. +type OperationType struct { + CoreumToXRPLTransfer *OperationTypeCoreumToXRPLTransfer `json:"coreum_to_xrpl_transfer,omitempty"` +} + +// Operation is contract operation which should be signed and executed. +type Operation struct { + Version uint32 `json:"version"` + TicketSequence uint32 `json:"ticket_sequence"` + AccountSequence uint32 `json:"account_sequence"` + Signatures []Signature `json:"signatures"` + OperationType OperationType `json:"operation_type"` + XRPLBaseFee uint32 `json:"xrpl_base_fee"` +} + +// GetOperationID returns operation ID. +func (o Operation) GetOperationID() uint32 { + if o.TicketSequence != 0 { + return o.TicketSequence + } + + return o.AccountSequence +} + +type PagingUint32KeyRequest struct { + StartAfterKey *uint32 `json:"start_after_key,omitempty"` + Limit *uint32 `json:"limit,omitempty"` +} +type PendingOperationsResponse struct { + LastKey uint32 `json:"last_key"` + Operations []Operation `json:"operations"` +} diff --git a/types/config/config.go b/types/config/config.go index dbea5fad4..97d529a13 100644 --- a/types/config/config.go +++ b/types/config/config.go @@ -1,12 +1,11 @@ package config import ( - initcmd "github.com/forbole/juno/v5/cmd/init" - junoconfig "github.com/forbole/juno/v5/types/config" + "github.com/forbole/callisto/v4/modules/actions" + initcmd "github.com/forbole/juno/v6/cmd/init" + junoconfig "github.com/forbole/juno/v6/types/config" "github.com/spf13/cobra" "gopkg.in/yaml.v3" - - "github.com/forbole/callisto/v4/modules/actions" ) // Config represents the Callisto configuration diff --git a/types/config/encoding.go b/types/config/encoding.go deleted file mode 100644 index 368d29e3d..000000000 --- a/types/config/encoding.go +++ /dev/null @@ -1,31 +0,0 @@ -package config - -import ( - "github.com/cosmos/cosmos-sdk/std" - "github.com/cosmos/cosmos-sdk/types/module" - "github.com/forbole/juno/v5/types/params" -) - -// MakeEncodingConfig creates an EncodingConfig to properly handle all the messages -func MakeEncodingConfig(managers []module.BasicManager) func() params.EncodingConfig { - return func() params.EncodingConfig { - encodingConfig := params.MakeTestEncodingConfig() - std.RegisterLegacyAminoCodec(encodingConfig.Amino) - std.RegisterInterfaces(encodingConfig.InterfaceRegistry) - manager := mergeBasicManagers(managers) - manager.RegisterLegacyAminoCodec(encodingConfig.Amino) - manager.RegisterInterfaces(encodingConfig.InterfaceRegistry) - return encodingConfig - } -} - -// mergeBasicManagers merges the given managers into a single module.BasicManager -func mergeBasicManagers(managers []module.BasicManager) module.BasicManager { - var union = module.BasicManager{} - for _, manager := range managers { - for k, v := range manager { - union[k] = v - } - } - return union -} diff --git a/types/customparams.go b/types/customparams.go new file mode 100644 index 000000000..299a64808 --- /dev/null +++ b/types/customparams.go @@ -0,0 +1,24 @@ +package types + +import ( + "cosmossdk.io/math" +) + +// CustomParamsStakingParams contains the staking parameters of the x/customparams module +type CustomParamsStakingParams struct { + MinSelfDelegation math.Int `json:"min_self_delegation,omitempty" yaml:"min_self_delegation"` +} + +// CustomParamsParams contains the data of the x/customparams module parameters +type CustomParamsParams struct { + StakingParams CustomParamsStakingParams `json:"staking_params" yaml:"staking_params"` + Height int64 `json:"height" ymal:"height"` +} + +// NewCustomParamsParams allows to build a new CustomParamsParams instance +func NewCustomParamsParams(stakingParams CustomParamsStakingParams, height int64) *CustomParamsParams { + return &CustomParamsParams{ + StakingParams: stakingParams, + Height: height, + } +} diff --git a/types/dex.go b/types/dex.go new file mode 100644 index 000000000..2b5a0f143 --- /dev/null +++ b/types/dex.go @@ -0,0 +1,19 @@ +package types + +import ( + dextypes "github.com/CoreumFoundation/coreum/v5/x/dex/types" +) + +// DEXParams represents the parameters of the x/asset/ft module +type DEXParams struct { + Params dextypes.Params + Height int64 +} + +// NewDEXParams returns a new DEXParams instance +func NewDEXParams(params dextypes.Params, height int64) DEXParams { + return DEXParams{ + Params: params, + Height: height, + } +} diff --git a/types/feegrant.go b/types/feegrant.go index df2661203..1b265b942 100644 --- a/types/feegrant.go +++ b/types/feegrant.go @@ -1,6 +1,6 @@ package types -import feegranttypes "github.com/cosmos/cosmos-sdk/x/feegrant" +import feegranttypes "cosmossdk.io/x/feegrant" // FeeGrant represents the x/feegrant module type FeeGrant struct { @@ -23,7 +23,7 @@ type GrantRemoval struct { } // NewGrantRemoval allows to build a new GrantRemoval instance -func NewGrantRemoval(grantee string, granter string, height int64) GrantRemoval { +func NewGrantRemoval(grantee, granter string, height int64) GrantRemoval { return GrantRemoval{ grantee, granter, diff --git a/types/feemodel.go b/types/feemodel.go new file mode 100644 index 000000000..14295ac6b --- /dev/null +++ b/types/feemodel.go @@ -0,0 +1,19 @@ +package types + +import ( + feemodeltypes "github.com/CoreumFoundation/coreum/v5/x/feemodel/types" +) + +// FeeModelParams represents the parameters of the x/feemodel module +type FeeModelParams struct { + Params feemodeltypes.Params + Height int64 +} + +// NewFeeModelParams returns a new FeeModelParams instance +func NewFeeModelParams(params feemodeltypes.Params, height int64) FeeModelParams { + return FeeModelParams{ + Params: params, + Height: height, + } +} diff --git a/types/gov.go b/types/gov.go index 7836d2136..cf0251132 100644 --- a/types/gov.go +++ b/types/gov.go @@ -5,7 +5,6 @@ import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" - govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" ) diff --git a/types/message_type.go b/types/message_type.go index 85c0ec699..8a066eef8 100644 --- a/types/message_type.go +++ b/types/message_type.go @@ -9,7 +9,7 @@ type MessageType struct { } // NewMessageType allows to build a new MessageType instance -func NewMessageType(msgType string, module string, label string, height int64) *MessageType { +func NewMessageType(msgType, module, label string, height int64) *MessageType { return &MessageType{ Type: msgType, Module: module, diff --git a/types/staking_double_vote.go b/types/staking_double_vote.go index 5840213d1..ce84f0948 100644 --- a/types/staking_double_vote.go +++ b/types/staking_double_vote.go @@ -8,7 +8,7 @@ type DoubleSignEvidence struct { } // NewDoubleSignEvidence return a new DoubleSignEvidence object -func NewDoubleSignEvidence(height int64, voteA DoubleSignVote, voteB DoubleSignVote) DoubleSignEvidence { +func NewDoubleSignEvidence(height int64, voteA, voteB DoubleSignVote) DoubleSignEvidence { return DoubleSignEvidence{ VoteA: voteA, VoteB: voteB, diff --git a/types/staking_pool_params.go b/types/staking_pool_params.go index ca6e5cab7..49cdced4d 100644 --- a/types/staking_pool_params.go +++ b/types/staking_pool_params.go @@ -1,21 +1,21 @@ package types import ( - sdkmath "cosmossdk.io/math" + "cosmossdk.io/math" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" ) // Pool contains the data of the staking pool at the given height type Pool struct { - BondedTokens sdkmath.Int - NotBondedTokens sdkmath.Int - UnbondingTokens sdkmath.Int - StakedNotBondedTokens sdkmath.Int + BondedTokens math.Int + NotBondedTokens math.Int + UnbondingTokens math.Int + StakedNotBondedTokens math.Int Height int64 } // NewPool allows to build a new Pool instance -func NewPool(bondedTokens, notBondedTokens, unbondingTokens, stakedNotBondedTokens sdkmath.Int, height int64) *Pool { +func NewPool(bondedTokens, notBondedTokens, unbondingTokens, stakedNotBondedTokens math.Int, height int64) *Pool { return &Pool{ BondedTokens: bondedTokens, NotBondedTokens: notBondedTokens, @@ -27,13 +27,13 @@ func NewPool(bondedTokens, notBondedTokens, unbondingTokens, stakedNotBondedToke // PoolSnapshot contains the data of the staking pool snapshot at the given height type PoolSnapshot struct { - BondedTokens sdkmath.Int - NotBondedTokens sdkmath.Int + BondedTokens math.Int + NotBondedTokens math.Int Height int64 } // NewPoolSnapshot allows to build a new PoolSnapshot instance -func NewPoolSnapshot(bondedTokens, notBondedTokens sdkmath.Int, height int64) *PoolSnapshot { +func NewPoolSnapshot(bondedTokens, notBondedTokens math.Int, height int64) *PoolSnapshot { return &PoolSnapshot{ BondedTokens: bondedTokens, NotBondedTokens: notBondedTokens, diff --git a/types/staking_validator.go b/types/staking_validator.go index b90498543..f4ef3ee60 100644 --- a/types/staking_validator.go +++ b/types/staking_validator.go @@ -1,7 +1,7 @@ package types import ( - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" ) @@ -13,8 +13,8 @@ type Validator interface { GetConsPubKey() string GetOperator() string GetSelfDelegateAddress() string - GetMaxChangeRate() *sdk.Dec - GetMaxRate() *sdk.Dec + GetMaxChangeRate() *math.LegacyDec + GetMaxRate() *math.LegacyDec GetHeight() int64 } @@ -24,16 +24,16 @@ type validator struct { ConsPubKey string OperatorAddr string SelfDelegateAddress string - MaxChangeRate *sdk.Dec - MaxRate *sdk.Dec + MaxChangeRate *math.LegacyDec + MaxRate *math.LegacyDec Height int64 } // NewValidator allows to build a new Validator implementation having the given data func NewValidator( - consAddr string, opAddr string, consPubKey string, - selfDelegateAddress string, maxChangeRate *sdk.Dec, - maxRate *sdk.Dec, height int64, + consAddr, opAddr, consPubKey string, + selfDelegateAddress string, maxChangeRate *math.LegacyDec, + maxRate *math.LegacyDec, height int64, ) Validator { return validator{ ConsensusAddr: consAddr, @@ -64,11 +64,11 @@ func (v validator) GetSelfDelegateAddress() string { return v.SelfDelegateAddress } -func (v validator) GetMaxChangeRate() *sdk.Dec { +func (v validator) GetMaxChangeRate() *math.LegacyDec { return v.MaxChangeRate } -func (v validator) GetMaxRate() *sdk.Dec { +func (v validator) GetMaxRate() *math.LegacyDec { return v.MaxRate } @@ -104,14 +104,14 @@ func NewValidatorDescription( // ValidatorCommission contains the data of a validator commission at a given height type ValidatorCommission struct { ValAddress string - Commission *sdk.Dec - MinSelfDelegation *sdk.Int + Commission *math.LegacyDec + MinSelfDelegation *math.Int Height int64 } // NewValidatorCommission return a new validator commission instance func NewValidatorCommission( - valAddress string, rate *sdk.Dec, minSelfDelegation *sdk.Int, height int64, + valAddress string, rate *math.LegacyDec, minSelfDelegation *math.Int, height int64, ) ValidatorCommission { return ValidatorCommission{ ValAddress: valAddress, @@ -131,7 +131,7 @@ type ValidatorVotingPower struct { } // NewValidatorVotingPower creates a new ValidatorVotingPower -func NewValidatorVotingPower(address string, votingPower int64, height int64) ValidatorVotingPower { +func NewValidatorVotingPower(address string, votingPower, height int64) ValidatorVotingPower { return ValidatorVotingPower{ ConsensusAddress: address, VotingPower: votingPower, diff --git a/utils/codec.go b/utils/codec.go new file mode 100644 index 000000000..3417b8ddc --- /dev/null +++ b/utils/codec.go @@ -0,0 +1,101 @@ +package utils + +import ( + "sync" + + evidencetypes "cosmossdk.io/x/evidence/types" + "cosmossdk.io/x/feegrant" + nft "cosmossdk.io/x/nft" + upgradetypes "cosmossdk.io/x/upgrade/types" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + "github.com/cosmos/cosmos-sdk/codec" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/cosmos/cosmos-sdk/std" + sdk "github.com/cosmos/cosmos-sdk/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" + "github.com/cosmos/cosmos-sdk/x/authz" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" + crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" + distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + govv1types "github.com/cosmos/cosmos-sdk/x/gov/types/v1" + govv1beta1types "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" + "github.com/cosmos/cosmos-sdk/x/group" + minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" + paramsproposaltypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal" + slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + "github.com/cosmos/gogoproto/proto" + packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/types" + icacontrollertypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types" + icahosttypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types" + icatypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/types" + ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + ibctypes "github.com/cosmos/ibc-go/v8/modules/core/types" + ibctm "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" + + assetfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/ft/types" + assetnfttypes "github.com/CoreumFoundation/coreum/v5/x/asset/nft/types" + customparamstypes "github.com/CoreumFoundation/coreum/v5/x/customparams/types" + dextypes "github.com/CoreumFoundation/coreum/v5/x/dex/types" + feemodeltypes "github.com/CoreumFoundation/coreum/v5/x/feemodel/types" +) + +var ( + once sync.Once + cdc *codec.ProtoCodec +) + +func GetCodec() codec.Codec { + once.Do(func() { + interfaceRegistry := codectypes.NewInterfaceRegistry() + authtypes.RegisterInterfaces(interfaceRegistry) + authz.RegisterInterfaces(interfaceRegistry) + banktypes.RegisterInterfaces(interfaceRegistry) + stakingtypes.RegisterInterfaces(interfaceRegistry) + minttypes.RegisterInterfaces(interfaceRegistry) + distrtypes.RegisterInterfaces(interfaceRegistry) + govv1types.RegisterInterfaces(interfaceRegistry) + govv1beta1types.RegisterInterfaces(interfaceRegistry) + paramsproposaltypes.RegisterInterfaces(interfaceRegistry) + crisistypes.RegisterInterfaces(interfaceRegistry) + slashingtypes.RegisterInterfaces(interfaceRegistry) + feegrant.RegisterInterfaces(interfaceRegistry) + group.RegisterInterfaces(interfaceRegistry) + ibctypes.RegisterInterfaces(interfaceRegistry) + ibctm.RegisterInterfaces(interfaceRegistry) + packetforwardtypes.RegisterInterfaces(interfaceRegistry) + icacontrollertypes.RegisterInterfaces(interfaceRegistry) + icahosttypes.RegisterInterfaces(interfaceRegistry) + icatypes.RegisterInterfaces(interfaceRegistry) + upgradetypes.RegisterInterfaces(interfaceRegistry) + evidencetypes.RegisterInterfaces(interfaceRegistry) + ibctransfertypes.RegisterInterfaces(interfaceRegistry) + vestingtypes.RegisterInterfaces(interfaceRegistry) + consensustypes.RegisterInterfaces(interfaceRegistry) + wasmtypes.RegisterInterfaces(interfaceRegistry) + feemodeltypes.RegisterInterfaces(interfaceRegistry) + nft.RegisterInterfaces(interfaceRegistry) + assetfttypes.RegisterInterfaces(interfaceRegistry) + assetnfttypes.RegisterInterfaces(interfaceRegistry) + customparamstypes.RegisterInterfaces(interfaceRegistry) + dextypes.RegisterInterfaces(interfaceRegistry) + + std.RegisterInterfaces(interfaceRegistry) + + cdc = codec.NewProtoCodec(interfaceRegistry) + }) + return cdc +} + +// UnpackMessage unpacks a message from a byte slice +func UnpackMessage[T proto.Message](cdc codec.Codec, bz []byte, ptr T) T { + var any codectypes.Any + cdc.MustUnmarshalJSON(bz, &any) + var cosmosMsg sdk.Msg + if err := cdc.UnpackAny(&any, &cosmosMsg); err != nil { + panic(err) + } + return cosmosMsg.(T) +} diff --git a/utils/codec_test.go b/utils/codec_test.go new file mode 100644 index 000000000..0c43edc1a --- /dev/null +++ b/utils/codec_test.go @@ -0,0 +1,19 @@ +package utils + +import ( + "testing" + + govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" + "github.com/stretchr/testify/require" +) + +func TestUnpackMessage(t *testing.T) { + msgBz := []byte("{\"@type\":\"/cosmos.gov.v1beta1.MsgVote\",\"proposal_id\":\"797\",\"voter\":\"osmo1qk74379nc34ynvc4gmw2zrwlscn62mx5wps5xj\",\"option\":\"VOTE_OPTION_YES\"}") + cdc := GetCodec() + cosmosMsg := UnpackMessage(cdc, msgBz, &govtypesv1beta1.MsgVote{}) + require.Equal(t, &govtypesv1beta1.MsgVote{ + ProposalId: 797, + Voter: "osmo1qk74379nc34ynvc4gmw2zrwlscn62mx5wps5xj", + Option: govtypesv1beta1.OptionYes, + }, cosmosMsg) +} diff --git a/utils/events/events.go b/utils/events/events.go index 5b175dbcd..3637a82f5 100644 --- a/utils/events/events.go +++ b/utils/events/events.go @@ -1,6 +1,8 @@ package events import ( + "strconv" + sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -23,3 +25,19 @@ func FindAttributeByKey(event sdk.StringEvent, key string) (sdk.Attribute, bool) } return sdk.Attribute{}, false } + +// FindEventsByMsgIndex returns all events with the given msg index +func FindEventsByMsgIndex(events sdk.StringEvents, msgIndex int) sdk.StringEvents { + var res sdk.StringEvents + for _, event := range events { + attribute, exist := FindAttributeByKey(event, "msg_index") + if !exist { + continue + } + + if strconv.Itoa(msgIndex) == attribute.Value { + res = append(res, event) + } + } + return res +} diff --git a/utils/genesis.go b/utils/genesis.go index 5023f0c0a..e3cbd93d7 100644 --- a/utils/genesis.go +++ b/utils/genesis.go @@ -6,8 +6,8 @@ import ( tmjson "github.com/cometbft/cometbft/libs/json" tmos "github.com/cometbft/cometbft/libs/os" tmtypes "github.com/cometbft/cometbft/types" - "github.com/forbole/juno/v5/node" - "github.com/forbole/juno/v5/types/config" + "github.com/forbole/juno/v6/node" + "github.com/forbole/juno/v6/types/config" ) // ReadGenesis reads the genesis data based on the given config diff --git a/utils/node.go b/utils/node.go index 2c56a1354..059d5ce78 100644 --- a/utils/node.go +++ b/utils/node.go @@ -4,16 +4,16 @@ import ( "fmt" coretypes "github.com/cometbft/cometbft/rpc/core/types" - "github.com/forbole/juno/v5/node" + "github.com/forbole/juno/v6/node" ) // QueryTxs queries all the transactions from the given node corresponding to the given query func QueryTxs(node node.Node, query string) ([]*coretypes.ResultTx, error) { var txs []*coretypes.ResultTx - var page = 1 - var perPage = 100 - var stop = false + page := 1 + perPage := 100 + stop := false for !stop { result, err := node.TxSearch(query, &page, &perPage, "") if err != nil { diff --git a/utils/simapp/app.go b/utils/simapp/app.go new file mode 100644 index 000000000..30afe5844 --- /dev/null +++ b/utils/simapp/app.go @@ -0,0 +1,94 @@ +// ! This file is for general cosmos-sdk chain for local mode node, please modify it according to your chain +package simapp + +import ( + "cosmossdk.io/log" + storetypes "cosmossdk.io/store/types" + "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/runtime" + sdk "github.com/cosmos/cosmos-sdk/types" + authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec" + authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper" + distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + mintkeeper "github.com/cosmos/cosmos-sdk/x/mint/keeper" + minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" + slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper" + slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" + stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" +) + +var maccPerms = map[string][]string{ + authtypes.FeeCollectorName: nil, + distrtypes.ModuleName: nil, + minttypes.ModuleName: {authtypes.Minter}, + stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking}, + stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking}, + govtypes.ModuleName: {authtypes.Burner}, +} + +type SimApp struct { + // keys to access the substores + keys map[string]*storetypes.KVStoreKey + + // keepers + BankKeeper bankkeeper.BaseKeeper + StakingKeeper *stakingkeeper.Keeper + SlashingKeeper slashingkeeper.Keeper + MintKeeper mintkeeper.Keeper + DistrKeeper distrkeeper.Keeper + GovKeeper govkeeper.Keeper +} + +func NewSimApp(cdc codec.Codec) *SimApp { + keys := storetypes.NewKVStoreKeys( + authtypes.StoreKey, + banktypes.StoreKey, + stakingtypes.StoreKey, + minttypes.StoreKey, + slashingtypes.StoreKey, + govtypes.StoreKey, + distrtypes.StoreKey, + ) + + app := &SimApp{ + keys: keys, + } + + accountKeeper := authkeeper.NewAccountKeeper(cdc, runtime.NewKVStoreService(keys[authtypes.StoreKey]), authtypes.ProtoBaseAccount, maccPerms, authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()), sdk.GetConfig().GetBech32AccountAddrPrefix(), authtypes.NewModuleAddress(govtypes.ModuleName).String()) + + app.BankKeeper = bankkeeper.NewBaseKeeper( + cdc, + runtime.NewKVStoreService(keys[banktypes.StoreKey]), + accountKeeper, + nil, + authtypes.NewModuleAddress(govtypes.ModuleName).String(), + log.NewNopLogger(), + ) + app.DistrKeeper = distrkeeper.NewKeeper(cdc, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), accountKeeper, app.BankKeeper, app.StakingKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String()) + + app.StakingKeeper = stakingkeeper.NewKeeper( + cdc, runtime.NewKVStoreService(keys[stakingtypes.StoreKey]), accountKeeper, app.BankKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()), authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ConsensusAddrPrefix()), + ) + + app.MintKeeper = mintkeeper.NewKeeper(cdc, runtime.NewKVStoreService(keys[minttypes.StoreKey]), app.StakingKeeper, accountKeeper, app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String()) + + app.SlashingKeeper = slashingkeeper.NewKeeper( + cdc, nil, runtime.NewKVStoreService(keys[slashingtypes.StoreKey]), app.StakingKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), + ) + + govConfig := govtypes.DefaultConfig() + govKeeper := govkeeper.NewKeeper( + cdc, runtime.NewKVStoreService(keys[govtypes.StoreKey]), accountKeeper, app.BankKeeper, + app.StakingKeeper, app.DistrKeeper, nil, govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(), + ) + app.GovKeeper = *govKeeper + + return app +}